编译原理用递归下降法进行表达式分析实验报告.pdfVIP

编译原理用递归下降法进行表达式分析实验报告.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. 《编译原理》课程 实验报告 题目 用递归下降法进行表达式分析 专业 班级 学号 姓名 一 . 实验题目 用递归下降法进行语法分析的方法 二 . 实验日期 三 . 实验环境(操作系统,开发语言) 专业资料 . 操作系统是 Windows 开发语言是 C 语言 四. 实验内容(实验要求) 词法分析程序和语法分析程序已经提供。 此语法分析程序能够实现: 正确的 输入可以给出结果。例:输入表达式串为: (13+4 )*3 则应给出结果为 51 。 要求: (1)读懂源代码,理解内容写入实验报告(语法分析及语法分析程序和词法分 析程序的接口) (2 )把语法分析中使用的 yyval ,用 yytext 实现。 (3 )在语法分析程序用加入出错处理(尽量完整,包括出错的位置,出错的原 因,错误的重定位) 五 . 实验步骤 1. 生成 lex.yy.c 文件: 将已给的 mylexer.l 文件打开,先理解,然后再在 DOS 环境下用 flex 运行 此文件,这时会生成一个 lex.yy.c 文件。 2. 创建工程: 打开 C-Free 5.0( 注:用 C-Free 4.0 会出错 ),在菜单栏中的 “工程(project )” 菜单下选择 “新建”;在新建工程中选择 “控制台程序”,添加工程名字为 “myleb ” 专业资料 . 和保存位置后点“确定” ;第 1 步选择“空的程序”点“下一步” ;第 2 步再点 “下一步”;最后点击“完成” 。 3. 在创建的工程中添加文件: 在 Source files 文件夹中添加之前生成的 lex.yy.c 文件和 syn.c 文件,然后 找到 parser.h 文件,将其添加到新建工程中的 Header files 文件夹中,这时就 能将三个文件组成一个类似于 .exe 文件类型的文件,最后运行。如图: 4. 理解并修改 syn.c 文件: 首先,将 num = yyval.intval 修改成 num = atoi(yytext) ;将 num = yyval.fval 修改成 num = atof(yytext) 。可以这样修改的原因:在 .l 文件中所写 的规则中,有 {DIGIT}+ { yyval.intval = atoi(yytext);return INTEGER; } 和 {DIGIT}+.{DIGIT}* {yyval.fval = atof(yytext); return DOUBLE; } 这两句代 码,其中 yyval.intval = atoi(yytext) 和 yyval.fval = atof(yytext) 就说明两者可 以相互替代。 然后,反复修改 F()函数 (可将printf() 带入其中调试),修改“case LPAREN :” 和“default: ”中的部分,使这段代码即可检测出缺少‘ (’又可检测出缺少‘)’ 以及“) (”(右括号在前)或是括号中没有数字的情况。 最后,综合理解 double E();double F();void S();double T(); 四个函数以 专业资料

文档评论(0)

***** + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档