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 = {S → A)
A → CB
B → ;XB | ε
C → Y(X
X → e
Y → a}
Eliminação de Recursividade à Esquerda:
G = ({S, A, B, C, X, Y}, {a, e, (, ), ;}, P, S)
P = {S → A)
A → CB
B → ;XB | ε
C → Y(X
X → e
Y → a}
Fatoração à Esquerda:
G = ({S, A, B, C, X, Y}, {a, e, (, ), ;}, P, S)
P = {S → A)
A → CB
B → ;XB | ε
C → Y(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:
a | e | ( | ) | ; | $ | |
---|---|---|---|---|---|---|
S | S → A) | |||||
A | A → CB | |||||
B | B → ε | B → ;XB | ||||
C | C → Y(X | |||||
X | X → e | |||||
Y | Y → a |
Analisador Preditivo Tabular:
Pilha | Entrada | Derivação |
---|---|---|
$ S | a(e;e) $ | S → A) |
$ ) A | a(e;e) $ | A → CB |
$ ) B C | a(e;e) $ | C → Y(X |
$ ) B X ( Y | a(e;e) $ | Y → a |
$ ) B X ( a | a(e;e) $ | |
$ ) B X ( | (e;e) $ | |
$ ) B X | e;e) $ | X → e |
$ ) B e | e;e) $ | |
$ ) B | ;e) $ | B → ;XB |
$ ) B X ; | ;e) $ | |
$ ) B X | e) $ | X → e |
$ ) B e | e) $ | |
$ ) B | ) $ | B → ε |
$ ) | ) $ | |
$ | $ | aceita |