编译原理实验报告
f实验一一、实验名称:词法分析器的设计二、实验目的:1,词法分析器能够识别简单语言的单词符号
2,识别出并输出简单语言的基本字标示符无符号整数运算符和界符。三、实验要求:给出一个简单语言单词符号的种别编码词法分析器四、实验原理:
1、词法分析程序的算法思想算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。2、程序流程图(1)主程序
输入要分析的语句
判断读入字符是否为“”调用扫描、分析程序输出单词符号二元组
结束
(2)扫描子程序
fToke
清空Get()当前字符?
标示符
常数
基本字
用户标示符
表中查找
结束
Error()
输出二元式
结束
3、各种单词符号对应的种别码
单词符号
种别码
while
1
if
2
else
3
switch
4
case
5
标识符
6
常数
7
8
9
10
11
11
11
12
13
助记符while
ifelseswitchcaseid
um
relopreloprelop
内码值
id在符号表中的位置
um在常数表中的位置LELTEQ
f五、实验内容:
1、实验分析
编写程序时,先定义几个全局变量a、toke
(均为字符串数组cschar型,ijk(i
t型),a用来存放输入的字符串,toke
另一个则用来帮助识别单词符号,s用来表示正在分析的字符。字符串输入之后,逐个分析输入字符,判断其是否‘’,若是表示字符串输入分析完毕,结束分析程序,若否则通过i
tdigitcharc、i
tlettercharc判断其是数字,字符还是算术符分别为用以判断数字或字符的情况,算术符的判断可以在switch语句中进行,还要通过函数i
tlookupchartoke
来判断标识符和保留字。
2实验词法分析器源程序:
i
cludestdiohi
cludemathhi
cludestri
ghi
tijkcharcsa20toke
200i
tletterchars
ifs97s122retur
1elseretur
0i
tdigitcharsifs48s57retur
1elseretur
0voidgetsaiii1voidretractii1i
tlookupchartoke
20ifstrcmptoke