用python编写的toy函数语言编译器

lnac的Python项目详细描述


#LNAC公司
用python编写的玩具函数式语言编译器。

---

lnac是一个用python 3编写的玩具函数式语言编译器,它支持有限的程序生成。

有关一些示例程序,请参见[demos目录](demos)。

快速启动

要安装LNAC:
```
PIP3安装LNAC
```

要创建、编译和运行示例程序:
```c
$nano return0.lna
更少的回报0.lna

主要:内部
主要=
=>;0

$lnac return0.lna
$。/return0&;$?
正确
```

实施

莱克瑟
lnac lexer主要在[`lexer.py`]中实现(lnac/lexer.py)。此外,[`tokens.py`](lnac/tokens.py)包含lexer中使用的令牌类的定义,以及可识别的关键字和符号令牌的实例。

分析器
lnac解析器在[`parser/parser.py`](lnac/parser/)中实现,并创建在[`tree/nodes.py`]中定义的节点的抽象语法树(lnac/tree/nodes.py)。

组装
lnac写出一个中间程序集文件,然后gcc从中生成一个可执行文件。此程序集文件按照AT&T程序集语法编写,编译成功后将被删除。

参考资料
-编写C编译器-https://norasandler.com/2017/11/29/write-a-compiler.html
-shivyc-https://github.com/shivamsarodia/shivyc

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
地址簿在地址簿中添加和检查Java中的条目   java在请求范围中存储和检索值   java Android:您能否使用AlertDialog清除数据,以便在启动电子邮件活动后数据不会损坏?   用户和角色的javajpa设计   java为什么mybatis更新和删除不起作用?   在使用swingx jxtreetable进行测试时,java Fest的速度会减慢   如何使用ApachePOI4.0XDDFChartData、XDDFBarChartData生成堆叠条形图;在使用java的excel工作表中,我不想使用jfree   oauth Java执行oAuth1。0具有给定consumerKey、ConsumerCret、accessToken、accessTokenSecret和realm的已验证请求   java TTS OuttanceProgressListener无法正常工作   java if条件在不同的环境中返回不同的值   java Spring Boot应用程序的嵌入式HTTP服务器在哪里?   基于SSL的java SOAP客户端:sun。安全供应商。certpath。SunCertPathBuilderException:找不到请求目标的有效证书路径   java StringBuilder()与StringBuilder(空)与StringBuilder(“”)