编译原理lr(1)分析技术

编译原理lr(1)分析技术

ID:44429325

大小:158.50 KB

页数:5页

时间:2019-10-22

编译原理lr(1)分析技术_第1页
编译原理lr(1)分析技术_第2页
编译原理lr(1)分析技术_第3页
编译原理lr(1)分析技术_第4页
编译原理lr(1)分析技术_第5页
资源描述:

《编译原理lr(1)分析技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、西北师范大学计算机科学与工程学院学生实验报告学号201271030103专业计算机科学与技术班级计师⑴班姓名课程名称编译原理课程类型实验课实验名称LR(1)分析技术实验目的:构造LR(1)分析程序,利用它进行语法分析,判断给出的符号串是否为该文法识别的句子,了解LR(K)分析方法是严格的从左向右扫描,和自底向上的语法分析方法。实验内容:对下列文法,用LR(1)分析法对任意输入的符号串进行分析:(产生式冇误,进行修改)(1)E-E+T(2)E-E—T(E->T)(3)T・T*F(4)T-T/F(T->F)(5)F-(E)(6)F-i实验代码如下:#include

2、am>usingnamespacestd;constintMaxStateNum=12;constintMaxVtNum=6;constintMaxVnNum=4;constintMaxNodeNum=50;constintMaxStackDepth=50;constintMaxRuleNum=7;enumisAccept{YES,NO,ERROR};structGrammar{intnode;intRightLength;};structStackNode{intstate;intnode;};classLasa{private:charVn[MaxVnNum];char

3、Vt[MaxVtNum];intActionfMaxStateNumlfMaxVtNum];intGoto[MaxStateNum][MaxVnNum];Grammargrammar[MaxRuleNum];StackNodeStack[MaxStackDepth];inttops;public:Lasa();~Lasa(){}isAcceptaccept(charstr[]);};Lasa::Lasa(){charvn[MaxVnNum]={'ZVEVTVF};charvt[MaxVtNum]={intac[MaxStateNuml[MaxVtNum]={{0,0,0,4

4、,0,5},{999,6,0,0,0,0},{・2,・2,7,0,・2,0},{-4,-4,-4,0,-4,0},{0,0,0,4,0,5},{・6,・6,・6,0,・6,0},{0,0,0,4,0,5},{0,0,0,4,0,5},{0,6,0,0,11,0},{-11,7,0,-1,0},{-3,-3,-3,0,-3,0},{-5,-5,-5,0,-5,0}};intgo[MaxStateNum][MaxVnNum]={{0,1,2,3},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,8,2,3},{0,0,0,0},{0,0,9,3},{0,0,0

5、,10},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0}};Grammargra[MaxRuleNum]={{100,2},{101,3},{101,l},{102,3},{102,1},{103,3)4103,1}};inti=0,j=0;tops=0;Stack[tops].state=0;while(i

6、n[iJU]=ac[i]UJ;}for(i=0;i

7、j]=go[i]U];}i=0;while(i

8、串”;act=O;while(str[i]!=,,llact<999){if(str[i]==O*)tag=l;j=0;cout«"t"«k++«"t";while(j<=tops){if(j!=O){if(Stack[j].node>99&&Stack[j].node<110)cout«Vn[Stack[j].node-100);elsecout«Vt[Stack[j].node];}cout«Stack[j++].state;}cout«"tttn;••J=l;while(strfj]!=

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

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

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