- 1、本文档共24页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE
PAGE 1
编译原理 C语言词法分析器
一、实验题目
编制并调试C词法分析程序。
txt源代码:
main() {
int sum=0 ,it=1;/* Variable declaration*/
if (sum==1)
it++;
else
it=it+2;
}
设计其词法分析程序,能识别出所有的关键字、标识符、常数、运算符(包括复合运算符,如++)、界符;能过滤掉源程序中的注释、空格、制表符、换行符;并且能够对一些词法规则的错误进行必要的处理,如:标识符只能由字母、数字和下划线组成,且第一个字符必须为字母或下划线。实验要求:要给出所分析语言的词法说明,相应的状态转换图,单词的种别编码方案,词法分析程序的主要算法思想等。
二、实验目的
1、理解词法分析在编译程序中的作用;
2、掌握词法分析程序的实现方法和技术;
3、加深对有穷自动机模型的理解。
三、主要函数
void load ( ) void char_search (char *word)
void main ( ) void intb_search(char *word)
void scan ( ) void c_search(char *word)
void inta_search(char *word) void cc_search(char *word)
四、设计
1.主函数 void main ( )
绘制程序界面
绘制程序界面
调用初始化函数:void load ( ) 实现文件的建立
调用初始化函数:void load ( ) 实现文件的建立
调用主扫描函数:void scan ( ) 实现文件的扫描
调用主扫描函数:void scan ( ) 实现文件的扫描
分析完成后指引用户查看相关文件,直到用户输入退出命令
分析完成后指引用户查看相关文件,直到用户输入退出命令
函数结束
函数结束
2. 初始化函数 void load ( )
通过文件指针建立相关文件
通过文件指针建立相关文件
函数结束
函数结束
3. 保留字及标识符判断函数 void char_search(char *word)
接收数据
接收数据
是否为保留字
是否为保留字
否:查标识符表是:写入输出文件
否:查标识符表
是:写入输出文件
没找到:写入表文件找到:写入输出文件
没找到:写入表文件
找到:写入输出文件
写入输出文件
写入输出文件
4. 整数类型判断函数 void inta_search(char *word)
接收数据找到:写入输出文件写入输出文件
接收数据
找到:写入输出文件
写入输出文件
查表
查表
没找到:写入整数常量表文件
没找到:写入整数常量表文件
5. 浮点类型判断函数 void intb_search(char *word)
没找到:写入整数常量表文件找到:写入输出文件查表接收数据写入输出文件
没找到:写入整数常量表文件
找到:写入输出文件
查表
接收数据
写入输出文件
6. 字符串常量判断函数 void cc_search(char *word)
7. 字符常量判断函数 void c_search(char *word)
同4、5函数图
8.主扫描函数 void scan ( )
函数开始
函数开始
读入源文件中的一个单词
读入源文件中的一个单词
判断宏定义
判断
宏定义
忽略
忽略
无效字符
无效字符
忽略
忽略
调用保留字及标识符函数void char_search进行处理
调用保留字及标识符函数void char_search进行处理
字符串
字符常量
字符常量
调用字符常量判断函数void c_search
调用字符常量判断函数void c_search进行处理
调用字符串常量判断函数void cc_search进行处理字符串常量
调用字符串常量判断函数void cc_search进行处理
字符串常量
整数常量
整数常量
调用整数类型判断函数void inta_search进行处理
调用整数类型判断函数void inta_search进行处理
调用浮点类型判断函数void intb_search进行处理浮点数常量
调用浮点类型判断函数void intb_search进行处理
浮点数常量
注释
注释
写入注释文件
写入注释文件
查运算符、分隔符表并写入输出文件限制符
查运算符、分隔符表并写入输出文件
限制符
五、关键代码
#include stdio.h
#include string.h
#include stdlib.h
char *key0[]={ ,auto,break,ca
您可能关注的文档
- 笔记本电脑维修知识大全..docx
- 笔记本电脑整机优化方案..doc
- 笔记-化工仪表及自动化教材(廖燕明主讲)1-17(50)..docx
- 闭路电视监控教学模拟系统实训指导书..docx
- 闭路电视监控系统介绍..doc
- 闭路电视系统工程施工组织设计方案..doc
- 闭路监控系统方案书..doc
- 闭路监控系统设计方案1..doc
- 闭路视频监控方案..doc
- 闭式二级圆柱斜齿减速器说明书..doc
- 部编版六年级下册道德与法治第三单元《多样文明 多彩生活》测试卷及参考答案【a卷】.docx
- 部编版六年级下册道德与法治第四单元《让世界更美好》测试卷精品(易错题).docx
- 部编版六年级上册道德与法治期中测试卷(网校专用).docx
- 部编版五年级下册道德与法治期末测试卷附答案(轻巧夺冠).docx
- 部编版六年级下册道德与法治第四单元《让世界更美好》测试卷(全优)word版.docx
- 部编版五年级下册道德与法治期末测试卷含答案(培优).docx
- 二零二五年办公区绿色租赁项目政府采购协议.docx
- 2025年贵州城市职业学院单招职业适应性测试题库及完整答案一套.docx
- 二零二五年度LOGO原创设计版权购买及长期合作协议-@-1.docx
- 二零二五年度[保密]保密协议范本,适用于企业合作.docx
最近下载
- 2025年二建《建设工程施工管理》精选考点汇总.pdf VIP
- 出口扫描系列·变局篇:找寻出口商品的“稳定之星”.pdf VIP
- 开关站10kV开关柜检修试验标准化作业指导书1.pdf
- 2023年江西机电职业技术学院高职单招语文/数学/英语考试题库答案详解.docx
- 人教版高中数学必修五1.1.1《正弦定理》教学课件1 (共13张PPT).ppt VIP
- GB_T 15114-2023 铝合金压铸件.docx
- 2024年度组织生活会支部班子对照检查材料.doc VIP
- 5.1+人要自强+课件-+2024-2025学年统编版道德与法治七年级下册.pptx VIP
- 弱电系统维保方案(三篇).pdf VIP
- 义务教育劳动课程标准(2022年版).pdf
文档评论(0)