在学习编译原理时,按照《程序设计语言编译原理》(学习教材),设计了一个简单的词法分析器的代码,可以实现对关键字、标识符,数字的识别,去掉空格符等。
下面对关键字和种别码的说明。
1、 功能:输入源程序、分析源程序的单词,输出单词
单词符号的种类如下:
(1) 关键字(本例所有关键字都是大写)。
DIM IF DO STOP END
(2) 标识符:表示各种名字,如数组名、过程名和变量名等。标识符(ID)通过以下正规式定义:
ID=letter(letter| digit)*
(3) 运算符:
= + * ** , ( )
(4)常数
各种类型的常数标识符(NUM) 通过以下正规式定义:
NUM=digit digit *
(5) 空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM,运算符、界符和关键字,词法分析阶段通常被忽略。
2、 种别码:
单词符号 |
种别编码 |
内码值 |
DIM |
1 |
- |
IF |
2 |
- |
DO |
3 |
- |
STOP |
4 |
- |
END |
5 |
- |

本文介绍了根据《程序设计语言编译原理》设计的一个简单词法分析器,能够识别关键字、标识符、数字,并忽略空格。关键功能包括预处理、超前搜索,涉及的主要变量和函数包括字符处理、字符串数组、关键字表等。虽然不完美,但提供了词法分析的基础框架。
最低0.47元/天 解锁文章
6034

被折叠的 条评论
为什么被折叠?



