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 = {A → B OR A | B
B → C XOR B | C
C → D AND C | D
D → NOT E | E
E → ( A ) | F
F → a | b | c | d | e}
OR | XOR | AND | NOT | ( | ) | a..e | $ | |
---|---|---|---|---|---|---|---|---|
OR | > | < | < | < | < | > | < | > |
XOR | > | > | < | < | < | > | < | > |
AND | > | > | > | < | < | > | < | > |
NOT | > | > | > | > | < | > | < | > |
( | < | < | < | < | < | = | < | |
) | > | > | > | > | > | > | ||
a..e | > | > | > | > | > | > | ||
$ | < | < | < | < | < | < | aceita |
Pilha | Relação | Entrada | Ação | Handle |
---|---|---|---|---|
$ | < | a AND NOT (b XOR c OR d) XOR e $ | empilha a | |
$ a | > | AND NOT (b XOR c OR d) XOR e $ | reduz | F → 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 $ | reduz | F → 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 $ | reduz | F → c |
$ A AND NOT ( A XOR A | > | OR d) XOR e $ | reduz | B → C 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 $ | reduz | F → d |
$ A AND NOT ( A OR A | > | ) XOR e $ | reduz | A → B OR A |
$ A AND NOT ( A | = | ) XOR e $ | empilha ) | |
$ A AND NOT ( A ) | > | XOR e $ | reduz | E → ( A ) |
$ A AND NOT A | > | XOR e $ | reduz | D → NOT E |
$ A AND A | > | XOR e $ | reduz | C → D AND C |
$ A | < | XOR e $ | empilha XOR | |
$ A XOR | < | e $ | empilha e | |
$ A XOR e | > | $ | reduz | F → e |
$ A XOR A | > | $ | reduz | B → C XOR B |
$ A | aceita | $ |