编译原理(第三版) 语法分析器
语法分析器在词法分析器的基础上增加了递归下降分析程序,咱也不知道啥是递归下降程序,咱也不想问。 但是有程序框图和伪代码把程序跑通咱还是比较在行滴。为了便于理解,debug过程中的输出也保留了。 下面是完整代码。 1 /* 2 begin a:= 9; x:=2*3;b:=a+x end# 3 x:= a+b*c end # 4 */ 5 #include <stdio.h> 6 #include <stdlib.h> 7 #include < string .h> 8 #define _KEY_WORD_END "waiting for your expanding" 9 typedef struct 10 { 11 int typenum; 12 char * word; 13 }WORD; 14 char input[ 255 ]; 15 char token[ 255 ]= "" ; 16 int p_input; 17 int p_token; 18 char ch; 19 char * rwtab[] = { " begin " , " if " , " then " , " while " , " do " , " end " ,_KEY_WORD_END}; 20 WORD * scaner(); 21 WORD* oneword = new WORD; 22 int