我有这个CFG,然后有一个循环然后如何制作第一个并遵循循环cfg的集合,因为第一集很容易,但在后续集中有问题
S -> iEtSS'|a
S' -> es
E -> b
答案 0 :(得分:1)
我修正了问题,因为你可能会问这个问题的答案。
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}
即使有一个循环,它也可能不能超过跟随设置中的非终端。
您可能已将循环视为
Follow(S) -> {$, First(S'), Follow(S)}
->Follow(S) is because First(S') has eplison.