全球旧事资料 分类
中北大学软件学院
实验报告
专业课程名称学号姓名
软件工程编译原理
f辅导教师张静
成绩
实验日期2015519
实验时间14001600
1实验名称:词法分析器的设计与实现
2、实验目的
(1)掌握C语言单词符号的划分、正规式、状态转换图及词法分析器的实现。(2)掌握词法分析程序的作用。
3、实验要求
(1)对任给的一个C语言源程序,能够滤掉空格、回车换行符、tab键及注释。(2)识别各类单词符号,如关键字、标识符、运算符、常数、界符,结果以二元式形式输出,并构造符号表。(3)输出有词法错误的单词及所在行号。(在此阶段只能识别有限的词法错误)
4、实验原理
根据扫描到的单词符号的第一个字符的种类,分别转到相应的程序进行处理。这些程序的功能就是识别以相应字符开头的各类单词符号。
5、实验步骤
(1)根据C语言各类单词的正规式,构造能识别各类单词的状态转换图。(2)根据状态转换图,构造识别各类单词的词法分析器。
6、状态转换图及词法分析程序
f开始
输入源文件路径
否路径是否有
效是打开源文件
初始化文件指针
识别指针内容
文件结束?

结束

是空格,空白或换行吗

是字母吗

是数字吗

是界符吗

将字符加入字符数组Word
是跳过该字符
指向下一字符

将字符加入字符数组Word
将字符加入字符数组Word
指向下一字符
是字母惑数字吗
是指向下一字符是
识别指针内容

将字符加入字符数组Word
输出word为界符
将字符加入字符数组Word
输出Word内容为不可识别
回退

将word与关键
是数字吗
字表key进行匹


输出word为普通标示符

匹配?

输出word为关键字
输出word为常数
指向下一字符
词法分析程序cpp
i
cludestri
gh
i
cludestdioh
i
cludestdlibh
i
cludectypeh
定义关键字
charKey10
好听全球资料 返回顶部