找到语法中的第一个集合

问题描述 投票:0回答:2

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

S → ACB | CBB |巴

A → 达 |公元前

B → g | ε

C → h | ε

主张是这样的

第一(S)=第一(ABC)U第一(CbB)U第一(Ba)

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

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

我不明白a和b在这个集合中是怎样的。谁能解释一下这个吗?

parsing compiler-construction context-free-grammar ll-grammar
2个回答
2
投票

注意 B 和 C 都是可为空的(它们可以产生 ε)。这意味着从生产开始

S → CbB

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

同样,请注意

S → 巴

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

希望这有帮助!


0
投票

有人可以先给我提供完整的方程式吗

© www.soinside.com 2019 - 2024. All rights reserved.