1 / 11
文档名称:

实验4-5预测分析表方法实验报告.doc

格式:doc   大小:284KB   页数:11页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

实验4-5预测分析表方法实验报告.doc

上传人:小博士 2019/1/5 文件大小:284 KB

下载得到文件列表

实验4-5预测分析表方法实验报告.doc

文档介绍

文档介绍::..实验4-5 预测分析表方法一、 实验目的理解预测分析表方法的实现原理。二、 实验内养:编写一通用的预测法分析程序,要求有一定的错误处理能力,出错后能够使程序继续运行下去,直到分析过程结束。可通过不同的文法(通过数裾表现)进行测试。二、:构造终结符数组:charVt[10][5]={“id”,”+”};构造非终错符数纟11:charVn[10]={ };构造follow集数组:char*follow[10][10]={ }(可将follow集与预测分析表合并存放)数据构造示例(使用的预测分析表构造方法1):/**/charVN[1O][5]={〃E〃,〃E’",〃T〃,〃T’〃,〃I:〃};//非终结符表int length_vn=5;//非终結符的个数charVT[15][5]={"id: ;//终结符表int length^vt=6;//终结符的个数charFa[15][10]={〃TE’",、+TE’〃,〃〃,〃FT’〃,"*FT’ "(E)〃,"id"};//产生式表:E->TE’ l:E’->+TE’2:E’->空//3:T->ET, 4:T,->*I'T, 5:T’->空6:E->(E) 7:E->idint analysis_table[10][ll]={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,-2,0,0,0,0,0};//预测分析表,-1表示出错,-2表示该行终结符的follow集合,用于错误处理(1) 预测分析表的构造方法1给文法的正规式编号:存放在字符数组屮,从0开始编号,正规式的编号即为该正规式在数组屮对应的下标。构造正规式数组:charP[10][10]={“E-〉TE’”,”E’-〉+TE”’, };(正规式可只存储右半部分,如E-〉TE’可存储为TE’,正规式中的符号可替换,如可将E’改为M)构造预测分析表:intanalyze_table[10][10]={ } //数组元素值存放正规式的编号,-1表示出错(2)预测分析表的构造方法2可使用三维数组Charanalyze_table[10][10][10]={ }或Char*analyze_table[10][10][10]={ }:(1)查非终结符表得到非终结符的序号iwl(2)查终结符表得到终结符的序号no2(3)根据nol和no2查正规式表得到对应正规式的序号no3=analyze_table[nol][no2],如果no3=-l表示出错。(4)根掘no3查找对应的正规式;P[no3](5)(抛弃某些符号,继续向下分析)(1)栈顶为非终结符A,串屮当前单词属于FOLLOW(A),则从栈屮弹出A(此时可认为输入串中缺少A表示的结构),继续分析。 错误编号为1(2)栈顶为非终结符A,串中当前单词不属于FOLLOW(A),则可使串指针下移一个位置(认为输入串中当前单词多余),继续分析。 错误编号为2(3)栈顶为终结符,且不等于串中当前单同,则从栈中弹出此终结符(认为输入串中缺少当前单词)或者将串指针下移一个位置(认为串屮当前单词多余)。在程序屮可选择上述两种观点屮的一种进行处理。 错误编号3因此error()函数的编写方式可按如下方式处理Error(interrornum){If(errornum==l) Elseif(crromum=2) Else //或者可用choosecase语句处理}:将“#”和文法开始符依次压入栈中;把第一个输入符号读入a;do{把栈顶符号弹出并放入x屮;if(xEVT){if(x==a)将下一输入符号读入a;elseerror(3);}elseif(M[x,a]=“x-*yly2...yk”){按逆序依次把yk、yk-1、…、yl压入栈巾;输出“x-*yly2...yk”;}elseifaefollow(x)crror(l);elseerror(2);}while(x!=T),编写程序。测试数裾:->TE,F?->+TF/|-TF/|eT->FT,T’->*FT’ 1/FT’|%FT’eF-*(E)Iid|num给定一符合该文法的句子,如id+id*id#,运行预测分析程序,给出分析过程

最近更新

2024年山东省淄博市行政职业能力测验题库及参.. 150页

2024年山西省阳泉市选调生考试(公共基础知识.. 149页

2024年广西玉林市残疾人康复中心招聘5人历年高.. 90页

长租公寓方案 3页

2024年广西百色市田阳县乡镇事业单位招聘15人.. 90页

2024年广西省防城港市城市管理综合执法局招聘.. 91页

2024年广西藤县事业单位招聘59人历年高频难、.. 88页

2024年广西钦州市钦北区事业单位招聘106人历年.. 88页

2024年江西冶金职业技术学院单招职业适应性测.. 58页

2024年江西省新余市行政职业能力测验题库(网.. 147页

2024年河北省邯郸市选调生考试(公共基础知识.. 146页

2024年浙江省宁波市行政职业能力测验题库(培.. 146页

2024年温州科技职业学院单招职业适应性测试题.. 57页

2024年益阳医学高等专科学校单招职业适应性测.. 58页

2024年辽宁广告职业学院单招职业适应性测试题.. 59页

2024年阜新高等专科学校单招职业适应性测试题.. 57页

2024年黑龙江省黑河市行政职业能力测验题库(.. 149页

公共基础知识上海市选调生考试(行政职业能力.. 147页

公共基础知识山西省晋中市选调生考试(行政职.. 147页

公共基础知识河北省秦皇岛市选调生考试(行政.. 147页

公共基础知识湖北省荆门市选调生考试(行政职.. 148页

公共基础知识黑龙江省黑河市选调生考试(行政.. 146页

安徽六安2024市直事业单位招聘历年高频难、易.. 59页

富士变频器常见的问题解答 3页

安徽铜陵县2024年公开招聘事业单位工作人员历.. 58页

山东省济宁市事业单位招聘考试(职业能力倾向.. 150页

广西省桂林市选调生考试(行政职业能力测验).. 148页

蓝奏云软件库合集软件资料 1页

传承壮族文化心得体会 5页

2021年SL176,水利水电工程施工质量检验和评定.. 6页