2022年递归下降分析法参考 .pdf
《2022年递归下降分析法参考 .pdf》由会员分享,可在线阅读,更多相关《2022年递归下降分析法参考 .pdf(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、课程名称编译原理实验名称3递归下降分析法实验目的、要求了解语法分析器的内部工作原理,通过在本次实验中运用一定的编程技巧,掌握对表达式进行处理的一种方法。实验内容、原理算术表达式的文法可以是(可以根据需要适当改变): EE+E|E-E|E*E|E/E|(E)|i 根据递归下降分析法或预测分析法,对表达式进行语法分析,判断一个表达式是否正确。实验环境计算机 vc+ 软件实验步骤(1)准备: 1. 阅读课本有关章节,确定算术表达式的文法;( 设计出预测分析表) ;2. 考虑好设计方案;3. 设计出模块结构、测试数据,初步编制好程序。(2)上机调试,发现错误,分析错误,再修改完善。教师根据学生的设计方
2、案与学生进行探讨,以修改方案和代码。(3)改造后的文法:EE+T|E-T|T TT*F|T/F|F FFP|P Pc|id|(E) (4)程序代码:#include #include #include #include #include void error(); void terror(); void Scanner(); char sym = ; int i=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 6 页 - - - - - - - - - char s
3、trToken30= ; FILE *in; void E(); void E1(); void F(); void Retract(char str30) for(int j=0;j30;j+) strj=0; void Scanner() sym=fgetc(in); if(isspace(sym) while(1) if(isspace(sym) sym=fgetc(in); else break; if(isdigit(sym) while(1) if(isdigit(sym) strTokeni=sym; i+; sym=fgetc(in); else printf(%s,strTo
4、ken); i=0; Retract(strToken); fseek(in,-2,1); sym=fgetc(in); break; else if(sym=+) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 6 页 - - - - - - - - - printf(+); else if(sym=-) printf(-); else if(sym=*) printf(*); else if(sym=/) printf(/); else if(sym=) printf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年递归下降分析法参考 2022 递归 下降 分析 参考
限制150内