《计算机网络实验报告》简单lr语法分析程序自动生成器的实现.docxVIP

  • 6
  • 0
  • 约1.24万字
  • 约 17页
  • 2018-04-07 发布于江西
  • 举报

《计算机网络实验报告》简单lr语法分析程序自动生成器的实现.docx

《计算机网络实验报告》简单lr语法分析程序自动生成器的实现.docx

简单LR语法分析程序自动生成器的实现学 号____________姓 名____________指导教师____________2013 年 11 月需求分析设计目的: 设计、编制和调试一个典型的LR(1)分析器,进一步掌握LR(0)语法分析方法掌握用预分析分析LR(0)文法的具体过程。加深对LR(0)文法和预测分析文法的理解。基本要求以BNF形式给定某种简单程序设计语言组成部分的若干语法规则及测试用例:1、读入语法规则,自动生成对该语言进行语法分析的表驱动语法分析程序—LR(0)语法分析器; 2、对于给定的测试用例(程序),生成的表驱动语法分析程序即LR(0)语法分析器能够对其进行语法分析,按照自底向上的顺序输出推导过程中用到的语法规则输入以BNF形式给定描述某种高级程序设计语言组成部分的若干语法规则及测试用例(可读取文件获取)输出程序运行时应该能够根据不同的输入(即语法规则),自动生成对该语言进行语法分析的表驱动语法分析程序--LR(0)语法分析器,运行该语法分析程序可以对测试用例进行语法分析并按照“自底向上”的顺序输出推导过程中用到的语法规则;基本功能:根据LR(0)分析法编写一个语法分析程序,输入已给定文法,直接输入根据己知文法构造的LR(0)分析表。对于输入的符号串,所编制的语法分析程序应能正确判断 此串是否为文法的句子,并要求输出分程程序开发运行所需环境:C++三、详细设计3.1判断是否为终极符号bool Judge(char ch){if ((ch=Ach=Z)||ch==-||ch==||ch== ){return true;}elsereturn false;}读入输出给定文法3.2检查读入的文法并将文法转换是否为终极符是否重复 Y N是否重复 Y Y删除重复删除重复 N N输出终极符及输出非终极符void begin(){FILE *fp;char ch;intvnloc[30];intreal_row=0,w=0,i,j,k,l;cout给定文法析出如下:endl;if((fp=fopen(d:\\wenfa.txt,r))==NULL){ //文法转换程序,打开的d:\\wenfa.txt,coutCannot open the fileendl;}ch=fgetc(fp); //获取文件下一个字符,并令ch等于它for(;ch!=EOF;row++){//the big forif(ch==\n) ch=fgetc(fp);for (i=1;irow;i++)//vnloc[]中元素内容为真正的不重复的非终结符的在table[][0][0]中的位置。{if(table[i][0][0]==ch)break;if(i==row-1){real_row++;vnloc[w++]=row;}}if(row==1) {vnloc[w++]=row; real_row++;}//第一个非终结符出现,上面不能检测,故此专门写入table[row][0][0]=ch;//表格第row行第一列为非终结符chfor(j=0;ch!=;;j++){//所以最后一个文法必以分号结尾if(Judge(ch)==0){ //如果是终结符(除了A-Z,-,,;)之外for(int k=1,COL=col;k=COL;k++){ //判断是否有重复的终结符,终结符放在table[0]这个二维数组里,每个都是table[0][x][0]位置if(table[0][k][0]==ch) break; //有重复,弹出if(k==COL) table[0][col++][0]=ch; //检查完之前所有已确定的终结符均未发现重复,//则表格第一行第col列为终结符ch}}//if endcoutch;//这样的话屏幕上输出就会没有减、大于、空格三个符号ch=fgetc(fp);}//while endcout;endl;ch=fgetc(fp);}//the big forfclose(fp);coutendl;ofstreamofnew_wenfa(d:\\new_wenfa.txt);//写新文法ofnew_wenfarow-1 real_row col-1endl;cout分析如下:endl;cout 非终结符个数为:real_rowendl;cout vn分别为:;for(i=0;ireal_row;i++){couttable[vnloc[i]][0][0]

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档