F I R S T FIRST FIRST集合求法
- 对于形如 X → a … X \to a \dots X→a…,则将 a a a添加进 F I R S T ( X ) FIRST(X) FIRST(X) 中
- 对于形如 X → ε X \to \varepsilon X→ε,则将 ε \varepsilon ε添加进 F I R S T ( X ) FIRST(X) FIRST(X) 中
- 对于形如 X → B … X \to B \dots X→B…,则将 { F I R S T ( B ) − { ε } } \{FIRST(B) - \{\varepsilon\}\} {FIRST(B)−{ε}}添加进 F I R S T ( X ) FIRST(X) FIRST(X) 中
F O L L O W FOLLOW FOLLOW集合求法
- 对于文法的开始符号 S S S,将#放于 F O L L O W ( S ) FOLLOW(S) FOLLOW(S)中
- 对于形如
A
→
α
B
β
A \to \alpha B \beta
A→αBβ的产生式
- 将 { F I R S T ( β ) − { ε } } \{FIRST(\beta) - \{\varepsilon \}\} {FIRST(β)−{ε}}放于 F O L L O W ( β ) FOLLOW(\beta) FOLLOW(β)中
- 如果 ε ϵ F I R S T ( β ) \varepsilon \epsilon FIRST(\beta) εϵFIRST(β),则把 F O L L O W ( A ) FOLLOW(A) FOLLOW(A)放入 F O L L O W ( B ) FOLLOW(B) FOLLOW(B)中
- 对于形如 A → α B A \to \alpha B A→αB的产生式,把 F O L L O W ( A ) FOLLOW(A) FOLLOW(A)放入 F O L L O W ( B ) FOLLOW(B) FOLLOW(B)中
即,如下图所示