欢迎来到天天文库
浏览记录
ID:38631551
大小:95.50 KB
页数:9页
时间:2019-06-16
《标准实验报告(语法分析)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、[标准实验报告]南昌航空大学实验报告年月日课程名称:编译原理实验名称:语法分析班级:姓名:同组人:指导教师评定:签名:一、实验目的为了更好的配合《编译原理》有关词法分析章节的教学,加深和巩固学生对于语法分析的了解和掌握,让学生进一步认识PL/0语言基础和简单的程序编写;通过本实验能够初步了解和认识语法分析的整个过程,并在上机过程中提高C或C++的语言编制能力。二、实验要求1、在做本实验之前要先阅读完总体的预备知识以及本实验相关的基础知识。2、本实验要求自己独立的完成,不允许抄袭别人的实验结果。3、在编写
2、和调试过程中出现的问题最好做一下记录。4、阅读懂我所给出的语法分析程序,然后进行改进。5、在阅读懂我所给出的语法分析程序后,老师将进行逐个的检查以及提问,然后给出成绩。三、实验步骤1、阅读书中所给出的语法分析程序,弄懂程序中每一个变量的含义,以及每一个过程的作用,并在必要的语句后加上注释。2、完成语法分析流程图的设计。3、将程序流程图用C语言进行编辑、编译、链接和运行。4、完成实验的调试,并形成实验报告。四、参考源代码publicvoidanalyzer(){//********************
3、*******//循环读取grammar.txt//***************************9/*此处代码略*///***************************//循环读取lengh.txt//***************************/*此处代码略*///****************************//读入文件,进行语法分析////****************************stringstrReadFile;strReadFile="inp
4、ut.txt";myTextRead.myStreamReader=newStreamReader(strReadFile);stringstrBufferText;intwid=0;Console.WriteLine("分析读入程序(记号ID):");do{strBufferText=myTextRead.myStreamReader.ReadLine();if(strBufferText==null)break;foreach(StringsubStringinstrBufferText.Spl
5、it()){if(subString!=""){intll;if(subString!=null){ll=subString.Length;//每一个长度}else{break;}inta=ll+1;char[]b=newchar[a];9StringReadersr=newStringReader(subString);sr.Read(b,0,ll);/把substring读到char[]数组里intsort=(int)b[0];//word[i]和wordNum[i]对应//先识别出一整个串,再根据
6、开头识别是数字还是字母Word[wid]=subString;if(subString.Equals("void")){wordNum[wid]=0;}else{if(subString.Equals("main")){wordNum[wid]=1;}else{if(subString.Equals("()")){wordNum[wid]=2;}else{if(subString.Equals("{")){wordNum[wid]=3;}else{if(subString.Equals("int")){
7、wordNum[wid]=4;}else{if(subString.Equals("=")){wordNum[wid]=6;}else{if(subString.Equals("}")){wordNum[wid]=22;}9else{if(subString.Equals(";")){wordNum[wid]=23;}else//识别变量和数字{if(sort>47&sort<58){wordNum[wid]=7;}else{wordNum[wid]=5;}}}}}}}}}Console.Write(s
8、ubString+"("+wordNum[wid]+")"+"");wid++;}}Console.WriteLine("");}while(strBufferText!=null);wordNum[wid]=24;myTextRead.myStreamReader.Close();//*********************************//读入LR分析表////******************************
此文档下载收益归作者所有