欢迎来到天天文库
浏览记录
ID:16359348
大小:91.50 KB
页数:9页
时间:2018-08-09
《递归下降语法分析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、学生实验报告实验项目名称:递归下降语法分析实验学时:6同组学生姓名:实验地点:实验日期:实验成绩:批改教师:批改时间:一、实验目的和要求通过本实验,了解递归下降预测分析的原理和过程以及可能存在的回溯问题,探讨解决方法,为预测分析表方法的学习奠定基础。分析递归下降子程序的优缺点。二、实验仪器和设备硬件系统:586以上计算机、服务器要求内存256以上、Cpu2.0GHz以上、Clinet内存128以上、CPU奔腾III以上,硬盘,光驱等软件系统:VisualStudio2005中文版软件三、实验过程1、设计框架开始实例化对象输入符号串进行语法分析递归调用程序判断文法输出,
2、结束图1-1递归下降程序框架图2、设计步骤1)给定文法:EàE+T|TTàT*F|FFà(E)|i2)构造FIRST()集和FOLLOW()集表2-1FIRST()集和FOLLOW()集FIRSTFOLLOWE(,i#,+,)T(,i#,+,),*F(,i#,+,),*3、程序源代码usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespace递归下降语法分析{publicclassProgram{publicstaticchar[]a=newchar[50];publicstaticcha
3、r[]b=newchar[50];publicstaticchar[]d=newchar[200];publicstaticchar[]e=newchar[10];publicstaticcharch;publicstaticintn1,i1=0,flag=1,n=5;publicstaticinttotal=0;/*步骤计数器*/publicstaticintE1(){intf,t;Console.Write(total);Console.Write("tE-->TGt");total++;flag=1;input();input1();f=T();if(f==
4、0)return(0);t=G();if(t==0)return(0);elsereturn(1);}publicstaticintE(){intf,t;Console.Write(total);Console.Write("tE-->TGt");total++;e[0]='E';e[1]='=';e[2]='>';e[3]='T';e[4]='G';e[5]='#';output();flag=1;input();input1();f=T();if(f==0)return(0);t=G();if(t==0)return(0);elsereturn(1);}pub
5、licstaticintT(){intf,t;Console.Write(total);Console.Write("tT-->FSt");total++;e[0]='T';e[1]='=';e[2]='>';e[3]='F';e[4]='S';e[5]='#';output();flag=1;input();input1();f=F();if(f==0)return(0);t=S();if(t==0)return(0);elsereturn(1);}publicstaticintG(){intf;if(ch=='+'){b[i1]=ch;Console.Writ
6、e(total);Console.Write("tG-->+TGt");total++;e[0]='G';e[1]='=';e[2]='>';e[3]='+';e[4]='T';e[5]='G';e[6]='#';output();flag=0;input();input1();ch=a[++i1];f=T();if(f==0)return(0);G();return(1);}Console.Write(total);Console.Write("tG-->^t");total++;e[0]='G';e[1]='=';e[2]='>';e[3]='^';e[4
7、]='#';output();flag=1;input();input1();return(1);}publicstaticintS(){intf,t;if(ch=='*'){b[i1]=ch;Console.Write(total);Console.Write("tS-->*FSt");total++;e[0]='S';e[1]='=';e[2]='>';e[3]='*';e[4]='F';e[5]='S';e[6]='#';output();flag=0;input();input1();ch=a[++i1];f=F();if(f==0)re
此文档下载收益归作者所有