实验一词法分析器的设计与实现
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一:词法分析器的设计与实现
实验目的:
通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。
编制一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即关键字、标识符、常数、算符、界符五大类。并依次输出各个单词的内部编码及单词符号自身价值。(遇到错误时可显示“Error”,然后跳过错误部分继续显示)
实验内容:
给定一个C语言的子集,如下:
关键字(小写)
main if else int return void while
算符或界符:
= + - * / < <= > >= = = != ;:,{ } [ ] ( )
标识符是字母开头,后面字母和数字组合
数值指无符号常数
空格一般用来分隔标识符、数值、专用符号和关键字
实验要求:
1.请给出自己单词符号的种别码表
2.给出标识符ID和数值NUM的正规式定义
3.给出该语言的子集对应的状态转换图
4.词法分析器的功能
输入:所给文法的源程序
输出:二元组(token 或sum ,syn)构成的序列。其中
syn 为单词种别码
token 为存放单词自身字符串
sum 为整型常数
5.给出总体及各主要程序段的算法流程
把源程序放入一个数组中,用token数组取词;
进行匹配查找,和错误处理,最后输出。
6.给出程序使用说明、程序运行示例
给出完整可执行程序的程序代码(有关键变量及关键语句的注释)