![递归下降语法分析器实验报告_第1页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/0c1ed430-596a-4daf-be81-fd07a59130f1/0c1ed430-596a-4daf-be81-fd07a59130f11.gif)
![递归下降语法分析器实验报告_第2页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/0c1ed430-596a-4daf-be81-fd07a59130f1/0c1ed430-596a-4daf-be81-fd07a59130f12.gif)
![递归下降语法分析器实验报告_第3页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/0c1ed430-596a-4daf-be81-fd07a59130f1/0c1ed430-596a-4daf-be81-fd07a59130f13.gif)
![递归下降语法分析器实验报告_第4页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/0c1ed430-596a-4daf-be81-fd07a59130f1/0c1ed430-596a-4daf-be81-fd07a59130f14.gif)
![递归下降语法分析器实验报告_第5页](http://file2.renrendoc.com/fileroot_temp3/2021-3/12/0c1ed430-596a-4daf-be81-fd07a59130f1/0c1ed430-596a-4daf-be81-fd07a59130f15.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国有轨堆垛行业市场现状、前景分析研究报告(智研咨询发布)
- 2025年01月事业单位题库每日一练模拟题及参考答案0124笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 《计算机网络基础与应用(第三版)》 课件 项目三 常用网络命令
- 2025年01月2025上海对外经贸大学辅导员公开招聘3人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 二零二五年度学校食堂聘用清洁工服务协议
- 烹饪工艺学(第2版) 课件 单元7味和味觉的基本理论
- 消化实验室常见检查课件
- Unit 6 How do you feel?Part B Let's talk 【知识精研】人教PEP版英语六年级上册
- 1-甲型流感(甲流)护理查房
- 二零二五年度航空航天铝合金部件制造承包合同范本2篇
- 2023年四川省自贡市中考数学真题(原卷版)
- 05-第三章-环境污染物的生物转运和生物转化-生物转化幻灯片
- 室内钢结构隔层施工合同
- 荣威iMAX8汽车说明书
- 山东省潍坊市高职单招2023年英语自考测试卷(含答案)
- 工科高等数学(下)知到章节答案智慧树2023年上海海洋大学
- 儿童羽毛球教程
- 通信工程安全生产手册
- 流程成熟度模型(PEMM)
- 催化动力学分析法及其应用
- 外研版英语九年级下册词汇表音标打印
评论
0/150
提交评论