全球旧事资料 分类
信息工程学院实验报告20102011学年度第一学期
姓名
学号
班级083
f词法分析
一、实验目的
设计、编制并调试一个词法分析程序加深对词法分析原理的理解。
二、实验要求
21待分析的简单的词法
1关键字
begi
ifthe
whiledoe
d
所有的关键字都是小写。
2运算符和界符
3其他单词是标识符ID和整型常数SUM通过以下正规式定义
IDletterletterdigit
NUMdigitdigit
4空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字词法分析阶段通常被忽略。
22各种单词符号对应的种别码
输入所给文法的源程序字符串。
输出二元组sy
toke
或sum构成的序列。
其中sy
为单词种别码
toke
为存放的单词自身字符串
sum为整型常数。
例如对源程序begi
x9ifx9the
x2x13e
d的源文件经过词法分析后输出如下序列
1begi
10x18119262if……
三、词法分析程序的算法思想
算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号其基本思想是根据扫描到单词符号的第一个字符的种类拼出相应的单词符号。
31主程序示意图
f主程序示意图如图31所示。其中初始包括以下两个方面
⑴关键字表的初值。
关键字作为特殊标识符处理把它们预先安排在一张表格中称为关键字表当扫描程序识别出标识符时查关键字表。如能查到匹配的单词则该单词为关键字否则为一般标识符。关键字表为一个字符串数组其描述如下
Charrwtab6“begi
”“if”“the
”“while”“do”“e
d”
图31
2程序中需要用到的主要变量为sy
toke
和sum
32扫描子程序的算法思想
首先设置3个变量①toke
用来存放构成单词符号的字符串②sum用来整型单词③sy
用来存放单词符号的种别码。扫描子程序主要部分流程如图32所示。
f图32四、词法分析程序的C语言程序源代码
i
cludestdioh
i
cludestri
gh
charprog80toke
8ch
i
tsy
pm
sum
charrwtab6
好听全球资料 返回顶部