没有合适的资源?快使用搜索试试~ 我知道了~
首页编译原理的词法分析实验报告
编译原理的词法分析实验报告
![](https://csdnimg.cn/release/wenkucmsfe/public/img/star.98a08eaa.png)
通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学的理解,深刻理解词法分析的整个过程,提高词法分析方法的实践能力。c++实现的。
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/1224417/bg1.jpg)
学院 编译原理 实验报告
2008~2009学年 第 二 学期 级 计算机科学与技术 专业
班级: 学号: 姓名:
实验一:词法分析
一、 实验目的
通过设计调试词法分析程序,实现从源程序中分出各种单词的方法;加深对课堂教学
的理解,深刻理解词法分析的整个过程,提高词法分析方法的实践能力。
二、实验要求
(1)从源程序文件中读取有效字符和并将其转换成二元组机内表示形式输出。
(2)掌握词法分析的实现方法。
(3)实验要求独立完成,不允许有抄袭现象。
(4)实验完成后,要上交实验报告(包括源程序清单)。
三、实验内容
主程序的说明部分为各种表格和变量安排空间(关键字和特殊符号表)。
id 和ci 数组分别存放标识符和常数;还有一些为造表填表设置的变量。
主程序的工作部分建议设计成便于调试的循环结构。每个循环处理一个单词;接收键
盘上送来的一个单词;调用词法分析过程;输出每个单词的内部码。
四、程序源代码
等判断函数的头文件;
宏定义
!"##$
%"&$
$
!'()$ 扫描缓冲区
$ 用来存放输入的程序段
*+,-.$定义输出的文件型指针变量
*+,-./"01,,$定义读入的文件指针变量
%(2&)3(2&)$暂时存放单词的字符数组
(&)3(&)$分别表示输入和输出的文件名
!4"&$用于保存字符串的最大长度
!'"56$用做/的指示器
1
![](https://csdnimg.cn/release/download_crawler_static/1224417/bg2.jpg)
用数组记录关键字
.78(22)"93!%33333
/33!3333:3
;3/33/3333
333</333
3/333=3
=3>$
?@.A 打开需要读取字符的文件
9
/@/""01,,A
9
/@@/"/@3AA""01,,A
9
B$ 打开文件失败
&$
>
>
/@!'""56A 缓冲区无数据,则读数据
9
检测文件位置是否已到结尾,&5未到文件结尾,65已到文件结尾
/@//@/AA
9
/@/A$ 关闭文件
56$
>
从文件当前位置读取长度的字符串
!4"/@!'3</@A33/A$
!'"&$
>
/@!'!4A
9
得到当前字符并指向下一个字符
"!'(!'CC)$
>
/@!'"!4A
9
!'"56$
>
$
/@/A$ 关闭文件
>
=DB@A读取字符函数
2
![](https://csdnimg.cn/release/download_crawler_static/1224417/bg3.jpg)
9
测试是否是空格、制表符或换行符365是,&-不是
@@AA
若是,则取下一字符数据3直至中进入一个非空白字符
"?@A$
>
BB@A 关键字比较函数
9
3"&$
/@"&$22$CCA
9
比较%中的字符是否是关键字
/@@%378()A""&A
9
"6$
>
>
@A$
>
=E0@A
9
/@.................................................F3A$
/@55555555555555词法分析器的输出结果5555555555555553A$
/@F.................................................3A$
>
=-@A错误处理函数
9
/@G"56A
/@FHI-??J?G3A$
>
=EJB@A运算符、界符判断并输出函数
9
@A
9
#C#K
!""?@A$
/@""#C#A
/@F@CC3运算符 A3A$
3
剩余10页未读,继续阅读
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/msword](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![](https://profile-avatar.csdnimg.cn/6f9182f78285473798ea0e01514425e3_panliujiang.jpg!1)
Roakie
- 粉丝: 2
- 资源: 6
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 谷歌文件系统下的实用网络编码技术在分布式存储中的应用
- 跨国媒体对南亚农村社会的影响:以斯里兰卡案例的社会学分析
- RFM2g接口驱动操作手册:API与命令行指南
- 基于裸手的大数据自然人机交互关键算法研究
- ABAQUS下无人机机翼有限元分析与局部设计研究
- TCL基础教程:语法、变量与操作详解
- FPGA与数字前端面试题集锦:流程、设计与Verilog应用
- 2022全球互联网技术人才前瞻:元宇宙驱动下的创新与挑战
- 碳排放权交易实战手册(第二版):设计与实施指南
- 2022新经济新职业洞察:科技驱动下的百景变革
- 红外与可见光人脸融合识别技术探究
- NXP88W8977:2.4/5 GHz 双频 Wi-Fi4 + Bluetooth 5.2 合体芯片
- NXP88W8987:集成2.4/5GHz Wi-Fi 5与蓝牙5.2的单芯片解决方案
- TPA3116D2DADR: 单声道数字放大器驱动高达50W功率
- TPA3255-Q1:315W车载A/D类音频放大器,高保真、宽频设计
- 42V 输入 5A 降压稳压器 TPS54540B-Q1 的特点和应用
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)