SLR(1)分析法只是简单地考察下一个输入符号b
是否属于与归约项目 A → α A\rightarrowα A→α相关联的FOLLOW(A)
,但 b ∈ F O L L O W ( A ) b\in FOLLOW(A) b∈FOLLOW(A) 只是归约的一个必要条件,而非充分条件。
假设栈内的符号串为 $ $ \delta\alpha $ ,规约之后变为 $ $\delta A$ ,当前读到的输入为a
,若文法中不存在以 $ $\delta a $ 为前缀的规范举行,那么这种规约就无效了。并不是FOLLOW(A)中的每个元素在A的所有举行中都会出现在A的后面。
LR(1)分析法的思想
当师徒用某一规则 A → α A \rightarrow{\alpha} A→α规约栈顶的符号 α \alpha α时,不仅应该查看栈中符号串 δ α \delta \alpha δα,还应向前扫视一个输入符号a
,只有当 δ A a \delta Aa