LL(1)语法分析实验报告(共6页).doc
《LL(1)语法分析实验报告(共6页).doc》由会员分享,可在线阅读,更多相关《LL(1)语法分析实验报告(共6页).doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上LL(1)语法分析实验报告一、实验目的通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,检查语法错误,进一步掌握常用的语法分析方法。二、实验内容构造LL(1)语法分析程序,任意输入一个文法符号串,并判断它是否为文法的一个句子。程序要求为该文法构造预测分析表,并按照预测分析算法对输入串进行语法分析,判别程序是否符合已知的语法规则,如果不符合则输出错误信息。消除递归前的文法 消除递归后的等价文法 EE+T ETE ET E+TE| TT*F TFT TF T*FT| F(E)|i F(E)|i根据已建立的分析表,对下列输
2、入串:i+i*i进行语法分析,判断其是否符合文法。三、实验要求1.根据已由的文法规则建立LL(1)分析表;2.输出分析过程。请输入待分析的字符串: i+i*i 符号栈 输入串 所用产生式 #E i+i*i# ETE #ET i+i*i# TFT #ETF i+i*i# Fi #ETi i+i*i# #ET +i*i# T #E +i*i# E+TE #ET+ +i*i# #ET i*i# TFT #ETF i*i# Fi #ETi i*i# #ET *i# T*FT #ETF* *i# #ETF i# Fi #ETi i# #ET # T #E # E # #四、程序思路模块结构:1、定义部分
3、:定义常量、变量、数据结构。2、初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体等);3、运行程序:让程序分析一个text文件,判断输入的字符串是否符合文法定义的规则;4、利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示简单的错误提示。五、程序流程图输入要分析的串判断输入串是否正确判断分析句型是否完全匹配?成功失败否是是否八、程序调试与测试结果运行后结果如下:九、实验心得递归下降分析法是确定的自上而下分析法,这种分析法要求文法是LL(1)文法。它的基本思想是,对文法中的每个终结符编写一个函数(或子程序
4、),每个函数(或子程序)的功能是识别由该非终结符所表示的语法成分。由于描述语言的文法常常是递归定义的,因此相应的这组函数(或子程序)必然以相互递归的方式进行调用。当然实验中我也发现了自己的不足之处,我会在今后的学习生活中努力提高自己的编程水平.附件:程序清单:/* 程序名称: LL(1)文法分析程序 */* E-E+T|T */* T-T*F|F */* F-(E)|i */* 程序相关说明 */* A=E B=T */* 0=E 1=E 2=T 3=T 4=F */* 0=i 1=+ 2=* 3=( 6=) 4=# */#includeiostream.h#include stdio.h#i
5、nclude malloc.h#include conio.hstruct Lcharchar char_ch;struct Lchar *next;Lchar,*p,*h,*temp,*top,*base;char curchar;char curtocmp;int right;int table58=1,0,0,1,0,0,0,1,0,0,1,1,1,0,0,1,0,0,0,1,1,0,1,1,1,0,0,1,0,0;int i,j;void push(char pchar)temp=(struct Lchar*)malloc(sizeof(Lchar);temp-char_ch=pcha
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LL 语法分析 实验 报告
限制150内