C语言词法分析器构造实验报告).docVIP

  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文档。上传文档
查看更多
C语言词法分析器构造实验报告).doc

C语言词法分析器构造实验报告 02计算机(2) 2002374203 冯绍欣 一、题目要求: 完成一个C语言的词法分析器的构造。此词法分析器能识别附值语句、循环语句、条件语句、并能处理注释。 二、设计方案: 这个词法分析器分析的主要关键字有:main, int, float, char, if, else, for, while, do, switch, case, break; default。选择要分析的c文件,首先对其去掉注释和与空格处理,再根据字符的不同类型分析。 1、全局数据结构: 字符数组 set[ ]:存放从文件中读到的所有字符; str[ ]:存放经过注释处理和预空格处理的字符; strtoken[ ]:存放当前分析的字符; 结构体 KEYTABLE:存放关键字及其标号; 全局字符变量 ch:当前读入字符; 全局整型变量 sr, to:数组str, strtoken 的指针。 2、以层次图形式描述模块的组成及调用关系 3、主要函数的设计要求(功能、参数、返回值): openfile:打开文件; GetChar:将下一个输入字符读到ch中,搜索指示器前移一字符位置; GetBC:检查ch中的字符是否为空白。若是,则调用GetChar直至ch中进入一个非空白字符; Concat:将ch中的字符连接到strtoken之后; IsLetter 和IsDigit:布尔函数过程,分别判断ch中的字符是否为字母和数字; Reserve:整型函数过程,对strtoken中的字符串查找关键字表,若是关键字则返回编码,否则返回-1; Retract:将搜索指示器回调一个字符位置,将ch置为空白字符; reflesh:刷新,把strtoken数组置为空; prearrange1:将注释部分置为空格; prearrange2:预处理空格,去掉多余空格; analysis:词法分析; main:主函数。 4、状态转换图: 字母或数字 字母 非字母或数字 数字 数字 非数字 字符a 字符a 字符b ‘ = ’ 字符c 字符a包括:= , , | , + , -- 字符b包括:-- , , , | , * 字符c包括:, , : , ( , ) , { , } , [ , ] , ! ,# , % , ” , / , * , + , -- , , , . 三、源代码如下: #include stdio.h #include string.h char set[1000],str[500],strtoken[20]; char sign[50][10],constant[50][10]; char ch; int sr,to,id=0,st=0; typedef struct keytable /*放置关键字*/ { char name[20]; int kind; }KEYTABLE; KEYTABLE keyword[]={ /*设置关键字*/ {main,0}, {int,1}, {float,2}, {char,3}, {if,4}, {else,5}, {for,6}, {while,7}, {do,8}, {switch,9}, {case,10},

文档评论(0)

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

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

1亿VIP精品文档

相关文档