三.预测分析程序 构成下推栈预测分析表控制程序输入串 1.预测分析表 ●形式M[A,a矩阵,A∈Va∈V{$} 内容A◇或出错标志(空白)
三. 预测分析程序 构成:下推栈,预测分析表,控制程序,输入串 1. 预测分析表 •形式:M[A,a]矩阵, AVN,a VT{$} •内容:A→α或出错标志(空白)
预测分析表 EE→TE E→TE E E”→+TE E→E E→E T T→FT T→FT T T→E T→*FT T→8 F F→→1 F→→(E)
预测分析表 E E’ T T’ F i + * ( ) $ E→TE’ E→TE’ E’→+TE’ T→FT’ T→FT’ T’→*FT’ F→i F→(E) E’→ε E’→ε T’→ε T’→ε T’→ε
2.分析方法 初始时$和开始符入栈,输入指针指 向第一个符号然后根据下推栈栈顶 符x和当前输入符a进行工作 ①x=a=$,成功 ②x-a≠$,匹配 ③x∈V查表
2. 分析方法 初始时,$和开始符入栈,输入指针指 向第一个符号,然后根据下推栈栈顶 符x和当前输入符a进行工作: ①x=a=$, 成功 ②x=a$, 匹配 ③xVN, 查表
例计i*i的分析过程 下推栈 输入串查分析表 SE i+*i$E→TE SET i+i*i$T→FT SETF i+i*i$F→i SETi i+i*iS SET +i*i$ T→E SE +i*i$E,→+TE SET+ +i*i$ SET i*i$T→FT
例:i+i*i的分析过程 下推栈 输入串 查分析表 $E i+i*i$ $E’T $E’T’F $E’T’ $E’T’i $E’ $E’T $E’T+ i+i*i$ +i*i$ i+i*i$ i+i*i$ +i*i$ +i*i$ i*i$ E→TE’ T→FT’ T→FT’ F→i T’→ε E’→+TE’
SETF *iS F SETi SET *i$T→*FT SETF* SETF F→→1 SET SET SE E→E 结束
$E’T’F $E’T’i i*i$ $E’T’ $E’T’F* $E’T’i $E’T’F $E’T’ $ $E’ *i$ i$ *i$ i$$$$ T’→*FT’ 结束F→i T’→ε i*i$ F→i E’→ε