③知a,则表示发现错误,调相应的出错处理程序进行处理 b若X∈Vn:则根据X与a查分析表M,根据MⅨX,a]中的内容决 定: ①若MⅨX,a中为一个规则,则将X丛分析栈中弹出,并将此规 则右部的符号序列按倒序压入分析栈(若规则为X→E,则仅 将X从栈中弹出)。 ②若MⅨX,a]中为空白,则表示出错,调用相应的出错处理程 序处理
③X≠a,则表示发现错误,调相应的出错处理程序进行处理。 b.若X∈Vn:则根据X与a查分析表M,根据M[X,a]中的内容决 定: ①若M[X,a]中为一个规则,则将X从分析栈中弹出,并将此规 则右部的符号序列按倒序压入分析栈(若规则为X→ε,则仅 将X从栈中弹出)。 ②若M[X,a]中为空白,则表示出错,调用相应的出错处理程 序处理
开始 lS入栈当前输入符号→> 弹出栈顶符号放入X 若产生式为:x→ Xx:x,则捋 X、x“x1入栈 诶入 X∈ Xe 下 符号 否 M[x,a]是 否 产生式吗? 是 否 否 出错) 出错〕 是 束
例:E→TE’E+TEET→FTT→奸TEF→(E) 的分析表如下: 水 # E|E→TE′ E E E→+TE′ E T T→FT′ T→FT′ eT→*FT′ T→εT F F→i F→(E)
例:E→TE’ E’→+TE’|ε T→FT’ T’→*FT’|ε F→(E)|i 的分析表如下: i + * ( ) # E E→TE’ E→TE’ E’ E→+TE’ E’→ε E’→ε T T→FT’ T→FT’ T’ T’→ε T→*FT’ T’→ε T’→ε F F→i F→(E)
步骤栈 剩余输入串 输出 0 i*(i计+i)+i# E→TE #ET i*(i+i)+i# T→FT 2 #ETE i*(i+i)+i# F→→1 3 #ETi i*(i+i)+i# i匹配 T *(i+i)+i# T一*FT #ETFR *(+1)+i# *匹配 #ETE (i+1)+i# F→(E) 7 #ETEC (i+1)+i# (匹配 8 #ET)E i+i1)+i# E→→TE 9 #ETET i+1)+i# T→FT
步骤 栈 剩余输入串 输出 0 #E i*(i+i)+i# E→TE’ 1 #E’T i*(i+i)+i# T→FT’ 2 #E’T’F i*(i+i)+i# F→i 3 #E’T’i i*(i+i)+i# i匹配 4 #E’T’ *(i+i)+i# T’ →*F T’ 5 #E’T’F* *(i+i)+i# *匹配 6 #E’T’F (i+i)+i# F→(E) 7 #E’T’)E( (i+i)+i# (匹配 8 #E’T’)E i+i)+i# E→TE’ 9 #E’T’)E’T i+i)+i# T→FT’
10 #ETETF 1+1+i# F 1 #ETETi 1+i)+i# i匹配 12 #ETET 1)+i T→E 13 #ETE +1)+i# E→+TE 14 #ET)ET+ +i)+i# +匹配 15 #ETET i)+i# T→FT 16 #ETETF i)+i# F 17#ET)E”Ti i)+i# i匹配 18 #ETET )+i# 19 #ETE )+i# )8
10 #E’T’)E’T’F i+i)+i# F→i 11 #E’T’)E’T’i i+i)+i# i匹配 12 #E’T’)E’T’ +i)+i# T’ →ε 13 #E’T’)E’ +i)+i# E’ →+TE’ 14 #E’T’)E’T+ +i)+i# +匹配 15 #E’T’)E’T i)+i# T→FT’ 16 #E’T’)E’T’F i)+i# F→i 17 #E’T’)E’T’i i)+i# i 匹配 18 #E’T’)E’T’ )+i# T’ →ε 19 #E’T’)E’ )+i# E’ →ε