今天我正在阅读如何找到First和Follow of a grammar。我看到了这个语法:
S→ACB | CbB |的Ba
A→da | BC
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在这个集合中是怎样的。谁能解释一下呢?
答案 0 :(得分:2)
请注意,B和C都可以为空(它们可以产生ε)。这意味着从生产
S→CbB
我们得到b∈FIRST(S),因为如果我们使用生产C→ε,我们可以得到以b开头的生产。
同样,请注意
S→Ba
是一个生产,所以我们得到一个∈FIRST(S),因为我们可以使用生产B→ε在一个可从S派生的字符串的前面得到a。
希望这有帮助!