Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Apresente a Análise de Precedência de Operadores, da entrada (id & (id v id) v id) sobre a gramática a seguir.

G = ({E, T, F}, {id, &, v, (, )}, P, E)
P = {EEvT | T
TT&F | F
F → (E) | id}

 

Tabela de precedência de operadores da gramática G
 idv&()$
id >> >>
v<><<>>
&<>><>>
(<<<<= 
) >> >>
$<<<< aceita
Movimentos do analisador de precedência de operadores para (id & (id v id) v id)
PilhaRelaçãoEntradaAçãoHandle
$<(id & (id v id) v id) $empilha ( 
$ (<id & (id v id) v id) $empilha id 
$ ( id>& (id v id) v id) $reduzF → id
$ ( E<& (id v id) v id) $empilha & 
$ ( E &<(id v id) v id) $empilha ( 
$ ( E & (<id v id) v id) $empilha id 
$ ( E & ( id>v id) v id) $reduzF → id
$ ( E & ( E<v id) v id) $empilha v 
$ ( E & ( E v<id) v id) $empilha id 
$ ( E & ( E v id>) v id) $reduzF → id
$ ( E & ( E v E>) v id) $reduzEEvT
$ ( E & ( E=) v id) $empilha ) 
$ ( E & ( E )>v id) $reduzF → (E)
$ ( E & E>v id) $reduzTT&F
$ ( E<v id) $empilha v 
$ ( E v<id) $empilha id 
$ ( E v id>) $reduzF → id
$ ( E v E>) $reduzEEvT
$ ( E=) $empilha ) 
$ ( E )>$reduzF → (E)
$ Eaceita$