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 |