Apresente a Análise Preditiva Tabular da entrada id & (~id v ~id) sobre a gramática a seguir.
G = ({E, T, F}, {id, &, v, ~, (, )}, P, E)
P = {E → EvT | T
T → T&F | F
F → (E) | ~F | id}
Eliminação de Recursividade à Esquerda:
G = ({E, E₁, T, T₁, F}, {id, &, v, ~, (, )}, P, E)
P = {E → TE₁
E₁ → vTE₁ | ε
T → FT₁
T₁ → &FT₁ | ε
F → (E) | ~F | id}
Fatoração à Esquerda:
G = ({E, E₁, T, T₁, F}, {id, &, v, ~, (, )}, P, E)
P = {E → TE₁
E₁ → vTE₁ | ε
T → FT₁
T₁ → &FT₁ | ε
F → (E) | ~F | id}
Conjuntos FIRST(α) e FOLLOW(A):
FIRST(E) = {id, ~, (}
FIRST(E₁) = {v, ε}
FIRST(T) = {id, ~, (}
FIRST(T₁) = {&, ε}
FIRST(F) = {id, ~, (}
FOLLOW(E) = {), $}
FOLLOW(E₁) = {), $}
FOLLOW(T) = {v, ), $}
FOLLOW(T₁) = {v, ), $}
FOLLOW(F) = {&, v, ), $}
Tabela de Análise Preditiva:
id | v | & | ~ | ( | ) | $ | |
---|---|---|---|---|---|---|---|
E | E → TE₁ | E → TE₁ | E → TE₁ | ||||
E₁ | E₁ → vTE₁ | E₁ → ε | E₁ → ε | ||||
T | T → FT₁ | T → FT₁ | T → FT₁ | ||||
T₁ | T₁ → ε | T₁ → &FT₁ | T₁ → ε | T₁ → ε | |||
F | F → id | F → ~F | F → (E) |
Analisador Preditivo Tabular:
Pilha | Entrada | Derivação |
---|---|---|
$ E | id & (~id v ~id) $ | E → TE₁ |
$ E₁ T | id & (~id v ~id) $ | T → FT₁ |
$ E₁ T₁ F | id & (~id v ~id) $ | F → id |
$ E₁ T₁ id | id & (~id v ~id) $ | |
$ E₁ T₁ | & (~id v ~id) $ | T₁ → &FT₁ |
$ E₁ T₁ F & | & (~id v ~id) $ | |
$ E₁ T₁ F | (~id v ~id) $ | F → (E) |
$ E₁ T₁ ) E ( | (~id v ~id) $ | |
$ E₁ T₁ ) E | ~id v ~id) $ | E → TE₁ |
$ E₁ T₁ ) E₁ T | ~id v ~id) $ | T → FT₁ |
$ E₁ T₁ ) E₁ T₁ F | ~id v ~id) $ | F → ~F |
$ E₁ T₁ ) E₁ T₁ F ~ | ~id v ~id) $ | |
$ E₁ T₁ ) E₁ T₁ F | id v ~id) $ | F → id |
$ E₁ T₁ ) E₁ T₁ id | id v ~id) $ | |
$ E₁ T₁ ) E₁ T₁ | v ~id) $ | T₁ → ε |
$ E₁ T₁ ) E₁ | v ~id) $ | E₁ → vTE₁ |
$ E₁ T₁ ) E₁ T v | v ~id) $ | |
$ E₁ T₁ ) E₁ T | ~id) $ | T → FT₁ |
$ E₁ T₁ ) E₁ T₁ F | ~id) $ | F → ~F |
$ E₁ T₁ ) E₁ T₁ F ~ | ~id) $ | |
$ E₁ T₁ ) E₁ T₁ F | id) $ | F → id |
$ E₁ T₁ ) E₁ T₁ id | id) $ | |
$ E₁ T₁ ) E₁ T₁ | ) $ | T₁ → ε |
$ E₁ T₁ ) E₁ | ) $ | E₁ → ε |
$ E₁ T₁ ) | ) $ | |
$ E₁ T₁ | $ | T₁ → ε |
$ E₁ | $ | E₁ → ε |
$ | $ | aceita |