给定 CFG 的第一组和后续组

First and Follow Set of a given CFG

我有这个 CFG,其中有一个循环,然后如何制作第一组和后续循环的 cfg,因为第一组很容易,但后续组有问题

S -> iEtSS'|a
S' -> es
E -> b

我修正了这个问题,因为你可能会问这个问题的答案。

S -> iEtSS'|a<br>
S' -> eS|eplison<br>
E -> b 

第一

First(S) -> {i, a}<br>
First(S') -> {e, eplison}<br>
First(E) -> {b}

关注

Follow(S) -> {$, First(S')} -> {$, e}<br>
Follow(S') -> {Follow(S)} -> {$, e}<br>
Follow(E) -> {t}

即使有循环也可能不能超过上面的非终结符 in Follow set.

您可能已经看到循环

Follow(S) -> {$, First(S'), Follow(S)}
->Follow(S) is because First(S') has eplison.