正在加载图片...
构造符号表的算法 1.初始化:CURRBL=0; (3)遇到END时: LASENT=0:LASTBL=0: B[CB].POINTER=LE+1; TOPENT=O;*注:以上各量在 for(k=1;K<=B[CB].EC;k++) 下面的程序中分别简记为 CB,LE,LT,TE*/ S[++LE]=STE++]: CB=B[CB].OUTERN; 2(1)当进入分程序的首符号或过程 时:B[++LT].OUTERN=CB; 3.重复2.,直到扫描结束 B[LT].ECOUNT=0; 对于前面的程序结构,其构造符号 B[LT].POINTER=TE;CB=LT; 表的过程见教材中P266图6-5 (2)遇到分程序中的定义性出现时: TP-;STE=相关信息; B[CR].ECOUTN++; B[CR].POINTER=TE;构造符号表的算法 1.初始化: CURRBL =0; LASENT=0; LASTBL=0; TOPENT=0; /*注:以上各量在 下面的程序中分别简记为 CB,LE,LT,TE*/ 2.(1)当进入分程序的首符号或过程 时: B[++LT].OUTERN=CB; B[LT].ECOUNT=0; B[LT].POINTER=TE; CB=LT; (2) 遇到分程序中的定义性出现时: TP--;S[TE]=相关信息; B[CR].ECOUTN++; B[CR].POINTER=TE; (3)遇到END时: B[CB].POINTER=LE+1; for(k=1; k<=B[CB].EC; k++) S[++LE]=S[TE++]; CB=B[CB].OUTERN; 3.重复2.,直到扫描结束. 对于前面的程序结构,其构造符号 表的过程见教材中P266图6-5
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有