语法分析实验.doc_第1页
语法分析实验.doc_第2页
语法分析实验.doc_第3页
语法分析实验.doc_第4页
语法分析实验.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验二:递归下降分析一、实验目的:理解语法分析程序的主要任务和实现技术。二、实验内容:为无二义性表达式文法GE构造语法分析程序GE: E-E+T|T T-T*F|F F-(E)|i三、实验要求:1. 用递归下降分析方法和LR(1)分析方法分别实现,要求能够对正确的和错误的输入串进行分析,给出分析结果(accept/error)。2. 程序输入为形如i+i*i# 或者ii#的串,对于递归下降分析,输出为推导所用的产生式序列。四、程序流程图E()输出产生式T()输出产生式E1()E1()是否是“+”为空输出T-指针加1输出E-+TE调用T(),E()是否T()输出产生式F()TFT输出产生式TFTT1()E1()是否是*“&*”为空输出E-指针加1输出产生式E +TE调用T(),E()否是F()是(输出产生式F-(E)E()输出产生式E-(是i输出产生式F-i是(还是i五、 程序运行截图实验过程中遇到的问题和解决办法,以及实验过程中的收获:参考程序中没有输出使用产生式,在每一个子程序中添加该程序是别的产生式。收获:对于SLR1文法有了更加深刻的认识,加强了C语言的编程能力,分工合作中,互相学习提高,我们更加认识到团结的力量。六、 程序#include #include#include#includechar a50 ,b50;char ch;int n1,i1=0,n=5;int E();int T();int E1();int T1();int F();void main() /*递归分析*/ int f,j=0; printf(请输入字符串(长度50,以#号结束)n); do scanf(%c,&ch); aj=ch; j+; while(ch!=#); n1=j; ch=b0=a0; f=E(); if (f=0) return; if (ch=#) printf(acceptn); else printf(errorn);int E() / ETE int f,t;printf(ETEn); f=T(); if (f=0) return(0); t=E1(); if (t=0) return(0); else return(1);int T() / TFT int f,t; printf(TFTn); f=F(); if (f=0) return(0); t=T1(); if (t=0) return(0); else return(1);int E1()/*E*/ / E+TE int f; if(ch=+) printf(E+TEn); bi1=ch; ch=a+i1; f=T(); if (f=0) return(0); E1(); return(1); return(1);int T1()/*T*/ / T*FT int f,t; if(ch=*) printf( T*FTn); bi1=ch; ch=a+i1; f=F(); if (f=0) return(0); t=T1(); if (t=0) return(0); else return(1); ai1=ch; return(1);int F() / F(E) int f; if(ch=() printf(F(E)n); bi1=ch; ch=a+i1; f=E(); if (f=0) return(0); if(ch=) bi1=ch; ch=a+i1; else printf(errorn); return(0); else if(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论