2.3 PL/0编译程序的词法分析 PL/0的词法分析程序GETSYM(图2.5)是一个独立的过程,其功能是为语法分析提供单词用的,是语法分析的基础,它把输入的字符串形式的源程序分割成一个个单词符号。为此PL/0编译程序设置了三个全程量的公用单元如下: SYM:存放每个单词的类别,用内部编码形式表示。 ID:存放用户所定义的标识符的值。即标识符字符串的机内表示。 NUM:存放用户定义的数。 单词的种类有五种。 基本字:也可称为保留字或关键字,如BEGIN,END,IF,THEN等。 运算符:如:+、-、*、/、∶=、#、>=、<=等。 标识符:用户定义的变量名、常数名、过程名。 常数:如:10,25,100等整数。 界符:如:','、'.'、';'、'('、')'等。 如果我们把基本字、运算符、界符称为语言固有的单词,而对标识符、常数称为用户定义的单词。那么经词法分析程序分出的单词,对语言固有的单词只给出类别存放在SYM中,而对用户定义的单词(标识符或常数)既给类别又给值,其类别放在SYM中,值放在ID或NUM中,全部单词种类由编译程序定义的纯量类型SYMBOL给出,也可称为语法的词汇表。如下面提到的IFSYM,THENSYM,IDENT,NUMBER均属SYMBOL中的元素。 |