Apresente a Análise Preditiva Tabular da entrada abcdac sobre a gramática a seguir.
G = ({S, A, B, C}, {a, b, c, d}, P, S)
P = {S → ABC
A → aA | ε
B → bB | CdA
C → cC | ε}
Eliminação de Recursividade à Esquerda:
G = ({S, A, B, C}, {a, b, c, d}, P, S)
P = {S → ABC
A → aA | ε
B → bB | CdA
C → cC | ε}
Fatoração à Esquerda:
G = ({S, A, B, C}, {a, b, c, d}, P, S)
P = {S → ABC
A → aA | ε
B → bB | CdA
C → cC | ε}
Conjuntos FIRST(α) e FOLLOW(A):
FIRST(S) = {a, b, c, d}
FIRST(A) = {a, ε}
FIRST(B) = {b, c, d}
FIRST(C) = {c, ε}
FOLLOW(S) = {$}
FOLLOW(A) = {b, c, d, $}
FOLLOW(B) = {c, $}
FOLLOW(C) = {d, $}
Tabela de Análise Preditiva:
a | b | c | d | $ | |
---|---|---|---|---|---|
S | S → ABC | S → ABC | S → ABC | S → ABC | |
A | A → aA | A → ε | A → ε | A → ε | A → ε |
B | B → bB | B → CdA | B → CdA | ||
C | C → cC | C → ε | C → ε |
Analisador Preditivo Tabular:
Pilha | Entrada | Derivação |
---|---|---|
$ S | a b c d a c $ | S → ABC |
$ C B A | a b c d a c $ | A → aA |
$ C B A a | a b c d a c $ | |
$ C B A | b c d a c $ | A → ε |
$ C B | b c d a c $ | B → bB |
$ C B b | b c d a c $ | |
$ C B | c d a c $ | B → CdA |
$ C A d C | c d a c $ | C → cC |
$ C A d C c | c d a c $ | |
$ C A d C | d a c $ | C → ε |
$ C A d | d a c $ | |
$ C A | a c $ | A → aA |
$ C A a | a c $ | |
$ C A | c $ | A → ε |
$ C | c $ | C → cC |
$ C c | c $ | |
$ C | $ | C → ε |
$ | $ | aceita |