RPLY 入门例程中文化

为对「木兰」编程语言的编译器的 1400 多行用 rply 实现的语法规则相关代码进行分析,学习了 rply 的入门文档。详见: 《【悬赏】对原始可执行文件的功能进行测试》

用于解析简单加减法,只需下面的代码:


RPLY 入门例程中文化


lg本为 lexer generator 的缩写,generator 感觉像是机床中母机的概念。

在 python 3.7.4 下测试:

$ python 成功.py 
Token('数', '1')
Token('加', '+')
Token('数', '1')
Token('减', '-')
Token('数', '1')

挺好,支持中文词名,如”数/加/减”,很齐整。

下面,入门语法分析器生成。

目标是分析简单的四则运算:


RPLY 入门例程中文化


如前,先写分词器,发觉文档中此行lg.ignore(‘s+’)的正则表达式少了个 r。

并编写语法树,为对应节点编写求值方法。

最后是语法分析器生成。限于 python 水平,直接将分词器、语法树写在了一起以便测试。

感觉 rply 对中文标识符的支持很不错,基本上业务相关部分都可以中文化。还有运算符优先级部分尚未摸透,不过可以待看「木兰」的优先级部分代码时研究:


RPLY 入门例程中文化


27 行的规则部分大约花了一小时参透,以此速度对「木兰」的 ply 代码进行分析,最少需要50小时,嗯,可以接受。当然需要更多时间编写测试代码。

展开阅读全文

页面更新:2024-05-29

标签:木兰   母机   入门   分词   加减法   分析器   优先级   中文   语法   例程   规则   感觉   代码   简单   文档   测试   科技

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top