编译原理LL(1)语法分析实验报告(20220301195332).pdf





《编译原理LL(1)语法分析实验报告(20220301195332).pdf》由会员分享,可在线阅读,更多相关《编译原理LL(1)语法分析实验报告(20220301195332).pdf(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、学号E10714103专业计算机科学与技术姓名万学进实验日期2010-5-11教师签字成绩实验报告【实验名称】LL(1)语法分析【实验目的】通过完成预测分析法的语法分析程序,了解预测分析法和递归子程序法的区别和联系。使了解语法分析的功能,掌握语法分析程序设计的原理和构造方法,训练掌握开发应用程序的基本方法。【实验内容】根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分析程序。分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1)分析表,对输入符号串自上而下的分析过程。【设计思想】(1
2、)定义部分:定义常量、变量、数据结构。(2)初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等);(3)控制部分:从键盘输入一个表达式符号串;(4)利用 LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。1【实验要求】1、编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。2、如果遇到错误的表达式,应输出错误提示信息。3、对下列文法,用LL(1)分析法对任意输入的符号串进行分析:(1)S-TE(2)E-+TE|$(3)T-FM(4)M-*FM|$(5)F-(E)|i#【流程图
3、】2【源代码】#include#include int vnNum,grammarNum,vtNum=6;int order;int count=1;char Grammar2010,BlankTerminate202;char First54=S,(,i,0,E,+,$,0,T,(,i,0,M,*,$,0,F,(,i,0;char Follow56=S,),#,0,0,0,E,),#,0,0,0,T,+,),#,0,0,M,+,),#,0,0,F,*,+,),#,0;char Select84=(,i,0,0,+,0,0,0,),#,0,0,(,i,0,0,*,0,0,0,+,),#,0,(
4、,0,0,0,i,0,0,0;int IndiBlanket67;char VT10=i,+,*,(,),#;typedef struct char*base;char*top;int stacksize;AnalStack;AnalStack S;int ScanGrammar()FILE*fp=fopen(文法.txt,r);FILE*tp;char singleChar,nextChar;int i=0,j=0;while(!feof(fp)fscanf(fp,%c,&singleChar);if(singleChar=#)Grammarij=0;break;if(singleChar=
5、n)Grammarij=0;i+;j=0;continue;if(singleChar=-)tp=fp;fscanf(tp,%c,&nextChar);if(nextChar=)fp=tp;continue;if(singleChar=|)Grammari+10=Grammari0;Grammarij=0;i+;j=1;continue;Grammarij=singleChar;j+;/printf(输入的文法:n);for(int k=0;k);/printf(%c,Grammarkj);j+;/printf(n);/printf(%dn,i);fclose(fp);return i;int
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 LL 语法分析 实验 报告 20220301195332

限制150内