魏陈强 23020092204168 实验3 递归下降法的语法分析器 一、实验目的 学习用递归下降法构造语法分析器的原理,掌握递归下降法的编程方法
二、实验内容 用递归下降法编写一个语法分析程序,使之与词法分析器结合,能够根据语言的上下文无关文法,识别输入的单词序列是否文法的句子
这里只要求实现部分产生式,文法的开始符号为program
(完整的源语言的文法定义见教材附录 A
1,p394) program → block block → { stmts } stmts →stmt stmts | stmt → id = expr ; | if ( bool ) stmt | if ( bool) stmt else stmt | while (bool) stmt | do stmt while (bool ) ; | break ; | block bool → expr < expr | expr expr | expr >= expr | expr expr → expr + term | expr - term | term term → term * factor | term / factor | factor factor → ( expr ) | id | num 三、实验要求 1.个人完成,提交实验报告
2.实验报告中给出采用测试源代码片断,及其对应的最左推导过程(形式可以自行考虑)
测试程序片断: { i = 2; while (i