最近对编译器产生了兴趣,打算根据书上的思想裸写一个Python解释器,但过多的细节以及对编译过程的不了解,迟迟未有进展。正巧此时想到以前在sicp上看到过计算器的实现方法,想着是否能用简单的四则运算入门,所以有了这个计算器。
因作者水平问题,实现方法、代码设计上多有漏洞。写文也是为了能整理思路,查缺补漏,同时或与能为遇到同样问题的童鞋提供个思路吧。
进度:这个计算器目前实现到语法树阶段,错误处理还没弄明白。
代码架构:
-
- Scanner:使用了状态机,参考蓝色大大的文章http://frozengene.github.io/ 可惜没写完
- Parser:使用递归下降
- 参考了vczh的http://www.cnblogs.com/geniusvczh/ 具体文章竟然找不到了。
- 以及装配脑袋的http://www.cnblogs.com/Ninputer/archive/2011/06/21/2085527.html 祝早日康复
- Experssion:简单的遍历树,得出计算结果
- Github地址:https://github.com/ninovt9/NINO_CALCULATOR.git
下一篇先写Scanner
时间: 2025-01-12 21:04:38