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 = {A → A-B | B
B → B+C | C
C → C/D | D
D → D*E | E
E → w | x | y | z}Tabela de precedência de operadores da gramática G| | - | + | / | * | w | x | y | z | $ |
|---|
| - | > | < | < | < | < | < | < | < | > |
|---|
| + | > | > | < | < | < | < | < | < | > |
|---|
| / | > | > | > | < | < | < | < | < | > |
|---|
| * | > | > | > | > | < | < | < | < | > |
|---|
| w | > | > | > | > | | | | | > |
|---|
| x | > | > | > | > | | | | | > |
|---|
| y | > | > | > | > | | | | | > |
|---|
| z | > | > | > | > | | | | | > |
|---|
| $ | < | < | < | < | < | < | < | < | aceita |
|---|
Movimentos do analisador de precedência de operadores para w + x * y - z / w| Pilha | Relação | Entrada | Ação | Handle |
|---|
| $ | < | w + x * y - z / w $ | empilha w | |
| $ w | > | + x * y - z / w $ | reduz | E → w |
| $ A | < | + x * y - z / w $ | empilha + | |
| $ A + | < | x * y - z / w $ | empilha x | |
| $ A + x | > | * y - z / w $ | reduz | E → x |
| $ A + A | < | * y - z / w $ | empilha * | |
| $ A + A * | < | y - z / w $ | empilha y | |
| $ A + A * y | > | - z / w $ | reduz | E → y |
| $ A + A * A | > | - z / w $ | reduz | D → D * E |
| $ A + A | > | - z / w $ | reduz | B → B + C |
| $ A | < | - z / w $ | empilha - | |
| $ A - | < | z / w $ | empilha z | |
| $ A - z | > | / w $ | reduz | E → z |
| $ A - A | < | / w $ | empilha / | |
| $ A - A / | < | w $ | empilha w | |
| $ A - A / w | > | $ | reduz | E → w |
| $ A - A / A | > | $ | reduz | C → C / D |
| $ A - A | > | $ | reduz | A → A - B |
| $ A | aceita | $ | | |