Apresente a Análise Preditiva Tabular da entrada -1.2e3 sobre a gramática a seguir.
G = ({A, B, C, D, E, F}, {+, -, ., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, P, A)
P = {A → F B
B → D . D C | D . D | D . C | D . | . D C | . D | D C
C → e F D
D → D E | E
E → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
F → + | - | ε}Eliminação de Recursividade à Esquerda:
G = ({A, B, C, D, E, F, G}, {+, -, ., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, P, A)
P = {A → F B
B → D . D C | D . D | D . C | D . | . D C | . D | D C
C → e F D
D → E G
E → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
F → + | - | ε
G → E G | ε}Fatoração à Esquerda:
G = ({A, B, C, D, E, F, G, H, I, J, K}, {+, -, ., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}, P, A)
P = {A → F B
B → D H | . D I
C → e F D
D → E G
E → 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
F → + | - | ε
G → E G | ε
H → . J | C
I → C | ε
J → D K | C | ε
K → C | ε}Conjuntos FIRST(α) e FOLLOW(A):
FIRST(A) = {+, -, ., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(B) = {., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(C) = {e}
FIRST(D) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(E) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FIRST(F) = {+, -, ε}
FIRST(G) = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ε}
FIRST(H) = {., e}
FIRST(I) = {e, ε}
FIRST(J) = {e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, ε}
FIRST(K) = {e, ε}FOLLOW(A) = {$}
FOLLOW(B) = {$}
FOLLOW(C) = {$}
FOLLOW(D) = {., e, $}
FOLLOW(E) = {., e, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, $}
FOLLOW(F) = {., 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
FOLLOW(G) = {., e, $}
FOLLOW(H) = {$}
FOLLOW(I) = {$}
FOLLOW(J) = {$}
FOLLOW(K) = {$}Tabela de Análise Preditiva:
| + | - | . | e | 0 .. 9 | $ | |
|---|---|---|---|---|---|---|
| A | A → F B | A → F B | A → F B | A → F B | ||
| B | B → . D I | B → D H | ||||
| C | C → e F D | |||||
| D | D → E G | |||||
| E | E → 0 .. 9 | |||||
| F | F → + | F → - | F → ε | F → ε | ||
| G | G → ε | G → ε | G → E G | G → ε | ||
| H | H → . J | H → C | ||||
| I | I → C | I → ε | ||||
| J | J → C | J → D K | J → ε | |||
| K | K → C | K → ε |
Analisador Preditivo Tabular:
| Pilha | Entrada | Derivação |
|---|---|---|
| $ A | -1.2e3 $ | A → F B |
| $ B F | -1.2e3 $ | F → - |
| $ B - | -1.2e3 $ | |
| $ B | 1.2e3 $ | B → D H |
| $ H D | 1.2e3 $ | D → E G |
| $ H G E | 1.2e3 $ | E → 1 |
| $ H G 1 | 1.2e3 $ | |
| $ H G | .2e3 $ | G → ε |
| $ H | .2e3 $ | H → . J |
| $ J . | .2e3 $ | |
| $ J | 2e3 $ | J → D K |
| $ K D | 2e3 $ | D → E G |
| $ K G E | 2e3 $ | E → 2 |
| $ K G 2 | 2e3 $ | |
| $ K G | e3 $ | G → ε |
| $ K | e3 $ | K → C |
| $ C | e3 $ | C → e F D |
| $ D F e | e3 $ | |
| $ D F | 3 $ | F → ε |
| $ D | 3 $ | D → E G |
| $ G E | 3 $ | E → 3 |
| $ G 3 | 3 $ | |
| $ G | $ | G → ε |
| $ | $ | aceita |