词法分析器实验报告
实验目的:
设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。
功能描述 :
该程序要实现的是一个读单词过程,从输入的源程序中,识别出各个具有独立意义的 单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内 部编码及单词符号自身值。(遇到错误时可显示“ 行)
Error !”,然后跳过错误部分继续进
设计思想:
设计该词法分析器的过程中虽然没有实际将所有的状态转移表建立出来,但是所用的
思想是根据状态转移表实现对单词的识别。首先构造一个保留字表
, 然后 , 每输入一个字符
就检测应该进入什么状态 , 并将该字符连接到 d 串后继续输入 , 如此循环 , 最后根据所在的 接受状态以及保留字表识别单词。
符号表:
记号 类别 属性值
ws - -
const 保留字 1
var 保留字 1
call 保留字 1
begin 保留字 1
if 保留字 1
while 保留字 1
do 保留字 1
odd 保留字 1
end 保留字 1
then 保留字 1
procedure 保留字 1
= 运算符 2
< 运算符 2
<= 运算符 2
<> 运算符 2
> 运算符 2
>= 运算符 2
* 运算符 2
+ 运算符 2
- 运算符 2
/ 运算符 2
:= 运算符 2
ident 标识符 3
number 常数 4
( 分隔符 5
) 分隔符 5
; 分隔符 5
, 分隔符 5
. 分隔符 5
状态转换图:
①标识符及保留字:
letter or
Start
lette
② number:
other
other
digit
E digit
③关系操作符:
start
<
=
( <=,2)
>
( <>,2)
other
*
=
( <,2)
(=,2)
>
:
=
( >=,2)
other
*
(>,2 )
=
(:=,2)
编译原理词法分析器实验报告.doc
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)
![](/skin/haowen/images/icon_star.png)