编译原理 语法分析实验报告.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
中北大学软件学院 实 验 报 告 专 业 课程名称 学 号 姓 名 辅导教师 成绩 实验日期 2014.12.03 实验时间 10:00—11:30 1、实验名称 语法分析器的设计与实现 2、实验目的 掌握自上而下语法分析方法、自下而上语法分析方法 3、实验要求 (1)实验内容:四选一 设计及实现能够识别表达式的预测分析程序。 文法如下: G[E]:E-E+T|T T-T*F|F F-(E)|i 设计及实现能够识别表达式的LR分析程序。 文法如下: G[E]:E-E+T|T T-T*F|F F-(E)|i ③ 设计及实现能够识别表达式的算符优先分析程序。 文法如下: G[E]:E-E+T|T T-T*F|F F-P↑F|P P-(E)|i ④设计及实现计算表达式的计算器。 表达式中可包含+、-、*、/、(、)运算符。 (2)实验要求: 对已给的一个二元式形式表达式,能够检查有无语法错误。并指定出错位置。 将表达式的语法树输出(或将语法分析过程输出)。 4、实验原理 根据自上而下和自下而上的语法分析思想实现语法分析程序。 5、实验步骤 (1)根据文法构造语法分析表。 (2)编写总控程序实现语法分析。 6、状态转换图及词法分析程序 (1)状态转换图 否 (2)语法分析器源代码 #includestdio.h #includestring.h char *action[12][6]={S5#,NULL,NULL,S4#,NULL,NULL, /*ACTION表*/ NULL,S6#,NULL,NULL,NULL,acc, NULL,r2#,S7#, NULL,r2#,r2#, NULL,r4#,r4#, NULL,r4#,r4#, S5#,NULL,NULL, S4#,NULL,NULL, NULL,r6#,r6#, NULL,r6#,r6#, S5#,NULL,NULL, S4#,NULL,NULL, S5#,NULL,NULL, S4#,NULL,NULL, NULL,S6#,NULL, NULL,S11#,NULL, NULL,r1#,S7#, NULL,r1#,r1#, NULL,r3#,r3#, NULL,r3#,r3#, NULL,r5#,r5#, NULL,r5#,r5#}; int goto1[12][3]={1,2,3, /*QOTO表*/ 0,0,0, 0,0,0, 0,0,0, 8,2,3, 0,0,0, 0,9,3, 0,0,10, 0,0,0, 0,0,0, 0,0,0, 0,0,0}; char vt[6]={i,+,*,(,),#}; /*存放终结符*/ char vn[3]={E,T,F}; /*存放非终结符*/ char*LR[7]={M-E#,E-E+T#,E-T#,T-T*F#,T-F#,F-(E)#,F-i#}; /*存放产生式*/ int a[

文档评论(0)

tianma2015 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档