- Windows 10
- Java 1.7
- Python 2.7
- 支持UI
- 词法分析
- token表
- 语法分析
- 语法检测
- 语义分析
- 正则式->NFA->DFA->MFA
- LL(1)预测分析
- 状态转换图生成到Java_pyGra下
- 分析功能(词法分析、语法分析)都放在
src/Analysis中; - 界面UI放在
src/UI中; - 语义分析与四元式生成放在
src/Semantic Analysis中; - LL(1)预测分析放在
src/LL1V2中; - 状态转换图生成放在
src/Java_pyGra中。由于pygraphviz不支持混合编程,只能单独将生成reg2FA生成出状态转换表,然后再通过Java_pyGra.py转换成图片。
运行环境支持的话,通过src/UI中MainUI.java运行主程序,LL1.java、reg2FA.java都可以单独运行。
LineNumberHeaderView.java用于在MainUI中显示行数,但存在一定问题,如果使用LineNumberHeaderView,不可同时使用WindowBuilder。
测试文件都在 Test_File 中。
- 语义分析嵌套语句:可以嵌套,但多层嵌套会出问题;
- LL(1)预测暂时没考虑非LL(1)语法的文法;
- 由于
pygraphviz不支持混合编程没能一步到位完成画状态图,需要手工在reg2FA界面选择生成状态表到本地,在Java_pyGra.py中读取状态表画图; - 图标用了Steam
;p