2

今天我正在阅读如何找到语法的First和Follow。我看到了这个语法:

S → ACB | 中央银行 | 巴

A → 大 | 公元前

B → g | ε

C → h | ε

声称是

FIRST(S) = FIRST(ABC) U FIRST(CbB) U FIRST(Ba)

= {d, g, h, ε} U {h, b} U {g, a}

= {d, g, h, ε, b, a}

我不明白这个集合中的 a 和 b 是如何的。谁能解释一下?

4

1 回答 1

2

请注意,B 和 C 都可以为空(它们可以产生 ε)。这意味着从生产

S → CbB

我们得到 b ∈ FIRST(S),因为如果我们使用产生式 C → ε 我们可以得到一个以 b 开头的产生式。

同样,请注意

S → 巴

是一个产生式,所以我们得到 a ∈ FIRST(S),因为我们可以使用产生式 B → ε 在可从 S 派生的字符串的前面得到一个 a。

希望这可以帮助!

于 2013-12-05T07:38:47.657 回答