非递归预测分析在什么场合下发现错误
1.栈顶的终结符和下一个输入符号不匹配
2.栈顶是非终结符A,输入符号是a,而M[A , a]是空白– No allowable actions
恐慌模式:
非递归预测分析采用紧急方式的错误恢复,发现错误时,分析器抛弃一些输入记号,直到输入记号属于某个指定的同步记号集合为止。
把FOLLOW(A)的所有终结符放入非终结符A的同步记号集合中。
例如: if expr then (then是expr的一个同步记号)
三种情况:
1.如果分析时遇到栈顶终结符和移动指针所指的词法单元不匹配:弹出栈顶终结符
2.如果M[A,a]是空,则跳过输入符号a
3.如果M[A,a]是为synch,则弹出栈顶非终结符A