Apresente a Análise Preditiva Tabular, com recuperação de erros em modo pânico, da entrada z z y x / * - + sobre a gramática a seguir.
G = ({A, B, C}, {+, -, *, /, x, y, z}, P, A)
P = {A → AAB | C
B → + | - | * | /
C → x | y | z}
Eliminação de Recursividade à Esquerda:
G = ({A, B, C, D}, {+, -, *, /, x, y, z}, P, A)
P = {A → CD
D → ABD | ε
B → + | - | * | /
C → x | y | z}
Fatoração à Esquerda:
G = ({A, B, C, D}, {+, -, *, /, x, y, z}, P, A)
P = {A → CD
D → ABD | ε
B → + | - | * | /
C → x | y | z}
Conjuntos FIRST(α) e FOLLOW(A):
FIRST(A) = {x, y, z}
FIRST(D) = {x, y, z, ε}
FIRST(B) = {+, -, *, /}
FIRST(C) = {x, y, z}
FOLLOW(A) = {+, -, *, /, $}
FOLLOW(D) = {+, -, *, /, $}
FOLLOW(B) = {+, -, *, /, x, y, z, $}
FOLLOW(C) = {+, -, *, /, x, y, z, $}
Tabela de Análise Preditiva:
+ | - | * | / | x | y | z | $ | |
---|---|---|---|---|---|---|---|---|
A | sinc | sinc | sinc | sinc | A → CD | A → CD | A → CD | sinc |
D | D → ε | D → ε | D → ε | D → ε | D → ABD | D → ABD | D → ABD | D → ε |
B | B → + | B → - | B → * | B → / | sinc | sinc | sinc | sinc |
C | sinc | sinc | sinc | sinc | C → x | C → y | C → z | sinc |
Analisador Preditivo Tabular:
Pilha | Entrada | Derivação |
---|---|---|
$ A | z z y x / * - + $ | A → CD |
$ D C | z z y x / * - + $ | C → z |
$ D z | z z y x / * - + $ | |
$ D | z y x / * - + $ | D → ABD |
$ D B A | z y x / * - + $ | A → CD |
$ D B D C | z y x / * - + $ | C → z |
$ D B D z | z y x / * - + $ | |
$ D B D | y x / * - + $ | D → ABD |
$ D B D B A | y x / * - + $ | A → CD |
$ D B D B D C | y x / * - + $ | C → y |
$ D B D B D y | y x / * - + $ | |
$ D B D B D | x / * - + $ | D → ABD |
$ D B D B D B A | x / * - + $ | A → CD |
$ D B D B D B D C | x / * - + $ | C → x |
$ D B D B D B D x | x / * - + $ | |
$ D B D B D B D | / * - + $ | D → ε |
$ D B D B D B | / * - + $ | B → / |
$ D B D B D / | / * - + $ | |
$ D B D B D | * - + $ | D → ε |
$ D B D B | * - + $ | B → * |
$ D B D * | * - + $ | |
$ D B D | - + $ | D → ε |
$ D B | - + $ | B → - |
$ D - | - + $ | |
$ D | + $ | D → ε |
$ | + $ | erro |
$ | $ | aceita |