- 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