PL/0的语言的词法分析器将要完成以下工作:
(1) 跳过分隔符(如空格,回车,制表符);
(2) 识别诸如begin,end,if,while等保留字;
(3) 识别非保留字的一般标识符,此标识符值(字符序列)赋给全局量id,而全局量sym赋值为SYM_IDENTIFIER。
(4) 识别数字序列,当前值赋给全局量NUM,sym则置为SYM_NUMBER;
(5) 识别:=,<=,>=之类的特殊符号,全局量sym则分别被赋值为SYM_BECOMES,SYM_LEQ,SYM_GEQ等。
相关过程(函数)有getsym(),getch(),其中getch()为获取单个字符的过程,除此之外,它还完成:
(1) 识别且跳过行结束符;
(2) 将输入源文件复写到输出文件;
(3) 产生一份程序列表,输出相应行号或指令计数器的值。
2022-06-11 13:23:38
257KB
编译原理
1