




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、装订线 编译原理实验报告 题目: 递归下降语法分析器 学 院 计算机科学与技术 专 业 xxxxxxxxxxxxxxxx 学 号 xxxxxxxxxxxx 姓 名 宁剑 指导教师 xx 20xx年xx月xx日递归下降语法分析器一、实验目的 了解语法分析器的内部工作原理,通过在本次实验中运用一定的编程技巧,掌握对表达式进行处理的一种方法。二、实验原理 算术表达式的文法可以是(可以根据需要适当改变):EE+E|E-E|E*E|E/E|(E)|i 根据递归下降分析法或预测分析法 ,对表达式进行语法分析 ,判断一个表达式是否正确 。三、实验步骤(1) 准备:1. 阅读课本有关章节,确定算术表达式的文法
2、;(设计出预测分析表);2. 考虑好设计方案;3. 设计出模块结构 、测试数据,初步编制好程序。(2) 上机调试,发现错误,分析错误,再修改完善。教师根据学生的设计方案与学生进行探讨,以修改方案和代码 。(3)改造后的文法:EE+T|E-T|TTT*F|T/F|FFF|PPc |id| (E)四、实验环境计算机 VC+软件五、实验程序#include#include #include#include#includevoid error();void terror();void Scanner();char sym= ;int i=0;char strToken30=;FILE *in;void
3、 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);elseprintf(%s,strToken);i=0;Retract(strToken);fseek(in,-2,1);sy
4、m=fgetc(in);break;elseif(sym=+)printf(+);else if(sym=-)printf(-);else if(sym=*)printf(*);else if(sym=/)printf(/);else if(sym=)printf();else if(sym=()printf();else if(sym=)printf();void F()if(isdigit(sym)Scanner();else if (sym=()Scanner();E();if(sym=)Scanner();else error(); else terror();void T1()if(
5、sym=*|sym=/|sym=)Scanner();F();T1();void T()F();T1();void E1()if (sym=+|sym=-)Scanner();T();E1();void E()T();E1();void error()printf(nThis is a wrong phrase!n);exit(0);void terror()printf(nthis is a wrong parase2!n);exit(0);int main()if(in=fopen(input.txt,r)=NULL)printf(File cant open.);exit(0);Scan
6、ner();E();if (sym!=#)printf(nSuccess.);elseprintf(nFail.);fclose(in);return 0;六、实验结果及分析程序输入/输出示例 : 如参考 C 语言的运算符。输入如下表达式 (以分号为结束)和输出结果 :(a) 10;输出:正确 此时程序运行结果如下图:(b) 1+2;输出:正确 此时程序运行结果如下图:(c) (1+2) / 3+4- (5+6/7);输出:正确 此时程序运行结果如下图:(d) ( (1-2) /3+4;输出:错误 此时程序运行结果如下图:(e) 1+2-3+(*;输出:错误此时程序运行结果如下图:(f) (1+2) / 3+4- (5+6/7) -23;输出:正确此时程序运行结果如下图:(g) (1+2) / 3+4- (5+6/7) -;输出:错误此时程序运行结果如下图:总结:通过该实验的操作 ,我了解了语法分析器的内部工作原理,通过在本次实验中运用一定的编程技巧
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 庭院硬化打扫方案(3篇)
- 农场创业合伙方案(3篇)
- 经济条件与养老服务可及性之间的关系
- 2025至2030全球及中国远程保险行业项目调研及市场前景预测评估报告
- 四级心理健康教育体系
- 2025-2030年国内儿童绘本行业市场发展分析及发展前景与投资机会研究报告
- 2025-2030年医药保健品行业市场深度调研及前景趋势与投资研究报告
- 2025-2030年乐器产业行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国鸡蛋蛋白行业市场现状供需分析及投资评估规划分析研究报告
- 2025-2030年中国超市连锁行业市场现状供需分析及投资评估规划分析研究报告
- 糖尿病前期症状
- 十五五我国汽车产业发展趋势简析
- 基于线性二次型的单神经元PID最优控制器设计及仿真
- 应急物资采购合同
- 临床胸壁神经纤维瘤影像诊断与鉴别
- 安装操作手册CPC-II电流-压力转换器
- 【MOOC】环境资源法学-西南政法大学 中国大学慕课MOOC答案
- 居家护理的形式家庭病床
- 燕罗智能网联汽车产业园建筑方案设计
- 特许经营合作合同
- 一规程四细则学习题库
评论
0/150
提交评论