词法分析器(1)
词法分析器的功能是输入源程序,输出单词符号。程序语言的单词符号一般分为下列五种:
(1)关键字,由程序语言定义的具有固定意义的标识符,比如java中的while、if、const、int等等。
(2)标识符,用来表示各种名字,如变量名、数组名、过程名等等。
(3)常数 分为整型、实型、布尔型、文字型等等
(4)运算符 +、-、*等
(5)界符,如“,”、“;”、“()”等等
词法分析器所输出的单词符号常常表示为如下的二元式
(单词种别,单词符号的属性值)
单词种别通常用整数编码。标识符归为一类,常数则按照类型分钟,关键字可将其视为一种,
也可以一字一种,一般都是一字一种,好处理。运算符也采用一字一符,界符也是。
如果一个种别只含一个单词符号,那么,对于这个单词符号,种别编码就完全代表它。
还应给出有关单词符号的属性信息。单词符号的属性信息是指单词符号的特性或特征值,
属性值则是反应特性特征的值,如:对于某个标识符,
常将存放它的有关信息的符号项表的指针作为其属性值。
* 针对以上所述,可以得出:只有标识符(自己定义的变量)和常数的二元式中第二个项——单词符号的属性值不为空,值为相应项表的指针。*
词法分析器工作第一步是输入源程序文本,输入串一般放在输入缓冲区中。
先把输入串预处理一下,删