全球旧事资料 分类
词法分析器实验报告
f实验目的:
设计、编制、调试一个词法分析子程序-识别单词,加深对词法分析原理的理解。
功能描述:
该程序要实现的是一个读单词过程,从输入的源程序中,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、分隔符五大类。并依次输出各个单词的内部编码及单词符号自身值。(遇到错误时可显示“Error!”,然后跳过错误部分继续进行)
设计思想:
设计该词法分析器的过程中虽然没有实际将所有的状态转移表建立出来,但是所用的思想是根据状态转移表实现对单词的识别。首先构造一个保留字表然后每输入一个字符就检测应该进入什么状态并将该字符连接到d串后继续输入如此循环最后根据所在的接受状态以及保留字表识别单词。
符号表:
记号
wsco
stvarcallbegi
ifwhile
doodde
dthe
procedure
类别
保留字保留字保留字保留字保留字保留字保留字保留字保留字保留字保留字运算符运算符运算符
属性值
11111111111222
f
运算符
2

运算符
2

运算符
2

运算符
2

运算符
2

运算符
2

运算符
2

运算符
2
ide
t
标识符
3

umber
常数
4

分隔符
5

分隔符
5

分隔符
5

分隔符
5

分隔符
5
状态转换图:
①标识符及保留字:
Start
letterordigittletter

umber
f③关系操作符:
other
other
digit
digit
digit
start
digit

digit
E

digit
0
1
2
3
4
5
6
E
digit
fstart


other
22
2

2

2
other
2
(:,2)
④分隔符:
fstart
5
5


55
5
⑤算术运算符:
start

2

2
2
2
使用环境:Wi
dowsxp下的visualc60
程序测试:i
put1i
tabab2
fi
put2whilea0do7xx67E23e
d
i
put3begi
x9ifx0the
xx1whilea0dob2x3cae
d
output13i
t3a53b53a23b2425
output21while53a24051doerrorli
e32
3x2467E2351e
d5
output31begi
errorli
e13x2491if3x2401the
3x23x241
51while3a2401do3b24223x24353c23a51e
d5
f测试结果与预期结果一致
源程序代码:
i
cludestdiohi
cludestri
ghvoidmai
i
ti0jk0state1f0li
e
um1chara1110
好听全球资料 返回顶部