编译原理实验二 预测分析法.doc

编译原理实验二 预测分析法.doc

ID:56951370

大小:112.50 KB

页数:32页

时间:2020-07-28

编译原理实验二  预测分析法.doc_第1页
编译原理实验二  预测分析法.doc_第2页
编译原理实验二  预测分析法.doc_第3页
编译原理实验二  预测分析法.doc_第4页
编译原理实验二  预测分析法.doc_第5页
资源描述:

《编译原理实验二 预测分析法.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验二预测分析法一、实验项目名称预测分析法二、实验目的根据某一LL(1)文法编制调试预测分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析法的理解。三、实验环境Win8系统,VC++6.0软件,C语言开发工具四、实验内容本次实验的LL(1)文法为表达式文法:E→E+T

2、TT→T*F

3、FF→i

4、(E)编写识别表达式文法的合法句子的预测分析程序,对输入的任意符号串,给出分析过程及分析结果。分析过程要求输出步骤、分析栈、剩余输入串和所用产生式。如果该符号串不是表达式文法的合法句子,要给出尽量详细的错误提示。五、实

5、验步骤首先将终结符和非终结符以及预测分析表计算出来,并保存到数组中然后对输入的字符进行分析,将一个个终结符进行分配在分配的过程中输出每一步步骤对错误处,显示步骤数和错误字符六、源程序清单、测试数据、结果源程序:#include#include#includeusingnamespacestd;charzhong[6]={'i','+','*','(',')','#'};charfzhong[5]={'E','R','T','Y','F'};charshu[20];9//R代表

6、E'Y代表T'stringbiao[5][6]={{"TR","","","TR","",""},{"","+TR","","","@","@"},//@代表空{"FY","","","FY","",""},{"","@","*FY","","@","@"},{"i","","","(E)","",""}};#defineN20;typedefchartype;typedefstruct{type*base;type*top;intstacksize;}sqstack;voidinitstack(sqstack&s){s.base=

7、newtype[2];if(!s.base)cout<<"错误";s.top=s.base;s.stacksize=N;}voidpush(sqstack&s,typee){if(s.top-s.base==s.stacksize)cout<<"栈满";*s.top++=e;}voidpop(sqstack&s,type&e){if(s.top==s.base)cout<<"栈空";e=*--s.top;}typegettop(sqstacks)9{if(s.top==s.base)cout<<"栈空";return*(s.top-

8、1);}intfind1(charx){for(inti=0;i<5;i++){if(x==fzhong[i]){break;}}returni;}intfind2(charx){for(inti=0;i<6;i++){if(x==zhong[i]){break;}}returni;}voidshowstack(sqstackfen){chara;sqstackx;initstack(x);while(fen.top!=fen.base){pop(fen,a);push(x,a);}9while(x.top!=x.base){pop

9、(x,a);cout<

10、p(fen,ch2);}elseif(gettop(fen)=='#'){cout<

11、d2(shu[i])]=="@"){cout<

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。