词法分析实验汇报.doc
文本预览下载声明
编 译 原 理
实验名称: 词法分析器
班 级:计科0705
姓 名: 郑 磊
学 号
2010年4月29日
词法分析器
实验目的要求
用C语言编写一个词法分析器,使之能识别输入串,并把分析结果(单词符号,标识符,关键字等等)输出。输入源程序,输出单词符号,本词法分析器可以辨别关键字,标识符,常数,运算符号,逻辑符号和某些界符,运用了文件读入来获取源程序代码,再对该源程序代码进行词法分析,逐个识别出其中的单词,并将其转换为内部编码形式的单词符号串作确为输出。通常,可采用二元式 (value,class) 来表示一个单词符号的内部编码,其中:class为一类型码,用于表示该单词的类别;value则是该单词之值。
单词分类表
将单词分为五类:
1.:保留字 2:标识符 3:数字符 4:运算符 5:界符
1.对给定的程序通过词法分析器弄够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。
2.本程序我们自行规定(即单词分类表):
(1)关键字:
auto,double,union,int,struct,break,else,long,switch,case,enum,
register,typedef,char,extern, return,const,float,short,unsigned,continue,for,signed,void,default,goto,sizeof, volatile,do,while,static,if};
运算符: +,-,*,/,=
界符: ,,;,{,},(,),[,],.,#
(4)其他标记 如字符串,表示以字母开头的标识符。
(5)空格、回车、换行符过滤。
在屏幕上显示如下:
=1 保留字
=2 标识符
=3 数字符
=4 运算符
=5 界符
三.单词状态图
标识符 不存在时存入
空白 字母或数字 O O
字母 保留字 已存在
开始 O
数字
数字 非数字字母小数点 小数点报错
O 数字 O
小数点 数字 非数字字母小数点
O
=号 字母报错 字母报错
O O O
=号 非=号(*/状态与=相同) =号
O O
+号 非+号=号 /号
O (- 状态与+相同) O
,等界符 +号 *号 *号 /号
O O O
显示全部