Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Apresente a Análise Preditiva Tabular da entrada (id + id) * (id + id) sobre a gramática a seguir.

G = ({A, B, C, D, E}, {id, +, *, (, )}, P, A)
P = {ACB
B → +CB | ε
CED
D → *ED | ε
E → (A) | id}
Tabela de análise preditiva da gramática G
 id+*()$
AACB  ACB  
B B → +CB  B → εB → ε
CCED  CED  
D D → εD → *ED D → εD → ε
EE → id  E → (A)  

 

Movimentos do analisador preditivo tabular para (id + id) * (id + id)
PilhaEntradaDerivação
$ A(id + id) * (id + id) $ACB
$ B C(id + id) * (id + id) $CED
$ B D E(id + id) * (id + id) $E → (A)
$ B D ) A ((id + id) * (id + id) $ 
$ B D ) Aid + id) * (id + id) $ACB
$ B D ) B Cid + id) * (id + id) $CED
$ B D ) B D Eid + id) * (id + id) $E → id
$ B D ) B D idid + id) * (id + id) $ 
$ B D ) B D+ id) * (id + id) $D → ε
$ B D ) B+ id) * (id + id) $B → +CB
$ B D ) B C ++ id) * (id + id) $ 
$ B D ) B Cid) * (id + id) $CED
$ B D ) B D Eid) * (id + id) $E → id
$ B D ) B D idid) * (id + id) $ 
$ B D ) B D) * (id + id) $D → ε
$ B D ) B) * (id + id) $B → ε
$ B D )) * (id + id) $ 
$ B D* (id + id) $D → *ED
$ B D E ** (id + id) $ 
$ B D E(id + id) $E → (A)
$ B D ) A ((id + id) $ 
$ B D ) Aid + id) $ACB
$ B D ) B Cid + id) $CED
$ B D ) B D Eid + id) $E → id
$ B D ) B D idid + id) $ 
$ B D ) B D+ id) $D → ε
$ B D ) B+ id) $B → +CB
$ B D ) B C ++ id) $ 
$ B D ) B Cid) $CED
$ B D ) B D Eid) $E → id
$ B D ) B D idid) $ 
$ B D ) B D) $D → ε
$ B D ) B) $B → ε
$ B D )) $ 
$ B D$D → ε
$ B$B → ε
$$aceita