Apresente a Análise de Precedência de Operadores, da entrada w * (x + y) ^ z sobre a gramática a seguir.
G = ({A, B, C, D, E}, {-, +, /, *, ^, (, ), w, x, y, z}, P, A)
P = {A → A+B | A-B | B
B → B*C | B/C | C
C → C^D | D
D → (A) | 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| Pilha | Relação | Entrada | Ação | Handle |
|---|
| $ | < | w * (x + y) ^ z $ | empilha w | |
| $ w | > | * (x + y) ^ z $ | reduz | E → w |
| $ A | < | * (x + y) ^ z $ | empilha * | |
| $ A * | < | (x + y) ^ z $ | empilha ( | |
| $ A * ( | < | x + y) ^ z $ | empilha x | |
| $ A * ( x | > | + y) ^ z $ | reduz | E → x |
| $ A * ( A | < | + y) ^ z $ | empilha + | |
| $ A * ( A + | < | y) ^ z $ | empilha y | |
| $ A * ( A + y | > | ) ^ z $ | reduz | E → y |
| $ A * ( A + A | > | ) ^ z $ | reduz | A → A+B |
| $ A * ( A | = | ) ^ z $ | empilha ) | |
| $ A * ( A ) | > | ^ z $ | reduz | D → (A) |
| $ A * A | < | ^ z $ | empilha ^ | |
| $ A * A ^ | < | z $ | empilha z | |
| $ A * A ^ z | > | $ | reduz | E → z |
| $ A * A ^ A | > | $ | reduz | C → C^D |
| $ A * A | > | $ | reduz | B → B*C |
| $ A | aceita | $ | | |