考虑以下语法
p --> xQRS
Q --> yz|z
R --> w|∈
S -> y
哪个是跟随(Q)?
(A) {R}
(B) {w}
(C) {w, y}
(D) {w, ∉}答案: (C)
解释:
替代解决方案
要为所有非终结符 A 计算 FOLLOW(A),请应用以下规则,直到无法向任何 FOLLOW 集添加任何内容:
- 将 $ 放在 FOLLOW(S) 中,其中 S 是开始符号,$ 是输入的右结束标记。
- 如果存在产生式 A → αBβ,则 FIRST(β) 中的所有内容,除了 ∈,都放在 FOLLOW(B) 中
- 如果存在产生式 A → αB,或者产生式 A → αBβ,其中 FIRST(β) 包含 ∈(即 b → ∈),则 FOLLOW(A) 中的所有内容都在 FOLLOW(B) 中。
因此,follow(Q) = First(RS) = ( w ) ∪ First(S) = { w } ∪ { y } = { w,y }。
注意这里,first(S)不是∈。
此解释由Mithlesh Upadhyay 提供。这个问题的测验