![词法-LL[1]- 编译原理实验指导书源代码.docx_第1页](http://file.renrendoc.com/FileRoot1/2020-1/21/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b1.gif)
![词法-LL[1]- 编译原理实验指导书源代码.docx_第2页](http://file.renrendoc.com/FileRoot1/2020-1/21/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b2.gif)
![词法-LL[1]- 编译原理实验指导书源代码.docx_第3页](http://file.renrendoc.com/FileRoot1/2020-1/21/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b3.gif)
![词法-LL[1]- 编译原理实验指导书源代码.docx_第4页](http://file.renrendoc.com/FileRoot1/2020-1/21/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b4.gif)
![词法-LL[1]- 编译原理实验指导书源代码.docx_第5页](http://file.renrendoc.com/FileRoot1/2020-1/21/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b/5a6eaa5a-9554-47c8-9d1a-59fceb78cf9b5.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2、LL(1)/*LL(1)分析法源程序,只能在VC+中运行 */#include#include#include#includechar A20;/*分析栈*/char B20;/*剩余串*/char v120=i,+,*,(,),#;/*终结符 */char v220=E,G,T,S,F;/*非终结符 */int j=0,b=0,top=0,l;/*L为输入串长度 */typedef struct type/*产生式类型定义 */char origin;/*大写字符 */char array5;/*产生式右边字符 */int length;/*字符个数 */type;type e,t,g,g1,s,s1,f,f1;/*结构体变量 */type C1010;/*预测分析表 */void print()/*输出分析栈 */int a;/*指针*/for(a=0;a=top+1;a+)printf(%c,Aa);printf(tt);/*print*/void print1()/*输出剩余串*/int j;for(j=0;jb;j+)/*输出对齐符*/printf( );for(j=b;j=l;j+)printf(%c,Bj);printf(ttt);/*print1*/void main()int m,n,k=0,flag=0,finish=0;char ch,x;type cha;/*用来接受Cmn*/*把文法产生式赋值结构体*/e.origin=E;strcpy(e.array,TG);e.length=2;t.origin=T;strcpy(t.array,FS);t.length=2;g.origin=G;strcpy(g.array,+TG);g.length=3;g1.origin=G;g1.array0=;g1.length=1; s.origin=S;strcpy(s.array,*FS);s.length=3;s1.origin=S;s1.array0=;s1.length=1;f.origin=F;strcpy(f.array,(E);f.length=3;f1.origin=F;f1.array0=i;f1.length=1;for(m=0;m=4;m+)/*初始化分析表*/for(n=0;n=5;n+)Cmn.origin=N;/*全部赋为空*/ /*填充分析表*/ C00=e;C03=e; C11=g;C14=g1;C15=g1; C20=t;C23=t; C31=s1;C32=s;C34=C35=s1; C40=f1;C43=f; printf(提示:本程序只能对由i,+,*,(,)构成的以#结束的字符串进行分析,n); printf(请输入要分析的字符串:); do/*读入分析串*/ scanf(%c,&ch); if (ch!=i) &(ch!=+) &(ch!=*)&(ch!=()&(ch!=)&(ch!=#) printf(输入串中有非法字符n); exit(1); Bj=ch; j+; while(ch!=#); l=j;/*分析串长度*/ ch=B0;/*当前分析字符*/ Atop=#; A+top=E;/*#,E进栈*/ printf(步骤tt分析栈 tt剩余字符 tt所用产生式 n); do x=Atop-;/*x为当前栈顶字符*/ printf(%d,k+); printf(tt); for(j=0;j=5;j+)/*判断是否为终结符*/ if(x=v1j) flag=1; break; if(flag=1)/*如果是终结符*/ if(x=#) finish=1;/*结束标记*/ printf(acc!n);/*接受 */ getchar(); getchar(); exit(1); /*if*/ if(x=ch) print(); print1(); printf(%c匹配n,ch); ch=B+b;/*下一个输入字符*/ flag=0;/*恢复标记*/ /*if*/ else/*出错处理*/ print(); print1(); printf(%c出错n,ch);/*输出出错终结符*/ exit(1); /*else*/ /*if*/ else/*非终结符处理*/ for(j=0;j=4;j+)if(x=v2j)m=j;/*行号*/break; for(j=0;j,cha.origin);/*输出产生式*/for(j=0;jcha.length;j+) printf(%c,cha.arrayj);printf(n);for(j=(cha.length-1);j=0;j-)/*产生式逆序入栈*/A+top=cha.arrayj;if(Atop=)/*为空则不进栈*/top-;/*if*/
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园外卖创业计划书课件
- 防潮防震双重包装采购验收标准2025
- 日常维修安全培训
- 2025年03月齐齐哈尔“市委书记进校园”民办医院公开招聘笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 神经外科护理规范
- 防诈骗小学课件教学
- 教师安全培训总结
- 旅游研学攻略路线
- 2025年03月国家审计署审计干部教育学院公开招聘国内高等学校应届毕业生2人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025年03月临海市事业单位公开招聘76人【编制】笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2023年安全员批评与自我批评
- 检验科标本运送培训
- 初中作文指导-景物描写(课件)
- 秋 轻合金 铝合金相图及合金相课件
- 6.3.1 平面向量基本定理 课件(共15张PPT)
- 安全安全检查表分析(SCL)记录表(设备、设施)
- 城市湿地公园设计导则2017
- 小学巡课记录表
- 消防管道隐蔽工程验收报审表(表格记录)
- 地质灾害群测群防讲义
- 高频变压器标准工时对照表
评论
0/150
提交评论