- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言词法分析器构造实验报告1
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},
您可能关注的文档
- 3.3神经调节第三课时.doc
- 3.4力的合成习题和答案.doc
- 3.3.2圆周角和圆心角的关系市中区枣庄十三中张传江.doc
- 30中3月语文试题.doc
- 30种方法重启你的大脑下午吃块巧克力.doc
- 30岁女性的健康素描.doc
- 30米以上高空作业安全施工方案.doc
- 301车身金属板件变形的修复工单.doc
- 31动物在自然界中的作用教案(人教版).doc
- 33文言文阅读复习导学案.doc
- c语言解决合并排序问题.doc
- C语言难点分析.doc
- C语言选择题练习及答案.doc
- C语言课程设计-仿LED数码的显示报告.doc
- dandy-walker的超声诊断.doc
- DataInputStream和DataOutputStream使用方法(.doc
- Dbdmzfu七年级下册地理复习提纲(粤教版广东教育地质版).doc
- allan方差分析法.docx
- DesignandPerformanceEvaluationofRadiationHardenedLatchesforNanoscaleCMOS翻译.doc
- Design_of_the_Closed_Loop_Speed_Control_System_for_DC_Motor.doc
最近下载
- 贵州省贵阳市普通中学2021-2022学年高一上学期期末监测考试通用技术试题(解析版).pdf VIP
- 2024年金融风险防控与合规管理规划.pptx VIP
- 专题08 影响、作用类(答题模版)-2025年高考历史答题技巧与模板构建(新高考通用)(原卷版).docx VIP
- 2025中煤矿建集团总部工作人员招聘12人笔试备考题库及答案解析.docx VIP
- 法律基本常识题库及答案.doc
- 化粪池清掏管理制度.docx VIP
- 小学六年级上册科学《探索宇宙》教案教学设计.docx VIP
- (最新)跌倒坠床压疮试题(+答案).docx VIP
- 儿童生存质量测定量表癌症模块中文版PedsQL3.0.pdf
- 危大工程巡视检查记录表(模版).docx VIP
原创力文档


文档评论(0)