实验4--预测分析(已完成)

实验4--预测分析(已完成)

ID:44606598

大小:278.02 KB

页数:16页

时间:2019-10-24

实验4--预测分析(已完成)_第1页
实验4--预测分析(已完成)_第2页
实验4--预测分析(已完成)_第3页
实验4--预测分析(已完成)_第4页
实验4--预测分析(已完成)_第5页
资源描述:

《实验4--预测分析(已完成)》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验四语法分析(一)一一预测分析技术一、实验目的:对给定的文法及其预测分析表,对输入的符号串进行识别,并给出符号串的识别过程,包括各步骤的栈内容,输入和输出。二、实验要求:首先应该详细掌握预测分析技术的原理,方法详细的分析步骤。其次要了解数据结构中栈部分的内容,包扌舌栈的特点及在预测分析中的使用情况,预测分析其实可以看成是对两个基本的栈的操作,因此,对栈的有关知识要求比较熟悉。在实验前可复习数据结构中栈的内容,这样可使本实验比较顺利的进行。F面以例说明最后所应实现的功能输入文法规则2:A::=e5:C::=eO:Z:

2、:=BA1:A::=+BA3:B::=DC4:C::=*DC6:D::=(Z)7:D::=i输入预测分析表!O:Z::=BA1:A::=+BA2:A::=g5:C::=e3:B::=DC4:C::=*DC6:D::=(Z)7:D::=i依次输入PTable[乙+[PTable[Z,*JPTable[Z,(]PTable[乙)[PTable[Z,i]PTable[Z,#J对应的规则编号:-1-10-10-1依次输入PTable[A,+JPTable[A,*JPTable[A,(]PTable[A,)JPTablelA,

3、i]PTable[A,#J对应的规则编号:1-1-12-12依次输入PTable[B,+]PTable[B,*]PTable[B,(]PTable[B,)]PTable[B,i]PTable[B,#]对应的规则编号:・1・13-13-1依次输入PTable[C,+]PTable[C,*]PTable[C,(]PTable[C,)]PTable[C,i]PTable[C,#]对应的规则编号:54-15-15依次输入PTable[D,+]PTable[D,*]PTable[D,(]PTable[D,)]PTable[D,

4、i]PTable[D,#]对应的规则编号:-l-16-17-l+*()■1#ZZ::=BAZ::=BAAA::=+BAA::=EA::=£BB::=DCB::=DCCC::=£C::=*DCC::=£C::=eDD::=(Z)D::=i请输入要识别的符号串:i+i*i步骤栈输入输出0#Zi+i*i#Z::=BA1#ABi+i*i#B::=DC2#ACDi+i*i#D::=i3#ACii+i*i#4#AC+i*i#C::=£5#A+i*i#A::=+BA6#AB++i*i#7#ABi*i#B::=DC8#ACDi*i#

5、D::=i9#ACii*i#10#AC*i#C::=*DC11#ACD**i#12#ACDi#D::=i13#ACii#14#AC#C::=£15#A#A::=816##Success!该符号串是该文法的句子!输入要识别的符号串:ii步骤栈输入输出0#Zii#Z::=BA1#ABii#B::=DC2#ACDii#D::=i3#ACiii#4#ACi#Failure!该符号串不是该文法的句子!三、参考程序#include#include#include#i

6、ncludcstructRegularity〃存放文法规则的数组结构{charregular[20];);classStack〃定义一个栈类{public:Stack(int=10);〜Stack(){delete[]elements;}voidPush(constchar&item);charPop();charGetlopO;voidMakeEmpty(){top=-1;)intIsEmptyOconst{returntop=-l;}intIsFull()const{returntop==m

7、axSizc-l;)voiddisplay();private:inttop;char*elements;intmaxSize;};Stack::Stack(ints):top(-1)5maxSize(s){elements=newchar[maxSize];assert(elements!=0);)voidStack::Push(constchar&item){assert(!IsFull());clcmcnts

8、++top]=itcm;}charStack::Pop(){assert(!IsEmpty());re

9、turnelementsltop-J;)charStack::Gctlop()assert(!IsEmptyO);returnelements[top];1voidStack::display(){elements[top+1]=,,;cout«elements;}//////////////////////////////////////

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

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

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