首先和跟随给定CFG的集合

时间:2017-01-03 04:17:42

标签: compiler-construction set

我有这个CFG,然后有一个循环然后如何制作第一个并遵循循环cfg的集合,因为第一集很容易,但在后续集中有问题

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

1 个答案:

答案 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.