递归下降法的语法分析器-3-编译原理
递归下降法的语法分析器 一、实验目的 掌握语法分析器的构造原理,掌握递归下降法的编程方法。 二、实验内容 用 递归下降法 编写一个语法分析程序,使之与词法分析器结合,能够根据语言的上下文无关文法,识别输入的单词序列是否文法的句子。(注意,需要改写文法,消除左递归等) program → block block → { stmts } stmts → stmt stmts | e 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 expr → expr + term | expr - term | term term → term * factor | term / factor | factor factor → ( e xpr ) | id | num 三、实验要求 1.个人完成,提交实验报告。 2.实验报告中给出采用测试源代码片断,及其对应的最左推导过程(形式可以自行考虑)。 程序片断 { i = 2; while (i