实验45预测分析表方法.doc

上传人:pu****.1 文档编号:550991870 上传时间:2023-11-05 格式:DOC 页数:4 大小:151KB
返回 下载 相关 举报
实验45预测分析表方法.doc_第1页
第1页 / 共4页
实验45预测分析表方法.doc_第2页
第2页 / 共4页
实验45预测分析表方法.doc_第3页
第3页 / 共4页
实验45预测分析表方法.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《实验45预测分析表方法.doc》由会员分享,可在线阅读,更多相关《实验45预测分析表方法.doc(4页珍藏版)》请在金锄头文库上搜索。

1、实验4-5展望剖析表方法实验4-5展望剖析表方法一、实验目的理解展望剖析表方法的实现原理。二、实验内容:编写一通用的展望法剖析程序,要求有必定的错误办理能力,犯错后可以使程序持续运转下去,直到剖析过程结束。可经过不一样的文法(经过数据表现)进行测试。/二、实验内容提示1算法数据结构:结构终结符数组:charVt105=“id”,”+”;结构非终结符数组:charVn10=;结构follow集数组:char*follow1010=并寄存)数据结构示例(使用的展望剖析表结构方法1):(可将follow集与展望剖析表合/*data1.h简单算术表达式数据*/charVN105=E,E,T,T,F;i

2、ntlength_vn=5;/非终结符的个数/非终结符表charVT155=id,+,*,(,),#;intlength_vt=6;/终结符的个数/终结符表charFa1510=TE,+TE,FT,*FT,(E),id/产生式表:E-TE1:E-+TE2:E-空/3:T-FT4:T-*FT5:T-空6:F-(E)7:F-id;intanalysis_table1011=0,-1,-1,0,-2,-2,0,0,0,0,0,-1,1,-1,-1,2,2,0,0,0,0,0,3,-2,-1,3,-2,-2,0,0,0,0,0,-1,5,4,-1,5,5,0,0,0,0,0,7,-2,-2,6,-2,

3、-2,0,0,0,0,0;/ 展望剖析表,-1表示犯错,-2表示该行终结符的follow会合,用于错误办理(1)展望剖析表的结构方法1给文法的正规式编号:寄存在字符数组中,从0开始编号,正规式的编号即为该正规式在数组中对应的下标。结构正规式数组:charP1010=“E-TE”,”E-+TE”,.;(正规式可只储存右半部分,如E-TE可储存为TE,正规式中的符号可替代,如可将E改为M)结构展望剖析表:intanalyze_table1010=-1表示犯错(2)展望剖析表的结构方法2可使用三维数组/数组元素值寄存正规式的编号,Charanalyze_table101010=或Char*analy

4、ze_table101010=2针对展望剖析表结构方法1的查找方法提示:( 1)查非终结符表获得非终结符的序号no1( 2)查终结符表获得终结符的序号no2( 3)根据no1和no2查正规式表得到对应正规式的序号no3=analyze_tableno1no2,假如no3=-1表示犯错。( 4)依据no3查找对应的正规式Pno3( 5)对正规式进行办理3错误办理体制紧迫方式的错误恢复方法(扔掉某些符号,持续向下剖析)(1)栈顶为非终结符A,串中目前单词属于FOLLOW(A),则从栈中弹出A(此时可以为输入串中缺乏A表示的结构),持续剖析。-错误编号为1( 2)栈顶为非终结符A,串中目前单词不属于

5、FOLLOW(A),则可使串指针下移一个地点(以为输入串中目前单词剩余),持续剖析。-错误编号为2( 3)栈顶为终结符,且不等于串中目前单词,则从栈中弹出此终结符(以为输入串中缺乏目前单词)或许将串指针下移一个地点(以为串中目前单词剩余)。在程序中可选择上述两种看法中的一种进行办理。-错误编号3所以error()函数的编写方式可按以下方式办理Error(interrornum)If(errornum=1)Elseif(errornum=2)Else./或许可用choosecase语句办理4增添了错误办理的展望剖析程序展望剖析程序的算法:将“#和”文法开始符挨次压入栈中;把第一个输入符号读入a;

6、do把栈顶符号弹出并放入x中;if(xVT)if(xa)将下一输入符号读入a;elseerror(3);elseif(Mx,a“xy1y2yk”)按逆序挨次把yk、yk-1、y1压入栈中;输出“xy1y2yk”;elseifafollow(x)error(1);elseerror(2);while(x!=“#”)三实验要求给定算术表达式文法,编写程序。测试数据:1算术表达式文法ETEE+TE|-TE|TFTT*FT|/FT|%FT|F(E)|id|num给定一切合该文法的句子,如id+id*id#,运转展望剖析程序,给出剖析过程和每一步的剖析结果。输出形式参照下列图:四、编写实验报告五、实验时间:第九周周四1单元B13531、2软二机房;B13533软四机房周四4单元B13511、2软二机房

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号