版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上LL(1)语法分析实验报告一、实验目的通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,检查语法错误,进一步掌握常用的语法分析方法。二、实验内容构造LL(1)语法分析程序,任意输入一个文法符号串,并判断它是否为文法的一个句子。程序要求为该文法构造预测分析表,并按照预测分析算法对输入串进行语法分析,判别程序是否符合已知的语法规则,如果不符合则输出错误信息。消除递归前的文法
2、60; 消除递归后的等价文法 EE+T ETE ET
3、0; E+TE| TT*F TFT TF
4、60; T*FT| F(E)|i F(E)|i根据已建立的分析表,对下列输入串:i+i*i进行语法分析,判断其是否符合文法。三、实验要求1.根据已由的文法规
5、则建立LL(1)分析表;2.输出分析过程。请输入待分析的字符串: i+i*i 符号栈 输入串 所用产生式 #E i+i*i#
6、0; ETE #ET i+i*i# TFT #ETF i+i*i#
7、60; Fi #ETi i+i*i# #ET +i*i# T
8、 #E +i*i# E+TE #ET+ +i*i# #ET&
9、#160; i*i# TFT #ETF i*i# Fi
10、60; #ETi i*i# #ET *i# T*FT #ETF*
11、0; *i# #ETF i# Fi #ETi i
12、# #ET # T #E #
13、0; E # #四、程序思路模块结构:1、定义部分:定义常量、变量、数据结构。2、初始化:设立LL(1)分析表、初始化变量空间(包括堆栈、结构体等);3、运行程序:让程序分析一个text文件,判断输入的字符串是否符合文法定义的规则;4、利用LL(1)分析算法进行表达式处理:根据LL(1)分析表对表达式符号串进行堆栈(或其他)操作,输出分析结果,如果遇到错误
14、则显示简单的错误提示。五、程序流程图输入要分析的串判断输入串是否正确判断分析句型是否完全匹配?成功失败否是是否 八、程序调试与测试结果运行后结果如下:九、实验心得递归下降分析法是确定的自上而下分析法,这种分析法要求文法是LL(1)文法。它的基本思想是,对文法中的每个终结符编写一个函数(或子程序),每个函数(或子程序)的功能是识别由该非终结符所表示的语法成分。由于描述语言的文法常常是递归定义的,因此相应的这组函数(或子程序)必然以相互递归的方式进行调用。当然实验中我也发现了自己的不足之处,我会在今后的学习生活中努力提高自己的编程水平.附件:程序清单:/* 程序名称: LL(1)文法分析
15、程序 */* 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=# */#include"iostream.h"#include "stdio.h"#include "malloc.h"#include "conio.h"struct Lcharchar char_ch;struct Lchar
16、*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=pchar;temp->next=top;top=temp;void pop(void)curtocmp=top->char_
17、ch;if(top->char_ch!='#')top=top->next;void doforpush(int t)switch(t)case 0:push('A');push('T');break;case 5:push('A');push('T');break;case 11:push('A');push('T');push('+');break;case 20:push('B');push('F');break;ca
18、se 23:push('B');push('F');break;case 32:push('B');push('F');push('*');break;case 40:push('i');break;case 43:push(')');push('E');push('(');void changchartoint()switch(curtocmp)case 'A':i=1;break;case 'B':i=3;break
19、;case 'E':i=0;break;case 'T':i=2;break;case 'F':i=4;switch(curchar)case 'i':j=0;break;case '+':j=1;break;case '*':j=2;break;case '(':j=3;break;case ')':j=4;break;case '#':j=5;void dosome(void)int t;for(;)pop();curchar=h->char
20、_ch;printf("n%ct%c",curchar,curtocmp);if(curtocmp='#' && curchar='#')break;if(curtocmp='A'|curtocmp='B'|curtocmp='E'|curtocmp='T'|curtocmp='F')if(curtocmp!='#')changchartoint();if(tableij)t=10*i+j;doforpush(t);continue
21、;elseright=0;break;elseif(curtocmp!=curchar)right=0;break;elsebreak;elseif(curtocmp!=curchar)right=0;break;elseh=h->next;continue;void main(void)char ch;cout<<"* 文件名称: 语法分析"<<endl;cout<<" "<<endl;cout<<"/* 程序相关说明 */"<<e
22、ndl; cout<<"-"<<endl; cout<<"-/* A=E B=T */"<<endl; cout<<"-* 目的:对输入LL(1)文法字符串,本程序能自动判断所给字符串是 -"<<endl; cout<<"-*否为所给文法的句子
23、,并能给出分析过程。 -"<<endl; cout<<"-*-"<<endl; cout<<"表达式文法为:"<<endl; cout<<" E->E+T|T"<<endl; cout<<"T->T*F|F"<<endl; cout<<"F->(E)|i"<<endl; cout<<"请在下行输入要分析的串(#号结束):"<<endl;right=1;b
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026福建宁德市智云大数据有限公司第二批市场化岗位人员招聘备考题库含完整答案详解(各地真题)
- 中地国际工程有限公司2027届电气技术员(海外岗)招聘10人考前冲刺试卷附完整答案详解(全优)
- 2026年葫芦岛市建昌县教育系统“归雁计划”公开选调教师20人考前冲刺密卷及参考答案详解【考试直接用】
- 2026辽宁材料实验室招聘高层次及急需紧缺人才6人(第一批)模拟试卷附答案详解【轻巧夺冠】
- 教师礼仪培训内容
- 2026四川巴中市“筑梦巴蜀万才兴农”岗位招聘64人(第二批)笔试题库【考试直接用】附答案详解
- 2026年湖州市长兴县教育局公开招聘教师8人模拟试卷带答案详解(预热题)
- 兴建煤泥浮选厂可行性报告
- 2026中国葛洲坝集团市政工程有限公司项目管理人才招聘考前冲刺试卷附答案详解(B卷)
- 2026内蒙古锡林郭勒盟二连浩特市引进中小学校长2人考前冲刺密卷【B卷】附答案详解
- DB34∕T 4541-2023 废弃露采坑一般工业固废处置与生态修复技术规范
- 公路工程2018预算定额释义手册
- DB37-T2119-2025转炉煤气干法电除尘系统安全技术要求
- 环境影响评价(第2版)第8章 输变电工程电磁环境影响评价
- 2024年中国电信集团有限公司招聘考试真题
- 《中医体重管理临床指南》
- 2024-2030年中国高强度聚焦超声设备行业市场发展趋势与前景展望战略分析报告
- 《地质灾害风险调查评价编图规范》
- 2024安徽省信用融资担保集团有限公司招聘17人笔试备考题库及答案解析
- 钢结构安装施工组织设计方案
- 2022版初中物理课程标准测试题库(有答案)(物理新课程标准试题教师资格考试教师招聘考试试卷)
评论
0/150
提交评论