同济大学编译原理课程作业,目前只实现到中间代码生成阶段(在semantic分支),今后会继续更新...
采用LR(1)分析方法,采用C++实现后端编译,采用Qt实现前端界面
项目成员:
1.将项目clone到本地,配置好VS+Qt的联合开发环境后(配置方法可以参考这里),可以在Visual Studio 2022下可以直接运行
2.由于在生成语法分析树图片的过程中使用到Graphviz,故如需生成语法分析树图片,需要提前安装Graphviz。 Graphviz安装说明:
- 至http://www.graphviz.org/Download_windows.php网站选择系统对应的安装包下载。
- 打开安装程序进行安装,并配置环境变量(可在安装程序中勾选'Add Graphviz to the system PATH for all users'自动配置环境变量)。
- 在任意位置打开终端,输入
dot --version
,如果显示Graphviz相关版本信息,则安装成功。
1.开始界面
2.点击文件,导入源代码并且导入文法,此外源代码可以自己在文本框输入
3.点击编译->开始编译,可以选择是否继续生成语法DFA
4.可以进行错误定位
5.可以在“词法->Token”查看分割后的token以及“词法->DFA”查看分割token的DFA图
6.可以在“语法” 查看ACTION GOTO Table,规约过程,语法树和LR(1)的DFA