去掉注释之后自动生成sourceFile.txt中:
正确词法分析结果输出自动生成在Token.txt中:
正确语法分析的结果输出,自动生成在tokenTree.txt中:
4.2.2错误用例结果
错误处理:(将a.txt中“return ”改为“return 0”之后再运行):
错误词法分析结果输出自动生成在Token.txt中:
错误语法分析结果输出自动生成在token.Tree.txt中:
5. 总结
?
收获
熟悉C语言的结构、指针、文件方面的使用;学会用startUml构造状态图,及用 switch-case结构实现状态转换实现词法分析;学会用递归下降方法实现EBNF文法规则,进而实现语法分析;熟悉构造编译器的步骤及程序实现的框架及部分方法。
?
特色
有良好的输出界面,通过tiny程序修改成CMinus程序,其思路和方法和tiny差不多,
方便理解。
?
不足
① 程序语法实现部分只用了递归下降分析一种方法。
② 此程序框架与教材《编译原理及实践》附录B Tiny编译器的程序框架相似。 ③ 递归下降分析方法手工实现应经验少程序逻辑错误多,调试费时久,不能保证程序的高健壮性。