Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Apresente a Análise Preditiva Tabular da entrada a(e;e) sobre a gramática a seguir.

G = ({S, A, B, C, X, Y}, {a, e, (, ), ;}, P, S)
P = {SA)
ACB
B → ;XB | ε
CY(X
X → e
Y → a}

 

Eliminação de Recursividade à Esquerda:

G = ({S, A, B, C, X, Y}, {a, e, (, ), ;}, P, S)
P = {SA)
ACB
B → ;XB | ε
CY(X
X → e
Y → a}

Fatoração à Esquerda:

G = ({S, A, B, C, X, Y}, {a, e, (, ), ;}, P, S)
P = {SA)
ACB
B → ;XB | ε
CY(X
X → e
Y → a}

Conjuntos FIRST(α) e FOLLOW(A):

FIRST(S) = {a}
FIRST(A) = {a}
FIRST(B) = {;, ε}
FIRST(C) = {a}
FIRST(X) = {e}
FIRST(Y) = {a}
FOLLOW(S) = {$}
FOLLOW(A) = {)}
FOLLOW(B) = {)}
FOLLOW(C) = {), ;}
FOLLOW(X) = {), ;}
FOLLOW(Y) = {(}

Tabela de Análise Preditiva:

Tabela de análise preditiva da gramática G
 ae();$
SSA)     
AACB     
B   B → εB → ;XB 
CCY(X     
X X → e    
YY → a     

Analisador Preditivo Tabular:

Movimentos do analisador preditivo tabular para a(e;e)
PilhaEntradaDerivação
$ Sa(e;e) $SA)
$ ) Aa(e;e) $ACB
$ ) B Ca(e;e) $CY(X
$ ) B X ( Ya(e;e) $Y → a
$ ) B X ( aa(e;e) $ 
$ ) B X ((e;e) $ 
$ ) B Xe;e) $X → e
$ ) B ee;e) $ 
$ ) B;e) $B → ;XB
$ ) B X ;;e) $ 
$ ) B Xe) $X → e
$ ) B ee) $ 
$ ) B) $B → ε
$ )) $ 
$$aceita