Skip to content

coder-gx/Light-Compiler-based-on-LR1-method

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Light Compiler based on LR(1) Method

News

🤗🤗🤗新建了中间代码(四元式)生成器分支

🤗🤗🤗完整的编译器,添加了优化模块和目标代码生成模块

简介

同济大学编译原理课程作业,目前只实现到中间代码生成阶段(在semantic分支),今后会继续更新...

采用LR(1)分析方法,采用C++实现后端编译,采用Qt实现前端界面

项目成员:

coder-gx

WinstonLiyt

CoffeeMark2

运行

1.将项目clone到本地,配置好VS+Qt的联合开发环境后(配置方法可以参考这里),可以在Visual Studio 2022下可以直接运行

2.由于在生成语法分析树图片的过程中使用到Graphviz,故如需生成语法分析树图片,需要提前安装Graphviz。 Graphviz安装说明:

  1. http://www.graphviz.org/Download_windows.php网站选择系统对应的安装包下载。
  2. 打开安装程序进行安装,并配置环境变量(可在安装程序中勾选'Add Graphviz to the system PATH for all users'自动配置环境变量)。
  3. 在任意位置打开终端,输入dot --version,如果显示Graphviz相关版本信息,则安装成功。

演示

1.开始界面

image

2.点击文件,导入源代码并且导入文法,此外源代码可以自己在文本框输入

image1 image2

3.点击编译->开始编译,可以选择是否继续生成语法DFA

image

4.可以进行错误定位

image1 image2

5.可以在“词法->Token”查看分割后的token以及“词法->DFA”查看分割token的DFA图

6.可以在“语法” 查看ACTION GOTO Table,规约过程,语法树和LR(1)的DFA

About

light compiler based on lr1 method

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages