Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Apresente a Análise Preditiva Tabular da entrada -1.2e3 sobre a gramática a seguir.

G = ({A, B, C, D, E, F}, {+, -, ., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, P, A)
P = {A → F B
B → D . D C | D . D | D . C | D . | . D C | . D | D C
C → e F D
D → D E | E
E → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
F → + | - | ε}

Eliminação de Recursividade à Esquerda:

G = ({A, B, C, D, E, F, G}, {+, -, ., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, P, A)
P = {A → F B
B → D . D C | D . D | D . C | D . | . D C | . D | D C
C → e F D
D → E G
E → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
F → + | - | ε
G → E G | ε}

Fatoração à Esquerda:

G = ({A, B, C, D, E, F, G, H, I, J, K}, {+, -, ., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, P, A)
P = {A → F B
B → D H | . D I
C → e F D
D → E G
E → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
F → + | - | ε
G → E G | ε
H → . J | C
I → C | ε
J → D K | C | ε
K → C | ε}

Conjuntos FIRST(α) e FOLLOW(A):

FIRST(A) = {+, -, ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(B) = {., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(C) = {e}
FIRST(D) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(E) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(F) = {+, -, ε}
FIRST(G) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ε}
FIRST(H) = {., e}
FIRST(I) = {e, ε}
FIRST(J) = {e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ε}
FIRST(K) = {e, ε}
FOLLOW(A) = {$}
FOLLOW(B) = {$}
FOLLOW(C) = {$}
FOLLOW(D) = {., e, $}
FOLLOW(E) = {., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $}
FOLLOW(F) = {., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FOLLOW(G) = {., e, $}
FOLLOW(H) = {$}
FOLLOW(I) = {$}
FOLLOW(J) = {$}
FOLLOW(K) = {$}

Tabela de Análise Preditiva:

Tabela de análise preditiva da gramática G
 +-.e0 .. 9$
AA → F BA → F BA → F B A → F B 
B  B → . D I B → D H 
C   C → e F D  
D    D → E G 
E    E → 0 .. 9 
FF → +F → -F → ε F → ε 
G  G → εG → εG → E GG → ε
H  H → . JH → C  
I   I → C I → ε
J   J → CJ → D KJ → ε
K   K → C K → ε

Analisador Preditivo Tabular:

Movimentos do analisador preditivo tabular para -1.2e3
PilhaEntradaDerivação
$ A-1.2e3 $A → F B
$ B F-1.2e3 $F → -
$ B --1.2e3 $ 
$ B1.2e3 $B → D H
$ H D1.2e3 $D → E G
$ H G E1.2e3 $E → 1
$ H G 11.2e3 $ 
$ H G.2e3 $G → ε
$ H.2e3 $H → . J
$ J ..2e3 $ 
$ J2e3 $J → D K
$ K D2e3 $D → E G
$ K G E2e3 $E → 2
$ K G 22e3 $ 
$ K Ge3 $G → ε
$ Ke3 $K → C
$ Ce3 $C → e F D
$ D F ee3 $ 
$ D F3 $F → ε
$ D3 $D → E G
$ G E3 $E → 3
$ G 33 $ 
$ G$G → ε
$$aceita