Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Apresente a Análise de Precedência de Operadores, da entrada a AND NOT (b XOR c OR d) XOR e sobre a gramática a seguir.

G = ({A, B, C, D, E, F}, {OR, XOR, AND, NOT, (, ), a, b, c, d, e}, P, A)
P = {AB OR A | B
BC XOR B | C
CD AND C | D
D → NOT E | E
E → ( A ) | F
F → a | b | c | d | e}

 

Tabela de precedência de operadores da gramática G
 ORXORANDNOT()a..e$
OR><<<<><>
XOR>><<<><>
AND>>><<><>
NOT>>>><><>
(<<<<<=< 
)>>>> > >
a..e>>>> > >
$<<<<< <aceita
Movimentos do analisador de precedência de operadores para a AND NOT (b XOR c OR d) XOR e
PilhaRelaçãoEntradaAçãoHandle
$<a AND NOT (b XOR c OR d) XOR e $empilha a 
$ a>AND NOT (b XOR c OR d) XOR e $reduzF → a
$ A<AND NOT (b XOR c OR d) XOR e $empilha AND 
$ A AND<NOT (b XOR c OR d) XOR e $empilha NOT 
$ A AND NOT<(b XOR c OR d) XOR e $empilha ( 
$ A AND NOT (<b XOR c OR d) XOR e $empilha b 
$ A AND NOT ( b>XOR c OR d) XOR e $reduzF → b
$ A AND NOT ( A<XOR c OR d) XOR e $empilha XOR 
$ A AND NOT ( A XOR<c OR d) XOR e $empilha c 
$ A AND NOT ( A XOR c>OR d) XOR e $reduzF → c
$ A AND NOT ( A XOR A>OR d) XOR e $reduzBC XOR B
$ A AND NOT ( A<OR d) XOR e $empilha OR 
$ A AND NOT ( A OR<d) XOR e $empilha d 
$ A AND NOT ( A OR d>) XOR e $reduzF → d
$ A AND NOT ( A OR A>) XOR e $reduzAB OR A
$ A AND NOT ( A=) XOR e $empilha ) 
$ A AND NOT ( A )>XOR e $reduzE → ( A )
$ A AND NOT A>XOR e $reduzD → NOT E
$ A AND A>XOR e $reduzCD AND C
$ A<XOR e $empilha XOR 
$ A XOR<e $empilha e 
$ A XOR e>$reduzF → e
$ A XOR A>$reduzBC XOR B
$ Aaceita$