实验2-自向下预测分析语法分析程序.doc

实验2-自向下预测分析语法分析程序.doc

ID:55514292

大小:27.00 KB

页数:5页

时间:2020-05-15

实验2-自向下预测分析语法分析程序.doc_第1页
实验2-自向下预测分析语法分析程序.doc_第2页
实验2-自向下预测分析语法分析程序.doc_第3页
实验2-自向下预测分析语法分析程序.doc_第4页
实验2-自向下预测分析语法分析程序.doc_第5页
资源描述:

《实验2-自向下预测分析语法分析程序.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、《编译原理》实验报告一,实验内容设计、编制并调式一个语法分析程序,加深对语法分析原理的理解。二,实验目的及要求利用C++(或C)编制确定的自顶向下预测分析语法分析程序,并对简单语言进行语法分析。2.1、待分析的简单语言的语法若文法G[E]为:(1)E–>TE’(2)E’–>+TE’(3)E’–>e(4)T–>FT’(5)T’–>*FT’(6)T’–>e(7)F–>(E)(8)F–>i2.2、实验要求及说明具体要求如下:1、用可视化界面分步骤实现,显示输出每一步的处理结果。2、首先按照判别步骤判断给定文法是否LL(1)文法。3、给出文法的预测分析表。4、编写预测分析程序,输出句子的

2、分析过程。5、输入源文件串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印“SUCCESS”,否则输出“ERROR”。例如:输入文件:i+i*(i+i)#输出success过程:略;输入文件:i+ii#输出error三,实验环境Dvc++四,源程序清单#include#include#defineMAX50usingnamespacestd;structT_NT{intcode;charstr[MAX];};T_NTT[12]={{0,"i"},{1,"+"},{2,"*"},{3,"("},{4,")"},{5,"#"},{6,"!"

3、},{256,"E"},{257,"E'"},{258,"T"},{259,"T'"},{260,"F"}};T_NTR[8]={{0,"->TR"},{1,"->+TR"},{2,"->e"},{3,"->FW"},{4,"->*FW"},{5,"->e"},{6,"->(E)"},{7,"->i"}};stackstak;intYy_pushab[7][4]={{257,258,6},{257,258,1,6},{6},{259,260,6},{259,260,2,6},{0,6},{4,256,3,6}};intYy_d[5][6]={{0,-1,-1,0,-1,

4、-1},{-1,1,-1,-1,2,2},{3,-1,-1,3,-1,-1},{-1,2,4,-1,2,2},{5,-1,-1,6,-1,-1}};intmain(){inti=0,j=0,l=0,b=0,h=0,w=0;intq,k,m,n,a,what,p;charc,t[MAX];ints[MAX];cout<<"请输出要输入的字符串:";while(c!='#'){cin>>c;t[l]=c;switch(c){case'i':s[l]=0;break;case'+':s[l]=1;break;case'*':s[l]=2;break;case'(':s[l]=3;bre

5、ak;case')':s[l]=4;break;case'#':s[l]=5;break;case'!':s[l]=6;break;}l++;}cout<<"LL1文法预测分析表如下:"<

6、ntf("%10c",T[i+7].str);cout<<""<

7、k;case7:cout<

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

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

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