




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理实验报告项目名称 递归下降分析法设计与实现 专业班级 学 号 姓 名 实验成绩:批阅教师:年 月 日实验4递归下降分析法设计与实现实验学时: 2 实验地点: 实验日期: 一、实验目的根据某一文法编制调试递归下降分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对递归下降分析法的理解。二、实验内容程序输入/输出示例(以下仅供参考): 对下列文法,用递归下降分析法对任意输入的符号串进行分析: (1)E-TG(2)G-+TG|TG(3)G-(4)T-FS(5)S-*FS|/FS(6)S-(7)F-(E)(8)F-i输出的格式如下:(1)递归下降分析程序,编制人:姓名,学号,班级(2)输入一以#结束的符号串(包括+*/()i#):在此位置输入符号串例如:i+i*i# (3)输出结果:i+i*i#为合法符号串备注:输入一符号串如i+i*#,要求输出为“非法的符号串”。注意:1. 表达式中允许使用运算符(+-*/)、分割符(括号)、字符I,结束符#; 2. 如果遇到错误的表达式,应输出错误提示信息(该信息越详细越好)。三、实验方法用C语言,根据递归下降分析法的规则编写代码,并测试。四、实验步骤1. 对语法规则有明确的定义;2. 编写的分析程序能够对实验一的结果进行正确的语法分析;3. 对于遇到的语法错误,能够做出简单的错误处理,给出简单的错误提示,保证顺利完成语法分析过程;五、实验结果六、实验结论#include#include#include#includechar a50,b50,d200,e10;char ch;int numOfEq,i1=0,flag=1,n=6;int E();int E1();int T();int G();int S();int F();void input();void input1();void output();/=void main()/*递归分析*/ int foe1,i=0; char x; d0=E;d1=;d2=;d3=?;d4=T;d5=G;d6=#;printf(请输入字符串(以#号结束)n);do scanf(%c,&ch);ai=ch;i+;while(ch!=#);numOfEq=i;ch=b0=a0;printf(文法t分析串tt分析字符t剩余串n);foe1=E1();if (foe1=0) return;if (ch=#) printf(acceptn);i=0;x=di;while(x!=#) printf(%c,x);i=i+1;x=di;/*输出推导式*/printf(n);else printf(errorn); printf(回车返回n);getchar();getchar();return;/=int E1() int fot,fog;printf(E-TGt);flag=1;input();input1();fot=T();if (fot=0) return(0);fog=G();if (fog=0) return(0);else return(1); /=int E() int fot,fog; printf(E-TGt); e0=E;e1=;e2=;e3=?;e4=T;e5=G;e6=#; output(); flag=1; input();input1(); fot=T(); if (fot=0) return(0); fog=G(); if (fog=0) return(0); else return(1); /=int T() int fof,fos; printf(T-FSt); e0=T;e1=;e2=;e3=?;e4=F;e5=S;e6=#; output(); flag=1; input();input1(); fof=F(); if (fof=0) return(0); fos=S(); if (fos=0) return(0); else return(1); /=int G() int fot; if(ch=+) bi1=ch; printf(G-+TGt); e0=G;e1=;e2=;e3=?;e4=+;e5=T;e6=G;e7=#; output(); flag=0; input();input1(); ch=a+i1; fot=T(); if (fot=0) return(0); G(); return(1); else if(ch=-) bi1=ch; printf(G-TGt); e0=G;e1=;e2=;e3=?;e4=-;e5=T;e6=G;e7=#; output(); flag=0; input();input1(); ch=a+i1; fot=T(); if (fot=0) return(0); G(); return(1); printf(G-t);e0=G;e1=;e2=;e3=?;e4=;e5=#;output();flag=1;input();input1();return(1);/=int S() int fof,fos; if(ch=*) bi1=ch;printf(S-*FSt); e0=S;e1=;e2=;e3=?;e4=*;e5=F;e6=S;e7=#; output(); flag=0; input();input1(); ch=a+i1; fof=F(); if (fof=0) return(0); fos=S(); if (fos=0) return(0); else return(1); else if(ch=/) bi1=ch;printf(S-/FSt); e0=S;e1=;e2=;e3=?;e4=/;e5=F;e6=S;e7=#; output(); flag=0; input();input1(); ch=a+i1; fof=F(); if (fof=0) return(0); fos=S(); if (fos=0) return(0); else return(1); printf(S-t); e0=S;e1=;e2=;e3=?;e4=;e5=#; output(); flag=1; ai1=ch; input();input1(); return(1); /=int F()int f; if(ch=() bi1=ch;printf(F-(E)t); e0=F;e1=;e2=;e3=?;e3=(;e4=E;e5=);e7=#; output(); flag=0; input();input1(); ch=a+i1; f=E(); if (f=0) return(0); if(ch=) bi1=ch;printf(F-(E)t); flag=0;input();input1(); ch=a+i1; else printf(errorn);return(0);else if(ch=i)bi1=ch;printf(F-it);e0=F;e1=;e2=;e3=?;e4=i;e5=#;output();flag=0;input();input1();ch=a+i1;elseprintf(errorn);return(0);return(1);/=void input() int i=0;for (;i=i1-flag;i+)printf(%c,bi);/*输出分析串*/printf(tt);printf(%ctt,ch);/*输出分析字符*/=void input1()int i;for (i=i1+1-flag;i;dn+2=?;dn+3=#;n=n+3;i=n;i=i-2;while(di!=?&i!=0)i-;i=i+1;while(di!=e0)i=i+1;q=i;m=q;k=q;while(dm!=?)m=m-1;m=m+1;while(m!=q)dn=dm;m=m+1;n=n+1;dn=#;for(j=3;ej!=#;j+)dn=ej;n=n+1;k=k+1;while(dk!=)dn=dk;n=n+1;k=k+1;dn=#;七、实验小结通过本次试验实践掌握了自上而下语法分析法的特点。掌握了递归下降语法分析的基本原理和方法。运用递归下降分析法完成了本试验的语法分析构造,并且成功的分析出每种正确的句子和错误的句子。函数的构造是根据
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大规模优化框架-洞察及研究
- 教体局经费管理制度
- 负载均衡网络流量优化-洞察及研究
- 演艺(经纪)合同格式范本5篇
- 物联网技术支撑的健康风险评估模型-洞察及研究
- 学生食堂安全知识培训课件
- 手扶梯上下井安全培训课件
- 东莞个人税务咨询方案
- 学生灶安全检查培训简报课件
- 手写课件的编写方法
- 辐射安全防护技术革新方案
- 2025年大学生人文知识竞赛题库及参考答案
- 高考集合考试题及答案
- 中秋团圆主题班会课件
- 潍坊市辅警考试题库2025
- 飞行服务站2025年无人机培训基地建设与发展报告
- GB/T 22080-2025网络安全技术信息安全管理体系要求
- 储能型虚拟电厂的建设与思考分析报告
- 楼地面装饰构造(史上最全面)
- 五四制青岛版2022-2023四年级科学上册第二单元第6课《测量距离和时间》课件(定稿)
- 海关AEO管理体系高级认证企业名录
评论
0/150
提交评论