一、 实验目的
设计并实现一个PL/0语言的词法分析程序,加深对词法分析原理的理解。
二、实验原理:
词法分析是从左向右扫描每行源程序的符号,拼成单词,换成统一的机内表示形式——TOKEN字,送给语法分析程序。
TOKEN字是一个二元式:(单词种别码,自身值)。PL/0语言单词的种别码用整数表示,可参考教材或自行设定;单词自身值按如下规则给出:
1 标识符的自身值是它在符号表的入口地址。
- 常数的自身值是常数本身。
- 关键字和界限符的自身值为本身。
三、 实验步骤与要求
1、要求根据状态图,设计实现词法分析器。
2、编制程序,此程序应具有如下功能:
- 输入:字符串(待进行词法分析的源程序),可从文件读或入从键盘直接输入
输出:由(种别码,自身值)所组成的二元组序列,二元组序列可保存到一个文件中,也可直接屏幕显示。
单词的种别码是语法分析需要的信息,可用整数编码表示,例如:标识符的种别码为1,常数为2,保留字为3,运算符为4,界符为5。
单词的自身值是编译其它阶段需要的信息,标识符的自身值是标识符在符号表入口,其他类型单词的自身值是其本身。
可以参考下面的示例:
输入字符串
if i>=15 then x := y;
输出:
(3,‘if’)
(1,0) // i的符号表入口为0
(4,‘>=’)
(2,‘15’ÿ