2.词法分析与语法分析.PDFVIP

  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文档。上传文档
查看更多
版权所有 南京大学计算机科学与技术系 许畅等 2020春季版 2. 词法分析与语法分析 本章实验为实验一,任务是编写一个程序对使用C语言书写的源代码进行词法分析和语 法分析(C语言的文法参见附录A ),并打印分析结果。实验要求使用词法分析工具GNU Flex和语法分析工具GNU Bison ,并使用C语言来完成。在两个强大工具的帮助下,编写一个 能进行词法分析和语法分析的程序是一件相当轻松愉快的事情。 需要注意的是,由于在后面的实验中还会用到本次实验已经写好的代码,因此保持一个良 好的代码风格、系统地设计代码结构和各模块之间的接口对于整个实验来讲相当重要。 2.1 实验内容 2.1.1 实验要求 你的程序要能够查出C源代码中可能包含的下述几类错误: 畅 1) 词法错误(错误类型A):即出现C词法中未定义的字符以及任何不符合C词法单 元定义的字符; 许 2) 语法错误(错误类型B )。 除此之外,你的程序可以选择完成以下部分或全部的要求: 译 1) 要求1.1 :识别八进制数和十六进制数。若输入文件中包含符合词法定义的八进制数 (如0123 )和十六进制数(如0x3F ),你的程序需要得出相应的词法单元;若输入文件中包 编 含不符合词法定义的八进制数(如09)和十六进制数(如0x1G ),你的程序需要给出输入文 件有词法错误(即错误类型A )的提示信息。八进制数和十六进制数的定义参见附录A 。 大 2) 要求1.2 :识别指数形式的浮点数。若输入文件中包含符合词法定义的指数形式的浮点 数(如1.05e-4 ),你的程序需要得出相应的词法单元;若输入文件中包含不符合词法定义的 指数形式的浮点数(如1.05e),你的程序需要给出输入文件有词法错误(即错误类型A )的提 南 示信息。指数形式的浮点数的定义参见附录A 。 3) 要求1.3 :识别“//”和“/*…*/”形式的注释。若输入文件中包含符合定义的“//”和“/*…*/” 形式的注释,你的程序需要能够滤除这样的注释;若输入文件中包含不符合定义的注释(如 “/*…*/”注释中缺少“/*”),你的程序需要给出由不符合定义的注释所引发的错误的提示信 息。注释的定义参见附录A 。 你的程序在输出错误提示信息时,需要输出具体的错误类型、出错的位置(源程序行号) 以及相关的说明文字。 10 版权所有 南京大学计算机科学与技术系 许畅等 2020春季版 2.1.2 输入格式 你的程序的输入是一个包含C源代码的文本文件,程序需要能够接收一个输入文件名作 为参数。例如,假设你的程序名为cc 、输入文件名为test1 、程序和输入文件都位于当前目录 下,那么在Linux命令行下运行./cc test1即可获得以test1作为输入文件的输出结果。 2.1.3 输出格式 实验一要求通过标准输出打印程序的运行结果。对于那些包含词法或者语法错误的输入文 件,只要输出相关的词法或语法有误的信息即可。在这种情况下,注意不要输出任何与语法树 有关的内容。要求输出的信息包括错误类型、出错的行号以及说明文字,其格式为: Error type [错误类型] at Line [行号]: [说明文字]. 说明文字的内容没有具体要求,但是错误类型和出错的行号一定要正确,因为这是判断输 出的错误提示信息是否正确的唯一标准。请严格遵守实验要求中给定的错误分类(即词法错误 畅 为错误类型A ,语法错误为错误类型B ),否则将影响你的实验评分。注意,输入文件中可能 会包含一个或者多个错误(但输入文件的同一行中保证不出现多个错误),你的程序需要将这 许 些错误全部报告出来,每一条错误提示信息在输出中单独占一行。 对于那些没有任何词法或语法错误的输入文件,你的

文档评论(0)

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

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

1亿VIP精品文档

相关文档