- 如果下一个输入符号没有转换(因为它没有前瞻),LR(0)-Parsers 会简单地减少它是否正确?
- SLR(1)-Parsers 使用产品的 FOLLOW-Set 作为前瞻是否正确?
- LR(1)-Parsers 使用 FIRST-,而不是FOLLOW-Set 作为前瞻,对吗?
closure
明确使用的算法FIRST
closure(S)
For each item [A → α ⋅ B β, t] in S,
For each production B → γ in G,
For each token b in FIRST(βt),
Add [B → ⋅ γ, b] to S
再说一次,我对此感到困惑。
4.7.1 Canonical LR(1) Items
龙书下段说:
因此,我们只需要对那些 [A → α·, a]是处于堆栈顶部状态的 LR(1) 项的输入符号 a 进行 A → α减少。此类 a 的集合将始终是FOLLOW(A)的子集,但它也可以是真子集,如示例 4.51 中所示。