编译原理实验报告 题 目 : 递 归 下 降 语 法 分 析 器 学 院 计 算 机 科 学 与 技 术 专 业 xxxxxxxxxxxxxxxx 学 号 xxxxxxxxxxxx 姓 名 宁 剑 指 导 教 师 xx 20xx 年 xx 月 xx 日 递归下降语法分析器 装 订 线 一、实验目的 了解语法分析器的内部工作原理,通过在本次实验中运用一定的编程技巧,掌握对表达式进行处理的一种方法
二、实验原理 算术表达式的文法可以是(可以根据需要适当改变): E→E+E|E-E|E*E|E/E|(E)|i 根据递归下降分析法或预测分析法 ,对表达式进行语法分析 ,判断一个表达式是否正确
三、实验步骤 (1) 准备:1
阅读课本有关章节,确定算术表达式的文法;(设计出预测分析表);2
考虑好设计方案;3
设计出模块结构 、测试数据,初步编制好程序
(2) 上机调试,发现错误,分析错误,再修改完善
教师根据学生的设计方案与学生进行探讨,以修改方案和代码
(3)改造后的文法:E→ E+T|E-T|T T→ T*F|T/F|F F→ F^|P P→ c |id| (E) 四、实验环境 计算机 VC++软件 五、实验程序 #include #include #include #include #include void error(); void terror(); void Scanner(); char sym=' '; int i=0; char strToken[30]={""}; FILE *in; void E(); void E1(); void F(); void Retract(char str[30]){ for(int j=0;j