Lab1 是你实现 miniSysY 编译器的第一个实验,尽管本次实验的内容很少——只需要支持一个 main
函数即可,但后续的实验会在上一次实验的基础上迭代,好的架构可以有效降低后续迭代的复杂程度。你应该按照编写一个编译器的流程,设计好词法分析、语法分析、语义分析、生成 LLVM IR 等步骤的架构,保证它们有一定的可扩展性,以方便后续实验的进行。
在还没有引入 miniSysY 标准库中的 putint()
之前,评测机都会通过返回值来判断你生成的代码执行得是否正确。你的编译器输出的 LLVM IR 在本地编译或解释执行后看起来并没有任何效果,它只是返回了一个数字,不会在标准输出中输出任何东西。在 Unix & Linux 中,你可以通过 echo $?
来查看最后运行的命令的返回值。需要注意的是,echo $?
输出的是返回值对 256 取模后的结果。