|
|
|
|
@ -52,3 +52,16 @@ cat /test/funcrparams.sysy
|
|
|
|
|
- 参照SysY语言规范,修改`src/SysY.g4`文件,实现SysY词法/语法的完整定义
|
|
|
|
|
- 修改任意代码后需要重新执行`cmake --build build`命令重新构建项目,ANTLR工具会从`SysY.g4`生成词法/语法分析器,生成的文件位于`./build/src`目录
|
|
|
|
|
- (进阶内容)修改`src/ASTPrinter.h`与`src/ASTPrinter.cpp`,实现从AST输出源程序,但输出的源程序是经过格式化的,测试用例为`test/format-test.sy`,格式化后的参考结果为`test/format-ref.sy`
|
|
|
|
|
|
|
|
|
|
## 实验2:从AST生成中间表示
|
|
|
|
|
|
|
|
|
|
exp2分支为大家准备好了进行实验2的基本代码框架,包括
|
|
|
|
|
|
|
|
|
|
- IR相关数据结构的定义:`src/IR.h`
|
|
|
|
|
- 创建IR对象的工具类`src/IRBuilder.h`
|
|
|
|
|
- IR生成器的示例代码`src/SysYIRGenerator.h`
|
|
|
|
|
|
|
|
|
|
在实验2中,同学们需要完成的任务包括
|
|
|
|
|
|
|
|
|
|
- 熟悉掌握IR定义与相关数据结构
|
|
|
|
|
- 从AST生成IR(基于visitor机制)
|
|
|
|
|
|