Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Apresente a Análise de Precedência de Operadores, da entrada w + x * y - z / w sobre a gramática a seguir.

G = ({A, B, C, D, E}, {-, +, /, *, w, x, y, z}, P, A)
P = {AA-B | B
BB+C | C
CC/D | D
DD*E | E
E → w | x | y | z}

 

Tabela de precedência de operadores da gramática G
 -+/*wxyz$
-><<<<<<<>
+>><<<<<<>
/>>><<<<<>
*>>>><<<<>
w>>>>    >
x>>>>    >
y>>>>    >
z>>>>    >
$<<<<<<<<aceita
Movimentos do analisador de precedência de operadores para w + x * y - z / w
PilhaRelaçãoEntradaAçãoHandle
$<w + x * y - z / w $empilha w 
$ w>+ x * y - z / w $reduzE → w
$ A<+ x * y - z / w $empilha + 
$ A +<x * y - z / w $empilha x 
$ A + x>* y - z / w $reduzE → x
$ A + A<* y - z / w $empilha * 
$ A + A *<y - z / w $empilha y 
$ A + A * y>- z / w $reduzE → y
$ A + A * A>- z / w $reduzDD * E
$ A + A>- z / w $reduzBB + C
$ A<- z / w $empilha - 
$ A -<z / w $empilha z 
$ A - z>/ w $reduzE → z
$ A - A</ w $empilha / 
$ A - A /<w $empilha w 
$ A - A / w>$reduzE → w
$ A - A / A>$reduzCC / D
$ A - A>$reduzAA - B
$ Aaceita$