Compiladores
Departamento de Computao
UEPB
2
CONJUNTOS FIRST E FOLLOW
Conjunto First
Primeiro no terminal encontrado numa produo
Pode haver mais de uma possibilidade, por isso um
conjunto
Caso uma produo de um no-terminal resulte em
vazio, o conjunto primeiro deste no-terminal conter
o conjunto primeiro do no-terminal seguinte
3
CONJUNTOS FIRST E FOLLOW
S -> A | B
A -> aAS | BD
B -> bB | fAC |
C -> cC | BD
D -> gD | C |
4
CONJUNTOS FIRST E FOLLOW
S Abd
A aA |
B bB | cA | AC
C cB |
5
CONJUNTOS FIRST E FOLLOW
S A | BC
A aAS | D
B bB | fAC |
C cC
D gD | C |
6
CONJUNTOS FIRST E FOLLOW
S aA | bB
A aA | BD
B bB | fAC |
C cC | Dd
D gD | C |
7
CONJUNTOS FIRST E FOLLOW
Conjunto Follow
Conjunto de terminais imediatamente seguintes ao
no-terminal analisado
8
CONJUNTOS FIRST E FOLLOW
Conjunto Follow
Possui um smbolo especial $, utilizado para indicar o
fim da rvore de derivao (no h mais derivaes
possveis). Lembra EOF
S E FIRST FOLLOW
E T E S {(, id} {$}
E {( , id} { ) , $}
E + T E |
E {+, } { ) , $}
T F T
T {( , id} {+ , ) , $}
T * F T | T {*, } {+, ) , $}
F ( E ) | id F {( , id} {+ , * , ) , $}
10