由于一个单词往往是由一个或几个字符组成的,所以在词法分析过程GETSYM中又定义了一个取字符过程GETCH(见图2.6),由词法分析需要取字符时调用。
CH: 存放当前读取的字符,初值为空。 LINE: 为一维数组,其数组元素是字符,界对为1∶80。用于读入一行字符的缓冲区。 LL和CC为计数器,初值为0。 GETSYM流程图的工作单元说明: A:一维数组,数组元素为字符,界对[1∶10]。 ID:同A。 WORD:保留字表,一维数组,数组元素是以字符为元素的一维数组。界对为[1∶13]。查表方式采用二分法。 单个字符对应的单词表的建立是,首先在主程序中定义了下标为字符的数组ssym,数组ssym的元素为单词,主程序开始对下标为字符的所有数组元素置初值为nul,对PL/0语言用到的单个字符为单词的,将其字符作为数组下标的元素置初值为对应的单词。如: ssym['+']:=plus; ssym['-']:=minus; … ssym[';']:=semicolon; |