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