- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语法和语义分析
第六章 引言 第五六章 语法和语义分析 6.5 LL(K)分析方法 LL(K)分析方法是一种自顶向下的分析技术 这种分析方法是从左到右扫描源程序(输入串),同时从识别符号开始生成句子的最左推导,向前看K个符号,便能确定当前应选用怎样的规则。 当K=1时,即是LL(1)分析法 实验二 LL(1)分析法(选做) 实验目的:根据某一文法编制调试LL(1)分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析LL(1)分析法的理解。 估计实验时间: 1.课余准备20小时; 2.上机二次4小时; 3.完成实验报告5小时。 实验规定对下列文法,用LL(1)分析法对任意输入的符号串进行分析: (1)E::=TG (2)G::=+TG (3)G::=ε (4)T::=FS (5)S::=*FS (6)S::=ε (7)F::=(E) (8)F::=i do/*读入分析串*/ { scanf(%c,ch); if ((ch!=i) (ch!=+) (ch!=*)(ch!=()(ch!=))(ch!=#)) { printf(输入串中有非法字符\n); exit(1); } B[j]=ch; j++; }while(ch!=#); l=j;/*分析串长度*/ ch=B[0];/*当前分析字符*/ A[top]=#; A[++top]=E;/*#,E进栈*/ printf(步骤\t\t分析栈 \t\t剩余字符 \t\t所用产生式 \n); do { x=A[top--];/*x为当前栈顶字符*/ printf(%d,k++); printf(\t\t); } } for(j=0;j=5;j++)/*判断是否为终结符*/ if(x==v1[j]) { flag=1; break; } if(flag==1)/*如果是终结符*/ { if(x==#) { finish=1;/*结束标记*/ printf(acc!\n);/*接受 */ getchar(); getchar(); exit(1); } if(x==ch) { print(); print1(); printf(%c匹配\n,ch); ch=B[++b];/*下一个输入字符*/ flag=0;/*恢复标记*/ } else/*出错处理*/ { print(); print1(); printf(%c出错\n,ch);/*输出出错终结符*/ exit(1); } } else/*非终结符处理*/ { for(j=0;j=4;j++) if(x==v2[j]) { m=j;/*行号*/ break; } for(j=0;j=5;j++) if(ch==v1[j]) { n=j;/*列号*/ break; } cha=C[m][n]; if(cha.origin!=N)/*判断是否为空*/ { print(); print1(); printf(%c-,cha.origin);/*输出产生式*/ for(j=0;jcha.length;j++) printf(%c,cha.array[j]); printf(\n); for(j=(cha.length-1);j=0;j--)/*产生式逆序入栈*/ A[++top]=cha.array[j]; if(A[top]==^)/*为空则不进栈*/ top--; } void print()/*输出分析栈 */ { int a;/*指针*/ for(a=0;a=top+1;a++) printf(%c,A[a]); printf(\t\t);
您可能关注的文档
最近下载
- 2025至2030年中国报废汽车回收拆解行业市场运行现状及投资规划建议报告.docx
- Unit 2 What do you like about your family Period 1 Ready Go & Sound 教学设计 沪教版(2025)二年级英语上册.docx VIP
- 食品添加剂 甲醇钠标准2023年.docx VIP
- 高一语文上学期《乡土中国》-差序格局教学课件.pptx VIP
- 企业安全生产检查标准化表格.doc VIP
- 中成药的临床合理应用试卷含答案.docx
- 《HIV病毒与艾滋病》课件.ppt VIP
- 第二单元第1课《因地制宜》课件-2025-2026学年人教版(2024)八年级上册.pptx VIP
- 高标准农田建设标准NYT2148-2012.pdf VIP
- 世界少年奥林匹克数学竞赛(中国区)选拔赛省级选拔模拟卷(三)三年级试题(含解析)2025年5月夏季.docx VIP
原创力文档


文档评论(0)