LL语法分析实验报告.doc

LL语法分析实验报告.doc

ID:51673649

大小:83.00 KB

页数:6页

时间:2020-03-14

LL语法分析实验报告.doc_第1页
LL语法分析实验报告.doc_第2页
LL语法分析实验报告.doc_第3页
LL语法分析实验报告.doc_第4页
LL语法分析实验报告.doc_第5页
资源描述:

《LL语法分析实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、LL(1)语法分析实验报告一、实验目的通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,检查语法错误,进一步掌握常用的语法分析方法。二、实验内容构造LL(1)语法分析程序,任意输入一个文法符号串,并判断它是否为文法的一个句子。程序要求为该文法构造预测分析表,并按照预测分析算法对输入串进行语法分析,判别程序是否符合已知的语法规则,如果不符合则输出错误信息。消除递归前的文法                  消除递归后的等价文法   E→E+T                     

2、  E→TE’   E→T                      E’→+TE’

3、ε   T→T*F                      T→FT’   T→F                      T’→*FT’

4、ε   F→(E)

5、i                     F→(E)

6、i根据已建立的分析表,对下列输入串:i+i*i进行语法分析,判断其是否符合文法。三、实验要求1.根据已由的文法规则建立LL(1)分析表;2.输出分析过程。请输入待分析的字符串:i+i*i   符号栈        输入串      

7、   所用产生式       #E        i+i*i#         E→TE’      #E’T        i+i*i#         T→FT’     #E’T’F        i+i*i#         F→i     #E’T’i        i+i*i#          #E’T’         +i*i#         T’→ε       #E’         +i*i#         E’→+TE’     #E’T+         +i*i#      #E’T        

8、  i*i#         T→FT’     #E’T’F          i*i#         F→i     #E’T’i          i*i#      #E’T’          *i#         T’→*FT’    #E’T’F*           *i#     #E’T’F           i#         F→i    #E’T’i           i#    #E’T’            #         T’→ε      #E’           #       

9、  E’→ε      #           #四、程序思路模块结构:1、定义部分:定义常量、变量、数据结构。2、初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体等);3、运行程序:让程序分析一个text文件,判断输入的字符串是否符合文法定义的规则;4、利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误则显示简单的错误提示。五、程序流程图输入要分析的串判断输入串是否正确判断分析句型是否完全匹配?成功失败否是是否 八、程序调试与测试结果运行后结果如

10、下:九、实验心得递归下降分析法是确定的自上而下分析法,这种分析法要求文法是LL(1)文法。它的基本思想是,对文法中的每个终结符编写一个函数(或子程序),每个函数(或子程序)的功能是识别由该非终结符所表示的语法成分。由于描述语言的文法常常是递归定义的,因此相应的这组函数(或子程序)必然以相互递归的方式进行调用。当然实验中我也发现了自己的不足之处,我会在今后的学习生活中努力提高自己的编程水平.附件:程序清单:/*程序名称:LL(1)文法分析程序*//*E->E+T

11、T*//*T->T*F

12、F*//*F->(E)

13、i*/ /*程序相关说明

14、*//*A=E’B=T’*//*0=E1=E’2=T3=T’4=F*//*0=i1=+ 2=* 3=(6=)4=#*/#include"iostream.h"#include"stdio.h"#include"malloc.h"#include"conio.h"structLchar{charchar_ch;structLchar*next;}Lchar,*p,*h,*temp,*top,*base;charcurchar;charcurtocmp;intright;inttable[5][8]={{1,0,0,1,0,0},{0,

15、1,0,0,1,1},{1,0,0,1,0,0},{0,1,1,0,1,1},{1,0,0,1,0,0}};inti,j;voidpush(charpchar){temp=(structLchar*)malloc(sizeof(Lch

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。