实验 4 用 Yacc 实现语法分析器
一、实验目的
掌握语法分析器的构造原理,掌握 Yacc 的编程方法。
二、实验内容
用 Yacc 编写一个语法分析程序,使之与词法分析器结合,能够根据语言的
上下文无关文法,识别输入的单词序列是否文法的句子。
为减轻实验编程负担,这里只要求实现部分产生式,文法的开始符号为
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
expr → expr + term
| expr - term