1

语法:

E -> TE’
E’ -> +TE’ | ε
T -> FΤ’
Τ’ -> *FΤ’ | ε
F -> (E)| id

职能:

1. FIRST(F) = FIRST(T) = FIRST(E) = {(, id}
2. FIRST(E’) = {+, ε}
3. FIRST(T’) = {*, ε}
4. FOLLOW(E) = FOLLOW(E’) = {), $}
5. FOLLOW(T) = FOLLOW(T’) = {+, ), $}
6. FOLLOW(F) = {*, +, ), $}

这是我讲座中的语法和功能......有人可以解释一下FOLLOW是如何工作的吗?我了解 FIRST 的工作原理,但 FOLLOW 很难理解......

4

2 回答 2

3

看看维基百科的 FIRST_and_FOLLOW_sets

关注(E):

您查找E.
在这里(E)并联合所有以下终端和以下非终端的 FIRST 集。
这里只有以下终端)

关注(女):

FFT,引用*FT'。和 的并FOLLOW(F)集也是如此。FIRST(T) = {(, id}*FIRST(T') = {*, ε}

最后,FOLLOW(F) = {(, id, *, ε}.

于 2012-11-27T19:47:07.737 回答
1

这里 FOLLOW(F) 是通过这种方式找到的: T-->FT' 表示 FOLLOW(T) 是 FOLLOW(F) 的子集
T'-->*FT' 表示 FIRST(T') 包含 epsilon 然后除了 epsilon 并添加要设置的其他值。

于 2013-05-11T18:58:01.497 回答