【发布时间】:2018-03-30 01:00:01
【问题描述】:
- 如果下一个输入符号没有转换(因为它没有前瞻),那么 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 其中 [A → α·, a] 是一个 LR(1) 项 堆。此类 a 的集合将始终是 FOLLOW(A) 的子集, 但它可能是一个适当的子集,如示例 4.51 所示。
【问题讨论】: