77范文网 - 专业文章范例文档资料分享平台

LL_1_预测分析器的构造(3)

来源:网络收集 时间:2021-09-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

α),则把α放入以A所在行为行号,以SELECT(A→α)为列

号的分析表pPredictTable[]中。重复以上操作,直到所有产生式的SELECT集合都分析完为止。

2.4利用预测分析表进行分析的算法设计

分析中需要用到分析栈、剩余输入串及有关产生式。为了显示整个分析过程,程序中分别用栈s,input,st来实现。分析时,首先将开始符压人分析栈s,用户输入的字符串与‘#’的连接串放入剩余压入栈input的第一个单元中,然后去掉s栈栈顶元素的最后一个字符,在预测分析表中查找该非终结符所在的行、input栈栈顶元素的第一个字符所在列的值。如果表中元素为空,则出错;否则将表中的产生式放入产生式栈st栈顶,并用该产生式的右部替换s的栈顶元素的字符串的最后一个非终结符,然后将替换后的非终结符串压入s栈栈顶。如果栈s的栈顶元素的最后一个字符是终结符,input栈的栈顶元素的第一个字符是终结符,若两个字符不相等,则出错;否则匹配,分别将两个栈的栈顶元素的匹配字符去掉,并将更新后的元素压入栈顶。st栈栈顶压入“匹配”字符串。如此一直进行到最后s及input栈栈时,分析完毕,表示可以接受此字符串。顶元素都为‘#’

boolIsInVt(charcChar);//判断cChar是否在终结符集合中charGetStart();//取代码的开始符号

boolIsLegalLL1Grammar();//判断是否为LL(1)代码private:

enumCanEmpty{CANTRUE,CANFALSE,UNDEFINED};//定义枚举型变量

//用来标明一个分析表是否为空,还是未定义SetVt;//终结符集合SetVn;//非终结符集合charcStart;//代码开始符号vector<Precept>P;//产生式

CanEmpty*pCanEmptyTable;//定义分析表所处状态的变量int*pPredictTable;//定义存放分析表的指针变量vector<Set>FirstSet;//产生First集vector<Set>FollowSet;//产生Follow集vector<Set>SelectSet;//产生Select集intnVt;//终结符的个数intnVn;//非终结符的个数intnP;//产生式的个数intiIsLL1;//标记是LL(1)代码voidMakeCanReachEmptyTable();//清空原来分析表中的内容,进行新的构造

voidCalculateFirstSet();//计算First集合中的字符个数voidCalculateFollowSet();//计算Follow集合中的字符个数voidCalculateSelectSet();//计算Selec集合中的字符个数

3结束语

该分析器不同于传统的多媒体教学软件,用户只要按规定的格式输入问题,系统能自动地给出该问题的答案和解答过程。该系统能作为学生学习的辅助工具,同时也可以作为教师的教学工具。这也是适应新世纪教学改革的需要。本系统是专门针对编译原理这门课程而设计的,因此,它的运用就仅局限于对编译原理的解答。

参考文献:

[1]吕映芝,张素琴.编译原理[M].清华大学出版社,1998.

[2]KennethCLounder编,冯博琴,冯岚译.编译原理及实践[M].机械

工业出版社,2000.

[3]陈火旺,刘春林等.程序设计语言编译原理(第3版)[M].国防工业出

版社,2001.

[4]温敬和.LL(1)代码及分析表的自动构造[J].计算机工程与应用,

2001.2:50 ̄54

CE

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说公务员考试LL_1_预测分析器的构造(3)在线全文阅读。

LL_1_预测分析器的构造(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/gongwuyuan/1248730.html(转载请注明文章来源)

相关推荐:

Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: