Apresente a Análise de Precedência de Operadores, da entrada (a + (b . c) + d) sobre a gramática a seguir.
G = ({A, B, C, D}, {a, b, c, d, +, ., (, )}, P, A)
P = {A → (B)
B → B+C | C
C → C.D | D
D → a | b | c | d | A}Tabela de precedência de operadores da gramática G| | a | b | c | d | + | . | ( | ) | $ |
|---|
| a | | | | | > | > | | > | > |
| b | | | | | > | > | | > | > |
| c | | | | | > | > | | > | > |
| d | | | | | > | > | | > | > |
| + | < | < | < | < | > | < | < | > | > |
| . | < | < | < | < | > | > | < | > | > |
| ( | < | < | < | < | < | < | < | = | |
| ) | | | | | > | > | | > | > |
| $ | < | < | < | < | < | < | < | | aceita |
Movimentos do analisador de precedência de operadores para (a + (b . c) + d)| Pilha | Relação | Entrada | Ação | Handle |
|---|
| $ | < | (a + (b . c) + d) $ | empilha ( | |
| $ ( | < | a + (b . c) + d) $ | empilha a | |
| $ ( a | > | + (b . c) + d) $ | reduz | D → a |
| $ ( A | < | + (b . c) + d) $ | empilha + | |
| $ ( A + | < | (b . c) + d) $ | empilha ( | |
| $ ( A + ( | < | b . c) + d) $ | empilha b | |
| $ ( A + ( b | > | . c) + d) $ | reduz | D → b |
| $ ( A + ( A | < | . c) + d) $ | empilha . | |
| $ ( A + ( A . | < | c) + d) $ | empilha c | |
| $ ( A + ( A . c | > | ) + d) $ | reduz | D → c |
| $ ( A + ( A . A | > | ) + d) $ | reduz | C → C.D |
| $ ( A + ( A | = | ) + d) $ | empilha ) | |
| $ ( A + ( A ) | > | + d) $ | reduz | A → (B) |
| $ ( A + A | > | + d) $ | reduz | B → B+C |
| $ ( A | < | + d) $ | empilha + | |
| $ ( A + | < | d) $ | empilha d | |
| $ ( A + d | > | ) $ | reduz | D → d |
| $ ( A + A | > | ) $ | reduz | B → B+C |
| $ ( A | = | ) $ | empilha ) | |
| $ ( A ) | > | $ | reduz | A → (B) |
| $ A | aceita | $ | | |