Apresente a Análise de Precedência de Operadores, da entrada .not.(w.ne.x.or.y.le.z).and.x.lt.z.or..not.y.eq.w sobre a gramática a seguir.
G = ({A, B, C, D, E}, {.or., .and., .not., .eq., .ne., .lt., .le., .gt., .ge., (, ), w, x, y, z}, P, A)
P = {A → A.or.B | B
B → B.and.C | C
C → .not.D | D
D → (A) | E.eq.E | E.eq.E | E.ne.E | E.lt.E | E.le.E | E.gt.E | E.ge.E
E → w | x | y | z }Tabela de precedência de operadores da gramática G| | .or. | .and. | .not. | .eq. | .ne. | .lt. | .le. | .gt. | .ge. | ( | ) | w | x | y | z | $ |
|---|
| .or. | > | < | < | < | < | < | < | < | < | < | > | < | < | < | < | > |
| .and. | > | > | < | < | < | < | < | < | < | < | > | < | < | < | < | > |
| .not. | > | > | > | < | < | < | < | < | < | < | > | < | < | < | < | > |
| .eq. | > | > | > | > | > | > | > | > | > | < | > | < | < | < | < | > |
| .ne. | > | > | > | > | > | > | > | > | > | < | > | < | < | < | < | > |
| .lt. | > | > | > | > | > | > | > | > | > | < | > | < | < | < | < | > |
| .le. | > | > | > | > | > | > | > | > | > | < | > | < | < | < | < | > |
| .gt. | > | > | > | > | > | > | > | > | > | < | > | < | < | < | < | > |
| .ge. | > | > | > | > | > | > | > | > | > | < | > | < | < | < | < | > |
| ( | < | < | < | < | < | < | < | < | < | < | = | < | < | < | < | |
| ) | > | > | > | > | > | > | > | > | > | | > | | | | | > |
| w | > | > | > | > | > | > | > | > | > | | > | | | | | > |
| x | > | > | > | > | > | > | > | > | > | | > | | | | | > |
| y | > | > | > | > | > | > | > | > | > | | > | | | | | > |
| z | > | > | > | > | > | > | > | > | > | | > | | | | | > |
| $ | < | < | < | < | < | < | < | < | < | < | | < | < | < | < | aceita |
Movimentos do analisador de precedência de operadores para .not.(w.ne.x.or.y.le.z).and.x.lt.z.or..not.y.eq.w| Pilha | Relação | Entrada | Ação | Handle |
|---|
| $ | < | .not.(w.ne.x.or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | empilha .not. | |
| $ .not. | < | (w.ne.x.or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | empilha ( | |
| $ .not.( | < | w.ne.x.or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | empilha w | |
| $ .not.(w | > | .ne.x.or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | reduz | E → w |
| $ .not.(A | < | .ne.x.or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | empilha .ne. | |
| $ .not.(A.ne. | < | x.or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | empilha x | |
| $ .not.(A.ne.x | > | .or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | reduz | E → x |
| $ .not.(A.ne.A | > | .or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | reduz | D → E.ne.E |
| $ .not.(A | < | .or.y.le.z).and.x.lt.z.or..not.y.eq.w $ | empilha .or. | |
| $ .not.(A.or. | < | y.le.z).and.x.lt.z.or..not.y.eq.w $ | empilha y | |
| $ .not.(A.or.y | > | .le.z).and.x.lt.z.or..not.y.eq.w $ | reduz | E → y |
| $ .not.(A.or.A | < | .le.z).and.x.lt.z.or..not.y.eq.w $ | empilha .le. | |
| $ .not.(A.or.A.le. | < | z).and.x.lt.z.or..not.y.eq.w $ | empilha z | |
| $ .not.(A.or.A.le.z | > | ).and.x.lt.z.or..not.y.eq.w $ | reduz | E → z |
| $ .not.(A.or.A.le.A | > | ).and.x.lt.z.or..not.y.eq.w $ | reduz | D → E.le.E |
| $ .not.(A.or.A | > | ).and.x.lt.z.or..not.y.eq.w $ | reduz | A → A.or.B |
| $ .not.(A | = | ).and.x.lt.z.or..not.y.eq.w $ | empilha ) | |
| $ .not.(A) | > | .and.x.lt.z.or..not.y.eq.w $ | reduz | D → (A) |
| $ .not.A | > | .and.x.lt.z.or..not.y.eq.w $ | reduz | C → .not.D |
| $ A | < | .and.x.lt.z.or..not.y.eq.w $ | empilha .and. | |
| $ A.and. | < | x.lt.z.or..not.y.eq.w $ | empilha x | |
| $ A.and.x | > | .lt.z.or..not.y.eq.w $ | reduz | E → x |
| $ A.and.A | < | .lt.z.or..not.y.eq.w $ | empilha .lt. | |
| $ A.and.A.lt. | < | z.or..not.y.eq.w $ | empilha .lt. | |
| $ A.and.A.lt.z | > | .or..not.y.eq.w $ | reduz | E → z |
| $ A.and.A.lt.A | > | .or..not.y.eq.w $ | reduz | D → E.lt.E |
| $ A.and.A | > | .or..not.y.eq.w $ | reduz | B → B.and.C |
| $ A | < | .or..not.y.eq.w $ | empilha .or. | |
| $ A.or. | < | .not.y.eq.w $ | empilha .not. | |
| $ A.or..not. | < | y.eq.w $ | empilha y | |
| $ A.or..not.y | > | .eq.w $ | reduz | E → y |
| $ A.or..not.A | < | .eq.w $ | empilha .eq. | |
| $ A.or..not.A.eq. | < | w $ | empilha w | |
| $ A.or..not.A.eq.w | > | $ | reduz | E → w |
| $ A.or..not.A.eq.A | > | $ | reduz | D → E.eq.E |
| $ A.or..not.A | > | $ | reduz | C → .not.D |
| $ A.or.A | > | $ | reduz | A → A.or.B |
| $ A | aceita | $ | | |