编译原理LL(1)语法分析实验报告(共7页).doc
《编译原理LL(1)语法分析实验报告(共7页).doc》由会员分享,可在线阅读,更多相关《编译原理LL(1)语法分析实验报告(共7页).doc(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上学号 E 专业 计算机科学与技术 姓名 万学进实验日期2010-5-11 教师签字 成绩实 验 报 告【实验名称】 LL(1)语法分析【实验目的】通过完成预测分析法的语法分析程序,了解预测分析法和递归子程序法的区别和联系。使了解语法分析的功能,掌握语法分析程序设计的原理和构造方法,训练掌握开发应用程序的基本方法。【实验内容】u 根据某一文法编制调试 LL ( 1 )分析程序,以便对任意输入的符号串进行分析。u 构造预测分析表,并利用分析表和一个栈来实现对上述程序设计语言的分析程序。u 分析法的功能是利用LL(1)控制程序根据显示栈栈顶内容、向前看符号以及LL(1)分析
2、表,对输入符号串自上而下的分析过程。 【设计思想】(1)定义部分:定义常量、变量、数据结构。(2)初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体、数组、临时变量等);(3)控制部分:从键盘输入一个表达式符号串;(4)利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示错误信息。【实验要求】1、编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。2、如果遇到错误的表达式,应输出错误提示信息。 3、对下列文法,用LL(1)分析法对任意输入的符号串进行分析: (1)S-TE(2)E-+TE|$(3)T-
3、FM(4)M-*FM|$(5)F-(E)|i#【流程图】【源代码】专心-专注-专业#include#includeint 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,
4、 +,0,0,0, ),#,0,0, (,i,0,0, *,0,0,0, +,),#,0, (,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,&singleC
5、har);if(singleChar=#)Grammarij=0;break;if(singleChar=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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 LL 语法分析 实验 报告
限制150内