Created by PLY version 3.11 (http://www.dabeaz.com/ply) Grammar Rule 0 S' -> programa Rule 1 programa -> program id V F B end program Rule 2 V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 Rule 3 V -> Rule 4 Rid -> id Rule 5 Rid -> Rid coma id Rule 6 Tipo -> integer Rule 7 Tipo -> real Rule 8 Dim -> openBra int action_30 closedBra Rule 9 Dim -> openBra int action_30 closedBra openBra int action_31 closedBra Rule 10 Dim -> Rule 11 F -> F subroutine id B end subroutine Rule 12 F -> Rule 13 B -> B S Rule 14 B -> Rule 15 S -> Dimensional action_7 equals EA action_8 Rule 16 S -> id parens Rule 17 S -> read RDimensional Rule 18 S -> print RDimOrString Rule 19 S -> if action_16 Relif ElseOrEmpty end if action_20 Rule 20 S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do Rule 21 S -> do then action_21 B action_22 end do Rule 22 S -> swap Dimensional coma Dimensional Rule 23 S -> exit action_23 Rule 24 S -> id openParen closedParen Rule 25 Dimensional -> id DimensionsOrEmpty Rule 26 DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen Rule 27 DimensionsOrEmpty -> Rule 28 ComaEAOrEmpty -> coma EA action_setDim2 Rule 29 ComaEAOrEmpty -> Rule 30 RDimensional -> Dimensional Rule 31 RDimensional -> RDimensional coma Dimensional Rule 32 RDimOrString -> DimOrString Rule 33 RDimOrString -> RDimOrString coma DimOrString Rule 34 DimOrString -> Dimensional Rule 35 DimOrString -> string Rule 36 Relif -> openParen EL closedParen action_17 then B Rule 37 Relif -> Relif elif action_18 openParen EL closedParen action_17 then B Rule 38 ElseOrEmpty -> else action_19 B Rule 39 ElseOrEmpty -> Rule 40 IntOrEmpty -> coma int action_28 Rule 41 IntOrEmpty -> action_27 Rule 42 EA -> MultDiv Rule 43 EA -> EA SumOrSub action_3 MultDiv action_4 Rule 44 SumOrSub -> plus Rule 45 SumOrSub -> minus Rule 46 MultDiv -> EAParens Rule 47 MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 Rule 48 MDSymbols -> mul Rule 49 MDSymbols -> div Rule 50 EAParens -> EItem Rule 51 EAParens -> openParen EA closedParen Rule 52 EL -> AND Rule 53 EL -> EL or action_10 AND action_9 Rule 54 AND -> Equality Rule 55 AND -> AND and action_12 Equality action_11 Rule 56 Equality -> EItem EQSymbols action_13 EItem action_14 Rule 57 Equality -> openParen EL closedParen Rule 58 Equality -> not EL action_15 Rule 59 EItem -> Dimensional action_1 Rule 60 EItem -> int action_2 Rule 61 EItem -> rea action_2_rea Rule 62 EQSymbols -> less Rule 63 EQSymbols -> more Rule 64 EQSymbols -> doubleEquals Rule 65 EQSymbols -> notEquals Rule 66 EQSymbols -> lessEquals Rule 67 EQSymbols -> moreEquals Rule 68 action_addSymbols -> Rule 69 action_1 -> Rule 70 action_2 -> Rule 71 action_2_rea -> Rule 72 action_3 -> Rule 73 action_4 -> Rule 74 action_5 -> Rule 75 action_6 -> Rule 76 action_7 -> Rule 77 action_8 -> Rule 78 action_9 -> Rule 79 action_10 -> Rule 80 action_11 -> Rule 81 action_12 -> Rule 82 action_13 -> Rule 83 action_14 -> Rule 84 action_15 -> Rule 85 action_16 -> Rule 86 action_17 -> Rule 87 action_18 -> Rule 88 action_19 -> Rule 89 action_20 -> Rule 90 action_21 -> Rule 91 action_22 -> Rule 92 action_23 -> Rule 93 action_24 -> Rule 94 action_25 -> Rule 95 action_26 -> Rule 96 action_27 -> Rule 97 action_28 -> Rule 98 action_29 -> Rule 99 action_30 -> Rule 100 action_31 -> Rule 101 action_32 -> Rule 102 action_setDim1 -> Rule 103 action_setDim2 -> Terminals, with rules where they appear and : 55 closedBra : 8 9 9 closedParen : 24 26 36 37 51 57 coma : 5 20 22 28 31 33 40 div : 49 do : 20 20 21 21 doubleColon : 2 doubleEquals : 64 elif : 37 else : 38 end : 1 11 19 20 21 equals : 15 20 error : exit : 23 id : 1 4 5 11 16 20 24 25 if : 19 19 int : 8 9 9 40 60 integer : 6 less : 62 lessEquals : 66 minus : 45 more : 63 moreEquals : 67 mul : 48 not : 58 notEquals : 65 openBra : 8 9 9 openParen : 24 26 36 37 51 57 or : 53 parens : 16 plus : 44 print : 18 program : 1 1 rea : 61 read : 17 real : 7 string : 35 subroutine : 11 11 swap : 22 then : 20 21 36 37 Nonterminals, with rules where they appear AND : 52 53 55 B : 1 11 13 20 21 36 37 38 ComaEAOrEmpty : 26 Dim : 2 DimOrString : 32 33 Dimensional : 15 22 22 30 31 34 59 DimensionsOrEmpty : 25 EA : 15 20 20 26 28 43 51 EAParens : 46 47 EItem : 50 56 56 EL : 36 37 53 57 58 EQSymbols : 56 ElseOrEmpty : 19 Equality : 54 55 F : 1 11 IntOrEmpty : 20 MDSymbols : 47 MultDiv : 42 43 47 RDimOrString : 18 33 RDimensional : 17 31 Relif : 19 37 Rid : 2 5 S : 13 SumOrSub : 43 Tipo : 2 V : 1 2 action_1 : 59 action_10 : 53 action_11 : 55 action_12 : 55 action_13 : 56 action_14 : 56 action_15 : 58 action_16 : 19 action_17 : 36 37 action_18 : 37 action_19 : 38 action_2 : 60 action_20 : 19 action_21 : 21 action_22 : 21 action_23 : 23 action_24 : 20 action_25 : 20 action_26 : 20 action_27 : 41 action_28 : 40 action_29 : 20 action_2_rea : 61 action_3 : 43 action_30 : 8 9 action_31 : 9 action_32 : 2 action_4 : 43 action_5 : 47 action_6 : 47 action_7 : 15 action_8 : 15 action_9 : 53 action_addSymbols : 2 action_setDim1 : 26 action_setDim2 : 28 programa : 0 Parsing method: LALR state 0 (0) S' -> . programa (1) programa -> . program id V F B end program program shift and go to state 2 programa shift and go to state 1 state 1 (0) S' -> programa . state 2 (1) programa -> program . id V F B end program id shift and go to state 3 state 3 (1) programa -> program id . V F B end program (2) V -> . V Tipo Dim doubleColon Rid action_addSymbols action_32 (3) V -> . integer reduce using rule 3 (V -> .) real reduce using rule 3 (V -> .) subroutine reduce using rule 3 (V -> .) end reduce using rule 3 (V -> .) id reduce using rule 3 (V -> .) read reduce using rule 3 (V -> .) print reduce using rule 3 (V -> .) if reduce using rule 3 (V -> .) do reduce using rule 3 (V -> .) swap reduce using rule 3 (V -> .) exit reduce using rule 3 (V -> .) V shift and go to state 4 state 4 (1) programa -> program id V . F B end program (2) V -> V . Tipo Dim doubleColon Rid action_addSymbols action_32 (11) F -> . F subroutine id B end subroutine (12) F -> . (6) Tipo -> . integer (7) Tipo -> . real subroutine reduce using rule 12 (F -> .) end reduce using rule 12 (F -> .) id reduce using rule 12 (F -> .) read reduce using rule 12 (F -> .) print reduce using rule 12 (F -> .) if reduce using rule 12 (F -> .) do reduce using rule 12 (F -> .) swap reduce using rule 12 (F -> .) exit reduce using rule 12 (F -> .) integer shift and go to state 7 real shift and go to state 8 F shift and go to state 5 Tipo shift and go to state 6 state 5 (1) programa -> program id V F . B end program (11) F -> F . subroutine id B end subroutine (13) B -> . B S (14) B -> . subroutine shift and go to state 10 end reduce using rule 14 (B -> .) id reduce using rule 14 (B -> .) read reduce using rule 14 (B -> .) print reduce using rule 14 (B -> .) if reduce using rule 14 (B -> .) do reduce using rule 14 (B -> .) swap reduce using rule 14 (B -> .) exit reduce using rule 14 (B -> .) B shift and go to state 9 state 6 (2) V -> V Tipo . Dim doubleColon Rid action_addSymbols action_32 (8) Dim -> . openBra int action_30 closedBra (9) Dim -> . openBra int action_30 closedBra openBra int action_31 closedBra (10) Dim -> . openBra shift and go to state 12 doubleColon reduce using rule 10 (Dim -> .) Dim shift and go to state 11 state 7 (6) Tipo -> integer . openBra reduce using rule 6 (Tipo -> integer .) doubleColon reduce using rule 6 (Tipo -> integer .) state 8 (7) Tipo -> real . openBra reduce using rule 7 (Tipo -> real .) doubleColon reduce using rule 7 (Tipo -> real .) state 9 (1) programa -> program id V F B . end program (13) B -> B . S (15) S -> . Dimensional action_7 equals EA action_8 (16) S -> . id parens (17) S -> . read RDimensional (18) S -> . print RDimOrString (19) S -> . if action_16 Relif ElseOrEmpty end if action_20 (20) S -> . do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> . do then action_21 B action_22 end do (22) S -> . swap Dimensional coma Dimensional (23) S -> . exit action_23 (24) S -> . id openParen closedParen (25) Dimensional -> . id DimensionsOrEmpty end shift and go to state 14 id shift and go to state 13 read shift and go to state 17 print shift and go to state 18 if shift and go to state 19 do shift and go to state 20 swap shift and go to state 21 exit shift and go to state 22 S shift and go to state 15 Dimensional shift and go to state 16 state 10 (11) F -> F subroutine . id B end subroutine id shift and go to state 23 state 11 (2) V -> V Tipo Dim . doubleColon Rid action_addSymbols action_32 doubleColon shift and go to state 24 state 12 (8) Dim -> openBra . int action_30 closedBra (9) Dim -> openBra . int action_30 closedBra openBra int action_31 closedBra int shift and go to state 25 state 13 (16) S -> id . parens (24) S -> id . openParen closedParen (25) Dimensional -> id . DimensionsOrEmpty (26) DimensionsOrEmpty -> . openParen EA action_setDim1 ComaEAOrEmpty closedParen (27) DimensionsOrEmpty -> . parens shift and go to state 26 openParen shift and go to state 27 equals reduce using rule 27 (DimensionsOrEmpty -> .) DimensionsOrEmpty shift and go to state 28 state 14 (1) programa -> program id V F B end . program program shift and go to state 29 state 15 (13) B -> B S . end reduce using rule 13 (B -> B S .) id reduce using rule 13 (B -> B S .) read reduce using rule 13 (B -> B S .) print reduce using rule 13 (B -> B S .) if reduce using rule 13 (B -> B S .) do reduce using rule 13 (B -> B S .) swap reduce using rule 13 (B -> B S .) exit reduce using rule 13 (B -> B S .) elif reduce using rule 13 (B -> B S .) else reduce using rule 13 (B -> B S .) state 16 (15) S -> Dimensional . action_7 equals EA action_8 (76) action_7 -> . equals reduce using rule 76 (action_7 -> .) action_7 shift and go to state 30 state 17 (17) S -> read . RDimensional (30) RDimensional -> . Dimensional (31) RDimensional -> . RDimensional coma Dimensional (25) Dimensional -> . id DimensionsOrEmpty id shift and go to state 33 RDimensional shift and go to state 31 Dimensional shift and go to state 32 state 18 (18) S -> print . RDimOrString (32) RDimOrString -> . DimOrString (33) RDimOrString -> . RDimOrString coma DimOrString (34) DimOrString -> . Dimensional (35) DimOrString -> . string (25) Dimensional -> . id DimensionsOrEmpty string shift and go to state 37 id shift and go to state 33 RDimOrString shift and go to state 34 DimOrString shift and go to state 35 Dimensional shift and go to state 36 state 19 (19) S -> if . action_16 Relif ElseOrEmpty end if action_20 (85) action_16 -> . openParen reduce using rule 85 (action_16 -> .) action_16 shift and go to state 38 state 20 (20) S -> do . id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> do . then action_21 B action_22 end do id shift and go to state 39 then shift and go to state 40 state 21 (22) S -> swap . Dimensional coma Dimensional (25) Dimensional -> . id DimensionsOrEmpty id shift and go to state 33 Dimensional shift and go to state 41 state 22 (23) S -> exit . action_23 (92) action_23 -> . end reduce using rule 92 (action_23 -> .) id reduce using rule 92 (action_23 -> .) read reduce using rule 92 (action_23 -> .) print reduce using rule 92 (action_23 -> .) if reduce using rule 92 (action_23 -> .) do reduce using rule 92 (action_23 -> .) swap reduce using rule 92 (action_23 -> .) exit reduce using rule 92 (action_23 -> .) elif reduce using rule 92 (action_23 -> .) else reduce using rule 92 (action_23 -> .) action_23 shift and go to state 42 state 23 (11) F -> F subroutine id . B end subroutine (13) B -> . B S (14) B -> . end reduce using rule 14 (B -> .) id reduce using rule 14 (B -> .) read reduce using rule 14 (B -> .) print reduce using rule 14 (B -> .) if reduce using rule 14 (B -> .) do reduce using rule 14 (B -> .) swap reduce using rule 14 (B -> .) exit reduce using rule 14 (B -> .) B shift and go to state 43 state 24 (2) V -> V Tipo Dim doubleColon . Rid action_addSymbols action_32 (4) Rid -> . id (5) Rid -> . Rid coma id id shift and go to state 45 Rid shift and go to state 44 state 25 (8) Dim -> openBra int . action_30 closedBra (9) Dim -> openBra int . action_30 closedBra openBra int action_31 closedBra (99) action_30 -> . closedBra reduce using rule 99 (action_30 -> .) action_30 shift and go to state 46 state 26 (16) S -> id parens . end reduce using rule 16 (S -> id parens .) id reduce using rule 16 (S -> id parens .) read reduce using rule 16 (S -> id parens .) print reduce using rule 16 (S -> id parens .) if reduce using rule 16 (S -> id parens .) do reduce using rule 16 (S -> id parens .) swap reduce using rule 16 (S -> id parens .) exit reduce using rule 16 (S -> id parens .) elif reduce using rule 16 (S -> id parens .) else reduce using rule 16 (S -> id parens .) state 27 (24) S -> id openParen . closedParen (26) DimensionsOrEmpty -> openParen . EA action_setDim1 ComaEAOrEmpty closedParen (42) EA -> . MultDiv (43) EA -> . EA SumOrSub action_3 MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty closedParen shift and go to state 48 openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EA shift and go to state 49 MultDiv shift and go to state 50 EAParens shift and go to state 51 EItem shift and go to state 52 Dimensional shift and go to state 53 state 28 (25) Dimensional -> id DimensionsOrEmpty . equals reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) coma reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) end reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) id reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) read reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) print reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) if reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) do reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) swap reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) exit reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) elif reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) else reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) mul reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) div reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) plus reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) minus reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) closedParen reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) less reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) more reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) doubleEquals reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) notEquals reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) lessEquals reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) moreEquals reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) then reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) and reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) or reduce using rule 25 (Dimensional -> id DimensionsOrEmpty .) state 29 (1) programa -> program id V F B end program . $end reduce using rule 1 (programa -> program id V F B end program .) state 30 (15) S -> Dimensional action_7 . equals EA action_8 equals shift and go to state 56 state 31 (17) S -> read RDimensional . (31) RDimensional -> RDimensional . coma Dimensional end reduce using rule 17 (S -> read RDimensional .) id reduce using rule 17 (S -> read RDimensional .) read reduce using rule 17 (S -> read RDimensional .) print reduce using rule 17 (S -> read RDimensional .) if reduce using rule 17 (S -> read RDimensional .) do reduce using rule 17 (S -> read RDimensional .) swap reduce using rule 17 (S -> read RDimensional .) exit reduce using rule 17 (S -> read RDimensional .) elif reduce using rule 17 (S -> read RDimensional .) else reduce using rule 17 (S -> read RDimensional .) coma shift and go to state 57 state 32 (30) RDimensional -> Dimensional . coma reduce using rule 30 (RDimensional -> Dimensional .) end reduce using rule 30 (RDimensional -> Dimensional .) id reduce using rule 30 (RDimensional -> Dimensional .) read reduce using rule 30 (RDimensional -> Dimensional .) print reduce using rule 30 (RDimensional -> Dimensional .) if reduce using rule 30 (RDimensional -> Dimensional .) do reduce using rule 30 (RDimensional -> Dimensional .) swap reduce using rule 30 (RDimensional -> Dimensional .) exit reduce using rule 30 (RDimensional -> Dimensional .) elif reduce using rule 30 (RDimensional -> Dimensional .) else reduce using rule 30 (RDimensional -> Dimensional .) state 33 (25) Dimensional -> id . DimensionsOrEmpty (26) DimensionsOrEmpty -> . openParen EA action_setDim1 ComaEAOrEmpty closedParen (27) DimensionsOrEmpty -> . openParen shift and go to state 58 coma reduce using rule 27 (DimensionsOrEmpty -> .) end reduce using rule 27 (DimensionsOrEmpty -> .) id reduce using rule 27 (DimensionsOrEmpty -> .) read reduce using rule 27 (DimensionsOrEmpty -> .) print reduce using rule 27 (DimensionsOrEmpty -> .) if reduce using rule 27 (DimensionsOrEmpty -> .) do reduce using rule 27 (DimensionsOrEmpty -> .) swap reduce using rule 27 (DimensionsOrEmpty -> .) exit reduce using rule 27 (DimensionsOrEmpty -> .) elif reduce using rule 27 (DimensionsOrEmpty -> .) else reduce using rule 27 (DimensionsOrEmpty -> .) mul reduce using rule 27 (DimensionsOrEmpty -> .) div reduce using rule 27 (DimensionsOrEmpty -> .) plus reduce using rule 27 (DimensionsOrEmpty -> .) minus reduce using rule 27 (DimensionsOrEmpty -> .) closedParen reduce using rule 27 (DimensionsOrEmpty -> .) less reduce using rule 27 (DimensionsOrEmpty -> .) more reduce using rule 27 (DimensionsOrEmpty -> .) doubleEquals reduce using rule 27 (DimensionsOrEmpty -> .) notEquals reduce using rule 27 (DimensionsOrEmpty -> .) lessEquals reduce using rule 27 (DimensionsOrEmpty -> .) moreEquals reduce using rule 27 (DimensionsOrEmpty -> .) then reduce using rule 27 (DimensionsOrEmpty -> .) and reduce using rule 27 (DimensionsOrEmpty -> .) or reduce using rule 27 (DimensionsOrEmpty -> .) DimensionsOrEmpty shift and go to state 28 state 34 (18) S -> print RDimOrString . (33) RDimOrString -> RDimOrString . coma DimOrString end reduce using rule 18 (S -> print RDimOrString .) id reduce using rule 18 (S -> print RDimOrString .) read reduce using rule 18 (S -> print RDimOrString .) print reduce using rule 18 (S -> print RDimOrString .) if reduce using rule 18 (S -> print RDimOrString .) do reduce using rule 18 (S -> print RDimOrString .) swap reduce using rule 18 (S -> print RDimOrString .) exit reduce using rule 18 (S -> print RDimOrString .) elif reduce using rule 18 (S -> print RDimOrString .) else reduce using rule 18 (S -> print RDimOrString .) coma shift and go to state 59 state 35 (32) RDimOrString -> DimOrString . coma reduce using rule 32 (RDimOrString -> DimOrString .) end reduce using rule 32 (RDimOrString -> DimOrString .) id reduce using rule 32 (RDimOrString -> DimOrString .) read reduce using rule 32 (RDimOrString -> DimOrString .) print reduce using rule 32 (RDimOrString -> DimOrString .) if reduce using rule 32 (RDimOrString -> DimOrString .) do reduce using rule 32 (RDimOrString -> DimOrString .) swap reduce using rule 32 (RDimOrString -> DimOrString .) exit reduce using rule 32 (RDimOrString -> DimOrString .) elif reduce using rule 32 (RDimOrString -> DimOrString .) else reduce using rule 32 (RDimOrString -> DimOrString .) state 36 (34) DimOrString -> Dimensional . coma reduce using rule 34 (DimOrString -> Dimensional .) end reduce using rule 34 (DimOrString -> Dimensional .) id reduce using rule 34 (DimOrString -> Dimensional .) read reduce using rule 34 (DimOrString -> Dimensional .) print reduce using rule 34 (DimOrString -> Dimensional .) if reduce using rule 34 (DimOrString -> Dimensional .) do reduce using rule 34 (DimOrString -> Dimensional .) swap reduce using rule 34 (DimOrString -> Dimensional .) exit reduce using rule 34 (DimOrString -> Dimensional .) elif reduce using rule 34 (DimOrString -> Dimensional .) else reduce using rule 34 (DimOrString -> Dimensional .) state 37 (35) DimOrString -> string . coma reduce using rule 35 (DimOrString -> string .) end reduce using rule 35 (DimOrString -> string .) id reduce using rule 35 (DimOrString -> string .) read reduce using rule 35 (DimOrString -> string .) print reduce using rule 35 (DimOrString -> string .) if reduce using rule 35 (DimOrString -> string .) do reduce using rule 35 (DimOrString -> string .) swap reduce using rule 35 (DimOrString -> string .) exit reduce using rule 35 (DimOrString -> string .) elif reduce using rule 35 (DimOrString -> string .) else reduce using rule 35 (DimOrString -> string .) state 38 (19) S -> if action_16 . Relif ElseOrEmpty end if action_20 (36) Relif -> . openParen EL closedParen action_17 then B (37) Relif -> . Relif elif action_18 openParen EL closedParen action_17 then B openParen shift and go to state 61 Relif shift and go to state 60 state 39 (20) S -> do id . action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (93) action_24 -> . equals reduce using rule 93 (action_24 -> .) action_24 shift and go to state 62 state 40 (21) S -> do then . action_21 B action_22 end do (90) action_21 -> . id reduce using rule 90 (action_21 -> .) read reduce using rule 90 (action_21 -> .) print reduce using rule 90 (action_21 -> .) if reduce using rule 90 (action_21 -> .) do reduce using rule 90 (action_21 -> .) swap reduce using rule 90 (action_21 -> .) exit reduce using rule 90 (action_21 -> .) end reduce using rule 90 (action_21 -> .) action_21 shift and go to state 63 state 41 (22) S -> swap Dimensional . coma Dimensional coma shift and go to state 64 state 42 (23) S -> exit action_23 . end reduce using rule 23 (S -> exit action_23 .) id reduce using rule 23 (S -> exit action_23 .) read reduce using rule 23 (S -> exit action_23 .) print reduce using rule 23 (S -> exit action_23 .) if reduce using rule 23 (S -> exit action_23 .) do reduce using rule 23 (S -> exit action_23 .) swap reduce using rule 23 (S -> exit action_23 .) exit reduce using rule 23 (S -> exit action_23 .) elif reduce using rule 23 (S -> exit action_23 .) else reduce using rule 23 (S -> exit action_23 .) state 43 (11) F -> F subroutine id B . end subroutine (13) B -> B . S (15) S -> . Dimensional action_7 equals EA action_8 (16) S -> . id parens (17) S -> . read RDimensional (18) S -> . print RDimOrString (19) S -> . if action_16 Relif ElseOrEmpty end if action_20 (20) S -> . do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> . do then action_21 B action_22 end do (22) S -> . swap Dimensional coma Dimensional (23) S -> . exit action_23 (24) S -> . id openParen closedParen (25) Dimensional -> . id DimensionsOrEmpty end shift and go to state 65 id shift and go to state 13 read shift and go to state 17 print shift and go to state 18 if shift and go to state 19 do shift and go to state 20 swap shift and go to state 21 exit shift and go to state 22 S shift and go to state 15 Dimensional shift and go to state 16 state 44 (2) V -> V Tipo Dim doubleColon Rid . action_addSymbols action_32 (5) Rid -> Rid . coma id (68) action_addSymbols -> . coma shift and go to state 67 integer reduce using rule 68 (action_addSymbols -> .) real reduce using rule 68 (action_addSymbols -> .) subroutine reduce using rule 68 (action_addSymbols -> .) end reduce using rule 68 (action_addSymbols -> .) id reduce using rule 68 (action_addSymbols -> .) read reduce using rule 68 (action_addSymbols -> .) print reduce using rule 68 (action_addSymbols -> .) if reduce using rule 68 (action_addSymbols -> .) do reduce using rule 68 (action_addSymbols -> .) swap reduce using rule 68 (action_addSymbols -> .) exit reduce using rule 68 (action_addSymbols -> .) action_addSymbols shift and go to state 66 state 45 (4) Rid -> id . coma reduce using rule 4 (Rid -> id .) integer reduce using rule 4 (Rid -> id .) real reduce using rule 4 (Rid -> id .) subroutine reduce using rule 4 (Rid -> id .) end reduce using rule 4 (Rid -> id .) id reduce using rule 4 (Rid -> id .) read reduce using rule 4 (Rid -> id .) print reduce using rule 4 (Rid -> id .) if reduce using rule 4 (Rid -> id .) do reduce using rule 4 (Rid -> id .) swap reduce using rule 4 (Rid -> id .) exit reduce using rule 4 (Rid -> id .) state 46 (8) Dim -> openBra int action_30 . closedBra (9) Dim -> openBra int action_30 . closedBra openBra int action_31 closedBra closedBra shift and go to state 68 state 47 (51) EAParens -> openParen . EA closedParen (42) EA -> . MultDiv (43) EA -> . EA SumOrSub action_3 MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EA shift and go to state 69 MultDiv shift and go to state 50 EAParens shift and go to state 51 EItem shift and go to state 52 Dimensional shift and go to state 53 state 48 (24) S -> id openParen closedParen . end reduce using rule 24 (S -> id openParen closedParen .) id reduce using rule 24 (S -> id openParen closedParen .) read reduce using rule 24 (S -> id openParen closedParen .) print reduce using rule 24 (S -> id openParen closedParen .) if reduce using rule 24 (S -> id openParen closedParen .) do reduce using rule 24 (S -> id openParen closedParen .) swap reduce using rule 24 (S -> id openParen closedParen .) exit reduce using rule 24 (S -> id openParen closedParen .) elif reduce using rule 24 (S -> id openParen closedParen .) else reduce using rule 24 (S -> id openParen closedParen .) state 49 (26) DimensionsOrEmpty -> openParen EA . action_setDim1 ComaEAOrEmpty closedParen (43) EA -> EA . SumOrSub action_3 MultDiv action_4 (102) action_setDim1 -> . (44) SumOrSub -> . plus (45) SumOrSub -> . minus coma reduce using rule 102 (action_setDim1 -> .) closedParen reduce using rule 102 (action_setDim1 -> .) plus shift and go to state 72 minus shift and go to state 73 action_setDim1 shift and go to state 70 SumOrSub shift and go to state 71 state 50 (42) EA -> MultDiv . (47) MultDiv -> MultDiv . MDSymbols action_5 EAParens action_6 (48) MDSymbols -> . mul (49) MDSymbols -> . div plus reduce using rule 42 (EA -> MultDiv .) minus reduce using rule 42 (EA -> MultDiv .) coma reduce using rule 42 (EA -> MultDiv .) closedParen reduce using rule 42 (EA -> MultDiv .) end reduce using rule 42 (EA -> MultDiv .) id reduce using rule 42 (EA -> MultDiv .) read reduce using rule 42 (EA -> MultDiv .) print reduce using rule 42 (EA -> MultDiv .) if reduce using rule 42 (EA -> MultDiv .) do reduce using rule 42 (EA -> MultDiv .) swap reduce using rule 42 (EA -> MultDiv .) exit reduce using rule 42 (EA -> MultDiv .) elif reduce using rule 42 (EA -> MultDiv .) else reduce using rule 42 (EA -> MultDiv .) then reduce using rule 42 (EA -> MultDiv .) mul shift and go to state 75 div shift and go to state 76 MDSymbols shift and go to state 74 state 51 (46) MultDiv -> EAParens . mul reduce using rule 46 (MultDiv -> EAParens .) div reduce using rule 46 (MultDiv -> EAParens .) plus reduce using rule 46 (MultDiv -> EAParens .) minus reduce using rule 46 (MultDiv -> EAParens .) coma reduce using rule 46 (MultDiv -> EAParens .) closedParen reduce using rule 46 (MultDiv -> EAParens .) end reduce using rule 46 (MultDiv -> EAParens .) id reduce using rule 46 (MultDiv -> EAParens .) read reduce using rule 46 (MultDiv -> EAParens .) print reduce using rule 46 (MultDiv -> EAParens .) if reduce using rule 46 (MultDiv -> EAParens .) do reduce using rule 46 (MultDiv -> EAParens .) swap reduce using rule 46 (MultDiv -> EAParens .) exit reduce using rule 46 (MultDiv -> EAParens .) elif reduce using rule 46 (MultDiv -> EAParens .) else reduce using rule 46 (MultDiv -> EAParens .) then reduce using rule 46 (MultDiv -> EAParens .) state 52 (50) EAParens -> EItem . mul reduce using rule 50 (EAParens -> EItem .) div reduce using rule 50 (EAParens -> EItem .) plus reduce using rule 50 (EAParens -> EItem .) minus reduce using rule 50 (EAParens -> EItem .) coma reduce using rule 50 (EAParens -> EItem .) closedParen reduce using rule 50 (EAParens -> EItem .) end reduce using rule 50 (EAParens -> EItem .) id reduce using rule 50 (EAParens -> EItem .) read reduce using rule 50 (EAParens -> EItem .) print reduce using rule 50 (EAParens -> EItem .) if reduce using rule 50 (EAParens -> EItem .) do reduce using rule 50 (EAParens -> EItem .) swap reduce using rule 50 (EAParens -> EItem .) exit reduce using rule 50 (EAParens -> EItem .) elif reduce using rule 50 (EAParens -> EItem .) else reduce using rule 50 (EAParens -> EItem .) then reduce using rule 50 (EAParens -> EItem .) state 53 (59) EItem -> Dimensional . action_1 (69) action_1 -> . mul reduce using rule 69 (action_1 -> .) div reduce using rule 69 (action_1 -> .) plus reduce using rule 69 (action_1 -> .) minus reduce using rule 69 (action_1 -> .) coma reduce using rule 69 (action_1 -> .) closedParen reduce using rule 69 (action_1 -> .) end reduce using rule 69 (action_1 -> .) id reduce using rule 69 (action_1 -> .) read reduce using rule 69 (action_1 -> .) print reduce using rule 69 (action_1 -> .) if reduce using rule 69 (action_1 -> .) do reduce using rule 69 (action_1 -> .) swap reduce using rule 69 (action_1 -> .) exit reduce using rule 69 (action_1 -> .) elif reduce using rule 69 (action_1 -> .) else reduce using rule 69 (action_1 -> .) less reduce using rule 69 (action_1 -> .) more reduce using rule 69 (action_1 -> .) doubleEquals reduce using rule 69 (action_1 -> .) notEquals reduce using rule 69 (action_1 -> .) lessEquals reduce using rule 69 (action_1 -> .) moreEquals reduce using rule 69 (action_1 -> .) then reduce using rule 69 (action_1 -> .) and reduce using rule 69 (action_1 -> .) or reduce using rule 69 (action_1 -> .) action_1 shift and go to state 77 state 54 (60) EItem -> int . action_2 (70) action_2 -> . mul reduce using rule 70 (action_2 -> .) div reduce using rule 70 (action_2 -> .) plus reduce using rule 70 (action_2 -> .) minus reduce using rule 70 (action_2 -> .) coma reduce using rule 70 (action_2 -> .) closedParen reduce using rule 70 (action_2 -> .) end reduce using rule 70 (action_2 -> .) id reduce using rule 70 (action_2 -> .) read reduce using rule 70 (action_2 -> .) print reduce using rule 70 (action_2 -> .) if reduce using rule 70 (action_2 -> .) do reduce using rule 70 (action_2 -> .) swap reduce using rule 70 (action_2 -> .) exit reduce using rule 70 (action_2 -> .) elif reduce using rule 70 (action_2 -> .) else reduce using rule 70 (action_2 -> .) less reduce using rule 70 (action_2 -> .) more reduce using rule 70 (action_2 -> .) doubleEquals reduce using rule 70 (action_2 -> .) notEquals reduce using rule 70 (action_2 -> .) lessEquals reduce using rule 70 (action_2 -> .) moreEquals reduce using rule 70 (action_2 -> .) then reduce using rule 70 (action_2 -> .) and reduce using rule 70 (action_2 -> .) or reduce using rule 70 (action_2 -> .) action_2 shift and go to state 78 state 55 (61) EItem -> rea . action_2_rea (71) action_2_rea -> . mul reduce using rule 71 (action_2_rea -> .) div reduce using rule 71 (action_2_rea -> .) plus reduce using rule 71 (action_2_rea -> .) minus reduce using rule 71 (action_2_rea -> .) coma reduce using rule 71 (action_2_rea -> .) closedParen reduce using rule 71 (action_2_rea -> .) end reduce using rule 71 (action_2_rea -> .) id reduce using rule 71 (action_2_rea -> .) read reduce using rule 71 (action_2_rea -> .) print reduce using rule 71 (action_2_rea -> .) if reduce using rule 71 (action_2_rea -> .) do reduce using rule 71 (action_2_rea -> .) swap reduce using rule 71 (action_2_rea -> .) exit reduce using rule 71 (action_2_rea -> .) elif reduce using rule 71 (action_2_rea -> .) else reduce using rule 71 (action_2_rea -> .) less reduce using rule 71 (action_2_rea -> .) more reduce using rule 71 (action_2_rea -> .) doubleEquals reduce using rule 71 (action_2_rea -> .) notEquals reduce using rule 71 (action_2_rea -> .) lessEquals reduce using rule 71 (action_2_rea -> .) moreEquals reduce using rule 71 (action_2_rea -> .) then reduce using rule 71 (action_2_rea -> .) and reduce using rule 71 (action_2_rea -> .) or reduce using rule 71 (action_2_rea -> .) action_2_rea shift and go to state 79 state 56 (15) S -> Dimensional action_7 equals . EA action_8 (42) EA -> . MultDiv (43) EA -> . EA SumOrSub action_3 MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 Dimensional shift and go to state 53 EA shift and go to state 80 MultDiv shift and go to state 50 EAParens shift and go to state 51 EItem shift and go to state 52 state 57 (31) RDimensional -> RDimensional coma . Dimensional (25) Dimensional -> . id DimensionsOrEmpty id shift and go to state 33 Dimensional shift and go to state 81 state 58 (26) DimensionsOrEmpty -> openParen . EA action_setDim1 ComaEAOrEmpty closedParen (42) EA -> . MultDiv (43) EA -> . EA SumOrSub action_3 MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EA shift and go to state 49 MultDiv shift and go to state 50 EAParens shift and go to state 51 EItem shift and go to state 52 Dimensional shift and go to state 53 state 59 (33) RDimOrString -> RDimOrString coma . DimOrString (34) DimOrString -> . Dimensional (35) DimOrString -> . string (25) Dimensional -> . id DimensionsOrEmpty string shift and go to state 37 id shift and go to state 33 DimOrString shift and go to state 82 Dimensional shift and go to state 36 state 60 (19) S -> if action_16 Relif . ElseOrEmpty end if action_20 (37) Relif -> Relif . elif action_18 openParen EL closedParen action_17 then B (38) ElseOrEmpty -> . else action_19 B (39) ElseOrEmpty -> . elif shift and go to state 84 else shift and go to state 85 end reduce using rule 39 (ElseOrEmpty -> .) ElseOrEmpty shift and go to state 83 state 61 (36) Relif -> openParen . EL closedParen action_17 then B (52) EL -> . AND (53) EL -> . EL or action_10 AND action_9 (54) AND -> . Equality (55) AND -> . AND and action_12 Equality action_11 (56) Equality -> . EItem EQSymbols action_13 EItem action_14 (57) Equality -> . openParen EL closedParen (58) Equality -> . not EL action_15 (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 86 not shift and go to state 91 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EL shift and go to state 87 AND shift and go to state 88 Equality shift and go to state 89 EItem shift and go to state 90 Dimensional shift and go to state 53 state 62 (20) S -> do id action_24 . equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do equals shift and go to state 92 state 63 (21) S -> do then action_21 . B action_22 end do (13) B -> . B S (14) B -> . id reduce using rule 14 (B -> .) read reduce using rule 14 (B -> .) print reduce using rule 14 (B -> .) if reduce using rule 14 (B -> .) do reduce using rule 14 (B -> .) swap reduce using rule 14 (B -> .) exit reduce using rule 14 (B -> .) end reduce using rule 14 (B -> .) B shift and go to state 93 state 64 (22) S -> swap Dimensional coma . Dimensional (25) Dimensional -> . id DimensionsOrEmpty id shift and go to state 33 Dimensional shift and go to state 94 state 65 (11) F -> F subroutine id B end . subroutine subroutine shift and go to state 95 state 66 (2) V -> V Tipo Dim doubleColon Rid action_addSymbols . action_32 (101) action_32 -> . integer reduce using rule 101 (action_32 -> .) real reduce using rule 101 (action_32 -> .) subroutine reduce using rule 101 (action_32 -> .) end reduce using rule 101 (action_32 -> .) id reduce using rule 101 (action_32 -> .) read reduce using rule 101 (action_32 -> .) print reduce using rule 101 (action_32 -> .) if reduce using rule 101 (action_32 -> .) do reduce using rule 101 (action_32 -> .) swap reduce using rule 101 (action_32 -> .) exit reduce using rule 101 (action_32 -> .) action_32 shift and go to state 96 state 67 (5) Rid -> Rid coma . id id shift and go to state 97 state 68 (8) Dim -> openBra int action_30 closedBra . (9) Dim -> openBra int action_30 closedBra . openBra int action_31 closedBra doubleColon reduce using rule 8 (Dim -> openBra int action_30 closedBra .) openBra shift and go to state 98 state 69 (51) EAParens -> openParen EA . closedParen (43) EA -> EA . SumOrSub action_3 MultDiv action_4 (44) SumOrSub -> . plus (45) SumOrSub -> . minus closedParen shift and go to state 99 plus shift and go to state 72 minus shift and go to state 73 SumOrSub shift and go to state 71 state 70 (26) DimensionsOrEmpty -> openParen EA action_setDim1 . ComaEAOrEmpty closedParen (28) ComaEAOrEmpty -> . coma EA action_setDim2 (29) ComaEAOrEmpty -> . coma shift and go to state 101 closedParen reduce using rule 29 (ComaEAOrEmpty -> .) ComaEAOrEmpty shift and go to state 100 state 71 (43) EA -> EA SumOrSub . action_3 MultDiv action_4 (72) action_3 -> . openParen reduce using rule 72 (action_3 -> .) int reduce using rule 72 (action_3 -> .) rea reduce using rule 72 (action_3 -> .) id reduce using rule 72 (action_3 -> .) action_3 shift and go to state 102 state 72 (44) SumOrSub -> plus . openParen reduce using rule 44 (SumOrSub -> plus .) int reduce using rule 44 (SumOrSub -> plus .) rea reduce using rule 44 (SumOrSub -> plus .) id reduce using rule 44 (SumOrSub -> plus .) state 73 (45) SumOrSub -> minus . openParen reduce using rule 45 (SumOrSub -> minus .) int reduce using rule 45 (SumOrSub -> minus .) rea reduce using rule 45 (SumOrSub -> minus .) id reduce using rule 45 (SumOrSub -> minus .) state 74 (47) MultDiv -> MultDiv MDSymbols . action_5 EAParens action_6 (74) action_5 -> . openParen reduce using rule 74 (action_5 -> .) int reduce using rule 74 (action_5 -> .) rea reduce using rule 74 (action_5 -> .) id reduce using rule 74 (action_5 -> .) action_5 shift and go to state 103 state 75 (48) MDSymbols -> mul . openParen reduce using rule 48 (MDSymbols -> mul .) int reduce using rule 48 (MDSymbols -> mul .) rea reduce using rule 48 (MDSymbols -> mul .) id reduce using rule 48 (MDSymbols -> mul .) state 76 (49) MDSymbols -> div . openParen reduce using rule 49 (MDSymbols -> div .) int reduce using rule 49 (MDSymbols -> div .) rea reduce using rule 49 (MDSymbols -> div .) id reduce using rule 49 (MDSymbols -> div .) state 77 (59) EItem -> Dimensional action_1 . mul reduce using rule 59 (EItem -> Dimensional action_1 .) div reduce using rule 59 (EItem -> Dimensional action_1 .) plus reduce using rule 59 (EItem -> Dimensional action_1 .) minus reduce using rule 59 (EItem -> Dimensional action_1 .) coma reduce using rule 59 (EItem -> Dimensional action_1 .) closedParen reduce using rule 59 (EItem -> Dimensional action_1 .) end reduce using rule 59 (EItem -> Dimensional action_1 .) id reduce using rule 59 (EItem -> Dimensional action_1 .) read reduce using rule 59 (EItem -> Dimensional action_1 .) print reduce using rule 59 (EItem -> Dimensional action_1 .) if reduce using rule 59 (EItem -> Dimensional action_1 .) do reduce using rule 59 (EItem -> Dimensional action_1 .) swap reduce using rule 59 (EItem -> Dimensional action_1 .) exit reduce using rule 59 (EItem -> Dimensional action_1 .) elif reduce using rule 59 (EItem -> Dimensional action_1 .) else reduce using rule 59 (EItem -> Dimensional action_1 .) less reduce using rule 59 (EItem -> Dimensional action_1 .) more reduce using rule 59 (EItem -> Dimensional action_1 .) doubleEquals reduce using rule 59 (EItem -> Dimensional action_1 .) notEquals reduce using rule 59 (EItem -> Dimensional action_1 .) lessEquals reduce using rule 59 (EItem -> Dimensional action_1 .) moreEquals reduce using rule 59 (EItem -> Dimensional action_1 .) then reduce using rule 59 (EItem -> Dimensional action_1 .) and reduce using rule 59 (EItem -> Dimensional action_1 .) or reduce using rule 59 (EItem -> Dimensional action_1 .) state 78 (60) EItem -> int action_2 . mul reduce using rule 60 (EItem -> int action_2 .) div reduce using rule 60 (EItem -> int action_2 .) plus reduce using rule 60 (EItem -> int action_2 .) minus reduce using rule 60 (EItem -> int action_2 .) coma reduce using rule 60 (EItem -> int action_2 .) closedParen reduce using rule 60 (EItem -> int action_2 .) end reduce using rule 60 (EItem -> int action_2 .) id reduce using rule 60 (EItem -> int action_2 .) read reduce using rule 60 (EItem -> int action_2 .) print reduce using rule 60 (EItem -> int action_2 .) if reduce using rule 60 (EItem -> int action_2 .) do reduce using rule 60 (EItem -> int action_2 .) swap reduce using rule 60 (EItem -> int action_2 .) exit reduce using rule 60 (EItem -> int action_2 .) elif reduce using rule 60 (EItem -> int action_2 .) else reduce using rule 60 (EItem -> int action_2 .) less reduce using rule 60 (EItem -> int action_2 .) more reduce using rule 60 (EItem -> int action_2 .) doubleEquals reduce using rule 60 (EItem -> int action_2 .) notEquals reduce using rule 60 (EItem -> int action_2 .) lessEquals reduce using rule 60 (EItem -> int action_2 .) moreEquals reduce using rule 60 (EItem -> int action_2 .) then reduce using rule 60 (EItem -> int action_2 .) and reduce using rule 60 (EItem -> int action_2 .) or reduce using rule 60 (EItem -> int action_2 .) state 79 (61) EItem -> rea action_2_rea . mul reduce using rule 61 (EItem -> rea action_2_rea .) div reduce using rule 61 (EItem -> rea action_2_rea .) plus reduce using rule 61 (EItem -> rea action_2_rea .) minus reduce using rule 61 (EItem -> rea action_2_rea .) coma reduce using rule 61 (EItem -> rea action_2_rea .) closedParen reduce using rule 61 (EItem -> rea action_2_rea .) end reduce using rule 61 (EItem -> rea action_2_rea .) id reduce using rule 61 (EItem -> rea action_2_rea .) read reduce using rule 61 (EItem -> rea action_2_rea .) print reduce using rule 61 (EItem -> rea action_2_rea .) if reduce using rule 61 (EItem -> rea action_2_rea .) do reduce using rule 61 (EItem -> rea action_2_rea .) swap reduce using rule 61 (EItem -> rea action_2_rea .) exit reduce using rule 61 (EItem -> rea action_2_rea .) elif reduce using rule 61 (EItem -> rea action_2_rea .) else reduce using rule 61 (EItem -> rea action_2_rea .) less reduce using rule 61 (EItem -> rea action_2_rea .) more reduce using rule 61 (EItem -> rea action_2_rea .) doubleEquals reduce using rule 61 (EItem -> rea action_2_rea .) notEquals reduce using rule 61 (EItem -> rea action_2_rea .) lessEquals reduce using rule 61 (EItem -> rea action_2_rea .) moreEquals reduce using rule 61 (EItem -> rea action_2_rea .) then reduce using rule 61 (EItem -> rea action_2_rea .) and reduce using rule 61 (EItem -> rea action_2_rea .) or reduce using rule 61 (EItem -> rea action_2_rea .) state 80 (15) S -> Dimensional action_7 equals EA . action_8 (43) EA -> EA . SumOrSub action_3 MultDiv action_4 (77) action_8 -> . (44) SumOrSub -> . plus (45) SumOrSub -> . minus end reduce using rule 77 (action_8 -> .) id reduce using rule 77 (action_8 -> .) read reduce using rule 77 (action_8 -> .) print reduce using rule 77 (action_8 -> .) if reduce using rule 77 (action_8 -> .) do reduce using rule 77 (action_8 -> .) swap reduce using rule 77 (action_8 -> .) exit reduce using rule 77 (action_8 -> .) elif reduce using rule 77 (action_8 -> .) else reduce using rule 77 (action_8 -> .) plus shift and go to state 72 minus shift and go to state 73 action_8 shift and go to state 104 SumOrSub shift and go to state 71 state 81 (31) RDimensional -> RDimensional coma Dimensional . coma reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) end reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) id reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) read reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) print reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) if reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) do reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) swap reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) exit reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) elif reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) else reduce using rule 31 (RDimensional -> RDimensional coma Dimensional .) state 82 (33) RDimOrString -> RDimOrString coma DimOrString . coma reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) end reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) id reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) read reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) print reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) if reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) do reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) swap reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) exit reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) elif reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) else reduce using rule 33 (RDimOrString -> RDimOrString coma DimOrString .) state 83 (19) S -> if action_16 Relif ElseOrEmpty . end if action_20 end shift and go to state 105 state 84 (37) Relif -> Relif elif . action_18 openParen EL closedParen action_17 then B (87) action_18 -> . openParen reduce using rule 87 (action_18 -> .) action_18 shift and go to state 106 state 85 (38) ElseOrEmpty -> else . action_19 B (88) action_19 -> . id reduce using rule 88 (action_19 -> .) read reduce using rule 88 (action_19 -> .) print reduce using rule 88 (action_19 -> .) if reduce using rule 88 (action_19 -> .) do reduce using rule 88 (action_19 -> .) swap reduce using rule 88 (action_19 -> .) exit reduce using rule 88 (action_19 -> .) end reduce using rule 88 (action_19 -> .) action_19 shift and go to state 107 state 86 (57) Equality -> openParen . EL closedParen (52) EL -> . AND (53) EL -> . EL or action_10 AND action_9 (54) AND -> . Equality (55) AND -> . AND and action_12 Equality action_11 (56) Equality -> . EItem EQSymbols action_13 EItem action_14 (57) Equality -> . openParen EL closedParen (58) Equality -> . not EL action_15 (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 86 not shift and go to state 91 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EL shift and go to state 108 AND shift and go to state 88 Equality shift and go to state 89 EItem shift and go to state 90 Dimensional shift and go to state 53 state 87 (36) Relif -> openParen EL . closedParen action_17 then B (53) EL -> EL . or action_10 AND action_9 closedParen shift and go to state 109 or shift and go to state 110 state 88 (52) EL -> AND . (55) AND -> AND . and action_12 Equality action_11 ! shift/reduce conflict for and resolved as shift closedParen reduce using rule 52 (EL -> AND .) or reduce using rule 52 (EL -> AND .) and shift and go to state 111 ! and [ reduce using rule 52 (EL -> AND .) ] state 89 (54) AND -> Equality . and reduce using rule 54 (AND -> Equality .) closedParen reduce using rule 54 (AND -> Equality .) or reduce using rule 54 (AND -> Equality .) state 90 (56) Equality -> EItem . EQSymbols action_13 EItem action_14 (62) EQSymbols -> . less (63) EQSymbols -> . more (64) EQSymbols -> . doubleEquals (65) EQSymbols -> . notEquals (66) EQSymbols -> . lessEquals (67) EQSymbols -> . moreEquals less shift and go to state 113 more shift and go to state 114 doubleEquals shift and go to state 115 notEquals shift and go to state 116 lessEquals shift and go to state 117 moreEquals shift and go to state 118 EQSymbols shift and go to state 112 state 91 (58) Equality -> not . EL action_15 (52) EL -> . AND (53) EL -> . EL or action_10 AND action_9 (54) AND -> . Equality (55) AND -> . AND and action_12 Equality action_11 (56) Equality -> . EItem EQSymbols action_13 EItem action_14 (57) Equality -> . openParen EL closedParen (58) Equality -> . not EL action_15 (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 86 not shift and go to state 91 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EL shift and go to state 119 AND shift and go to state 88 Equality shift and go to state 89 EItem shift and go to state 90 Dimensional shift and go to state 53 state 92 (20) S -> do id action_24 equals . EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (42) EA -> . MultDiv (43) EA -> . EA SumOrSub action_3 MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EA shift and go to state 120 MultDiv shift and go to state 50 EAParens shift and go to state 51 EItem shift and go to state 52 Dimensional shift and go to state 53 state 93 (21) S -> do then action_21 B . action_22 end do (13) B -> B . S (91) action_22 -> . (15) S -> . Dimensional action_7 equals EA action_8 (16) S -> . id parens (17) S -> . read RDimensional (18) S -> . print RDimOrString (19) S -> . if action_16 Relif ElseOrEmpty end if action_20 (20) S -> . do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> . do then action_21 B action_22 end do (22) S -> . swap Dimensional coma Dimensional (23) S -> . exit action_23 (24) S -> . id openParen closedParen (25) Dimensional -> . id DimensionsOrEmpty end reduce using rule 91 (action_22 -> .) id shift and go to state 13 read shift and go to state 17 print shift and go to state 18 if shift and go to state 19 do shift and go to state 20 swap shift and go to state 21 exit shift and go to state 22 action_22 shift and go to state 121 S shift and go to state 15 Dimensional shift and go to state 16 state 94 (22) S -> swap Dimensional coma Dimensional . end reduce using rule 22 (S -> swap Dimensional coma Dimensional .) id reduce using rule 22 (S -> swap Dimensional coma Dimensional .) read reduce using rule 22 (S -> swap Dimensional coma Dimensional .) print reduce using rule 22 (S -> swap Dimensional coma Dimensional .) if reduce using rule 22 (S -> swap Dimensional coma Dimensional .) do reduce using rule 22 (S -> swap Dimensional coma Dimensional .) swap reduce using rule 22 (S -> swap Dimensional coma Dimensional .) exit reduce using rule 22 (S -> swap Dimensional coma Dimensional .) elif reduce using rule 22 (S -> swap Dimensional coma Dimensional .) else reduce using rule 22 (S -> swap Dimensional coma Dimensional .) state 95 (11) F -> F subroutine id B end subroutine . subroutine reduce using rule 11 (F -> F subroutine id B end subroutine .) end reduce using rule 11 (F -> F subroutine id B end subroutine .) id reduce using rule 11 (F -> F subroutine id B end subroutine .) read reduce using rule 11 (F -> F subroutine id B end subroutine .) print reduce using rule 11 (F -> F subroutine id B end subroutine .) if reduce using rule 11 (F -> F subroutine id B end subroutine .) do reduce using rule 11 (F -> F subroutine id B end subroutine .) swap reduce using rule 11 (F -> F subroutine id B end subroutine .) exit reduce using rule 11 (F -> F subroutine id B end subroutine .) state 96 (2) V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 . integer reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) real reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) subroutine reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) end reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) id reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) read reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) print reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) if reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) do reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) swap reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) exit reduce using rule 2 (V -> V Tipo Dim doubleColon Rid action_addSymbols action_32 .) state 97 (5) Rid -> Rid coma id . coma reduce using rule 5 (Rid -> Rid coma id .) integer reduce using rule 5 (Rid -> Rid coma id .) real reduce using rule 5 (Rid -> Rid coma id .) subroutine reduce using rule 5 (Rid -> Rid coma id .) end reduce using rule 5 (Rid -> Rid coma id .) id reduce using rule 5 (Rid -> Rid coma id .) read reduce using rule 5 (Rid -> Rid coma id .) print reduce using rule 5 (Rid -> Rid coma id .) if reduce using rule 5 (Rid -> Rid coma id .) do reduce using rule 5 (Rid -> Rid coma id .) swap reduce using rule 5 (Rid -> Rid coma id .) exit reduce using rule 5 (Rid -> Rid coma id .) state 98 (9) Dim -> openBra int action_30 closedBra openBra . int action_31 closedBra int shift and go to state 122 state 99 (51) EAParens -> openParen EA closedParen . mul reduce using rule 51 (EAParens -> openParen EA closedParen .) div reduce using rule 51 (EAParens -> openParen EA closedParen .) plus reduce using rule 51 (EAParens -> openParen EA closedParen .) minus reduce using rule 51 (EAParens -> openParen EA closedParen .) coma reduce using rule 51 (EAParens -> openParen EA closedParen .) closedParen reduce using rule 51 (EAParens -> openParen EA closedParen .) end reduce using rule 51 (EAParens -> openParen EA closedParen .) id reduce using rule 51 (EAParens -> openParen EA closedParen .) read reduce using rule 51 (EAParens -> openParen EA closedParen .) print reduce using rule 51 (EAParens -> openParen EA closedParen .) if reduce using rule 51 (EAParens -> openParen EA closedParen .) do reduce using rule 51 (EAParens -> openParen EA closedParen .) swap reduce using rule 51 (EAParens -> openParen EA closedParen .) exit reduce using rule 51 (EAParens -> openParen EA closedParen .) elif reduce using rule 51 (EAParens -> openParen EA closedParen .) else reduce using rule 51 (EAParens -> openParen EA closedParen .) then reduce using rule 51 (EAParens -> openParen EA closedParen .) state 100 (26) DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty . closedParen closedParen shift and go to state 123 state 101 (28) ComaEAOrEmpty -> coma . EA action_setDim2 (42) EA -> . MultDiv (43) EA -> . EA SumOrSub action_3 MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EA shift and go to state 124 MultDiv shift and go to state 50 EAParens shift and go to state 51 EItem shift and go to state 52 Dimensional shift and go to state 53 state 102 (43) EA -> EA SumOrSub action_3 . MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 MultDiv shift and go to state 125 EAParens shift and go to state 51 EItem shift and go to state 52 Dimensional shift and go to state 53 state 103 (47) MultDiv -> MultDiv MDSymbols action_5 . EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EAParens shift and go to state 126 EItem shift and go to state 52 Dimensional shift and go to state 53 state 104 (15) S -> Dimensional action_7 equals EA action_8 . end reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) id reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) read reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) print reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) if reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) do reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) swap reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) exit reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) elif reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) else reduce using rule 15 (S -> Dimensional action_7 equals EA action_8 .) state 105 (19) S -> if action_16 Relif ElseOrEmpty end . if action_20 if shift and go to state 127 state 106 (37) Relif -> Relif elif action_18 . openParen EL closedParen action_17 then B openParen shift and go to state 128 state 107 (38) ElseOrEmpty -> else action_19 . B (13) B -> . B S (14) B -> . id reduce using rule 14 (B -> .) read reduce using rule 14 (B -> .) print reduce using rule 14 (B -> .) if reduce using rule 14 (B -> .) do reduce using rule 14 (B -> .) swap reduce using rule 14 (B -> .) exit reduce using rule 14 (B -> .) end reduce using rule 14 (B -> .) B shift and go to state 129 state 108 (57) Equality -> openParen EL . closedParen (53) EL -> EL . or action_10 AND action_9 closedParen shift and go to state 130 or shift and go to state 110 state 109 (36) Relif -> openParen EL closedParen . action_17 then B (86) action_17 -> . then reduce using rule 86 (action_17 -> .) action_17 shift and go to state 131 state 110 (53) EL -> EL or . action_10 AND action_9 (79) action_10 -> . openParen reduce using rule 79 (action_10 -> .) not reduce using rule 79 (action_10 -> .) int reduce using rule 79 (action_10 -> .) rea reduce using rule 79 (action_10 -> .) id reduce using rule 79 (action_10 -> .) action_10 shift and go to state 132 state 111 (55) AND -> AND and . action_12 Equality action_11 (81) action_12 -> . openParen reduce using rule 81 (action_12 -> .) not reduce using rule 81 (action_12 -> .) int reduce using rule 81 (action_12 -> .) rea reduce using rule 81 (action_12 -> .) id reduce using rule 81 (action_12 -> .) action_12 shift and go to state 133 state 112 (56) Equality -> EItem EQSymbols . action_13 EItem action_14 (82) action_13 -> . int reduce using rule 82 (action_13 -> .) rea reduce using rule 82 (action_13 -> .) id reduce using rule 82 (action_13 -> .) action_13 shift and go to state 134 state 113 (62) EQSymbols -> less . int reduce using rule 62 (EQSymbols -> less .) rea reduce using rule 62 (EQSymbols -> less .) id reduce using rule 62 (EQSymbols -> less .) state 114 (63) EQSymbols -> more . int reduce using rule 63 (EQSymbols -> more .) rea reduce using rule 63 (EQSymbols -> more .) id reduce using rule 63 (EQSymbols -> more .) state 115 (64) EQSymbols -> doubleEquals . int reduce using rule 64 (EQSymbols -> doubleEquals .) rea reduce using rule 64 (EQSymbols -> doubleEquals .) id reduce using rule 64 (EQSymbols -> doubleEquals .) state 116 (65) EQSymbols -> notEquals . int reduce using rule 65 (EQSymbols -> notEquals .) rea reduce using rule 65 (EQSymbols -> notEquals .) id reduce using rule 65 (EQSymbols -> notEquals .) state 117 (66) EQSymbols -> lessEquals . int reduce using rule 66 (EQSymbols -> lessEquals .) rea reduce using rule 66 (EQSymbols -> lessEquals .) id reduce using rule 66 (EQSymbols -> lessEquals .) state 118 (67) EQSymbols -> moreEquals . int reduce using rule 67 (EQSymbols -> moreEquals .) rea reduce using rule 67 (EQSymbols -> moreEquals .) id reduce using rule 67 (EQSymbols -> moreEquals .) state 119 (58) Equality -> not EL . action_15 (53) EL -> EL . or action_10 AND action_9 (84) action_15 -> . ! shift/reduce conflict for or resolved as shift or shift and go to state 110 and reduce using rule 84 (action_15 -> .) closedParen reduce using rule 84 (action_15 -> .) ! or [ reduce using rule 84 (action_15 -> .) ] action_15 shift and go to state 135 state 120 (20) S -> do id action_24 equals EA . action_25 coma EA action_26 IntOrEmpty then B action_29 end do (43) EA -> EA . SumOrSub action_3 MultDiv action_4 (94) action_25 -> . (44) SumOrSub -> . plus (45) SumOrSub -> . minus coma reduce using rule 94 (action_25 -> .) plus shift and go to state 72 minus shift and go to state 73 action_25 shift and go to state 136 SumOrSub shift and go to state 71 state 121 (21) S -> do then action_21 B action_22 . end do end shift and go to state 137 state 122 (9) Dim -> openBra int action_30 closedBra openBra int . action_31 closedBra (100) action_31 -> . closedBra reduce using rule 100 (action_31 -> .) action_31 shift and go to state 138 state 123 (26) DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen . equals reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) coma reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) end reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) id reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) read reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) print reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) if reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) do reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) swap reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) exit reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) elif reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) else reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) mul reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) div reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) plus reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) minus reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) closedParen reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) less reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) more reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) doubleEquals reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) notEquals reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) lessEquals reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) moreEquals reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) then reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) and reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) or reduce using rule 26 (DimensionsOrEmpty -> openParen EA action_setDim1 ComaEAOrEmpty closedParen .) state 124 (28) ComaEAOrEmpty -> coma EA . action_setDim2 (43) EA -> EA . SumOrSub action_3 MultDiv action_4 (103) action_setDim2 -> . (44) SumOrSub -> . plus (45) SumOrSub -> . minus closedParen reduce using rule 103 (action_setDim2 -> .) plus shift and go to state 72 minus shift and go to state 73 action_setDim2 shift and go to state 139 SumOrSub shift and go to state 71 state 125 (43) EA -> EA SumOrSub action_3 MultDiv . action_4 (47) MultDiv -> MultDiv . MDSymbols action_5 EAParens action_6 (73) action_4 -> . (48) MDSymbols -> . mul (49) MDSymbols -> . div plus reduce using rule 73 (action_4 -> .) minus reduce using rule 73 (action_4 -> .) coma reduce using rule 73 (action_4 -> .) closedParen reduce using rule 73 (action_4 -> .) end reduce using rule 73 (action_4 -> .) id reduce using rule 73 (action_4 -> .) read reduce using rule 73 (action_4 -> .) print reduce using rule 73 (action_4 -> .) if reduce using rule 73 (action_4 -> .) do reduce using rule 73 (action_4 -> .) swap reduce using rule 73 (action_4 -> .) exit reduce using rule 73 (action_4 -> .) elif reduce using rule 73 (action_4 -> .) else reduce using rule 73 (action_4 -> .) then reduce using rule 73 (action_4 -> .) mul shift and go to state 75 div shift and go to state 76 action_4 shift and go to state 140 MDSymbols shift and go to state 74 state 126 (47) MultDiv -> MultDiv MDSymbols action_5 EAParens . action_6 (75) action_6 -> . mul reduce using rule 75 (action_6 -> .) div reduce using rule 75 (action_6 -> .) plus reduce using rule 75 (action_6 -> .) minus reduce using rule 75 (action_6 -> .) coma reduce using rule 75 (action_6 -> .) closedParen reduce using rule 75 (action_6 -> .) end reduce using rule 75 (action_6 -> .) id reduce using rule 75 (action_6 -> .) read reduce using rule 75 (action_6 -> .) print reduce using rule 75 (action_6 -> .) if reduce using rule 75 (action_6 -> .) do reduce using rule 75 (action_6 -> .) swap reduce using rule 75 (action_6 -> .) exit reduce using rule 75 (action_6 -> .) elif reduce using rule 75 (action_6 -> .) else reduce using rule 75 (action_6 -> .) then reduce using rule 75 (action_6 -> .) action_6 shift and go to state 141 state 127 (19) S -> if action_16 Relif ElseOrEmpty end if . action_20 (89) action_20 -> . end reduce using rule 89 (action_20 -> .) id reduce using rule 89 (action_20 -> .) read reduce using rule 89 (action_20 -> .) print reduce using rule 89 (action_20 -> .) if reduce using rule 89 (action_20 -> .) do reduce using rule 89 (action_20 -> .) swap reduce using rule 89 (action_20 -> .) exit reduce using rule 89 (action_20 -> .) elif reduce using rule 89 (action_20 -> .) else reduce using rule 89 (action_20 -> .) action_20 shift and go to state 142 state 128 (37) Relif -> Relif elif action_18 openParen . EL closedParen action_17 then B (52) EL -> . AND (53) EL -> . EL or action_10 AND action_9 (54) AND -> . Equality (55) AND -> . AND and action_12 Equality action_11 (56) Equality -> . EItem EQSymbols action_13 EItem action_14 (57) Equality -> . openParen EL closedParen (58) Equality -> . not EL action_15 (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 86 not shift and go to state 91 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EL shift and go to state 143 AND shift and go to state 88 Equality shift and go to state 89 EItem shift and go to state 90 Dimensional shift and go to state 53 state 129 (38) ElseOrEmpty -> else action_19 B . (13) B -> B . S (15) S -> . Dimensional action_7 equals EA action_8 (16) S -> . id parens (17) S -> . read RDimensional (18) S -> . print RDimOrString (19) S -> . if action_16 Relif ElseOrEmpty end if action_20 (20) S -> . do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> . do then action_21 B action_22 end do (22) S -> . swap Dimensional coma Dimensional (23) S -> . exit action_23 (24) S -> . id openParen closedParen (25) Dimensional -> . id DimensionsOrEmpty end reduce using rule 38 (ElseOrEmpty -> else action_19 B .) id shift and go to state 13 read shift and go to state 17 print shift and go to state 18 if shift and go to state 19 do shift and go to state 20 swap shift and go to state 21 exit shift and go to state 22 S shift and go to state 15 Dimensional shift and go to state 16 state 130 (57) Equality -> openParen EL closedParen . and reduce using rule 57 (Equality -> openParen EL closedParen .) closedParen reduce using rule 57 (Equality -> openParen EL closedParen .) or reduce using rule 57 (Equality -> openParen EL closedParen .) state 131 (36) Relif -> openParen EL closedParen action_17 . then B then shift and go to state 144 state 132 (53) EL -> EL or action_10 . AND action_9 (54) AND -> . Equality (55) AND -> . AND and action_12 Equality action_11 (56) Equality -> . EItem EQSymbols action_13 EItem action_14 (57) Equality -> . openParen EL closedParen (58) Equality -> . not EL action_15 (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 86 not shift and go to state 91 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 AND shift and go to state 145 Equality shift and go to state 89 EItem shift and go to state 90 Dimensional shift and go to state 53 state 133 (55) AND -> AND and action_12 . Equality action_11 (56) Equality -> . EItem EQSymbols action_13 EItem action_14 (57) Equality -> . openParen EL closedParen (58) Equality -> . not EL action_15 (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 86 not shift and go to state 91 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 Equality shift and go to state 146 EItem shift and go to state 90 Dimensional shift and go to state 53 state 134 (56) Equality -> EItem EQSymbols action_13 . EItem action_14 (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EItem shift and go to state 147 Dimensional shift and go to state 53 state 135 (58) Equality -> not EL action_15 . and reduce using rule 58 (Equality -> not EL action_15 .) closedParen reduce using rule 58 (Equality -> not EL action_15 .) or reduce using rule 58 (Equality -> not EL action_15 .) state 136 (20) S -> do id action_24 equals EA action_25 . coma EA action_26 IntOrEmpty then B action_29 end do coma shift and go to state 148 state 137 (21) S -> do then action_21 B action_22 end . do do shift and go to state 149 state 138 (9) Dim -> openBra int action_30 closedBra openBra int action_31 . closedBra closedBra shift and go to state 150 state 139 (28) ComaEAOrEmpty -> coma EA action_setDim2 . closedParen reduce using rule 28 (ComaEAOrEmpty -> coma EA action_setDim2 .) state 140 (43) EA -> EA SumOrSub action_3 MultDiv action_4 . plus reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) minus reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) coma reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) closedParen reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) end reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) id reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) read reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) print reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) if reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) do reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) swap reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) exit reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) elif reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) else reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) then reduce using rule 43 (EA -> EA SumOrSub action_3 MultDiv action_4 .) state 141 (47) MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 . mul reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) div reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) plus reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) minus reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) coma reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) closedParen reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) end reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) id reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) read reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) print reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) if reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) do reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) swap reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) exit reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) elif reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) else reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) then reduce using rule 47 (MultDiv -> MultDiv MDSymbols action_5 EAParens action_6 .) state 142 (19) S -> if action_16 Relif ElseOrEmpty end if action_20 . end reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) id reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) read reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) print reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) if reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) do reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) swap reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) exit reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) elif reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) else reduce using rule 19 (S -> if action_16 Relif ElseOrEmpty end if action_20 .) state 143 (37) Relif -> Relif elif action_18 openParen EL . closedParen action_17 then B (53) EL -> EL . or action_10 AND action_9 closedParen shift and go to state 151 or shift and go to state 110 state 144 (36) Relif -> openParen EL closedParen action_17 then . B (13) B -> . B S (14) B -> . id reduce using rule 14 (B -> .) read reduce using rule 14 (B -> .) print reduce using rule 14 (B -> .) if reduce using rule 14 (B -> .) do reduce using rule 14 (B -> .) swap reduce using rule 14 (B -> .) exit reduce using rule 14 (B -> .) elif reduce using rule 14 (B -> .) else reduce using rule 14 (B -> .) end reduce using rule 14 (B -> .) B shift and go to state 152 state 145 (53) EL -> EL or action_10 AND . action_9 (55) AND -> AND . and action_12 Equality action_11 (78) action_9 -> . ! shift/reduce conflict for and resolved as shift and shift and go to state 111 closedParen reduce using rule 78 (action_9 -> .) or reduce using rule 78 (action_9 -> .) ! and [ reduce using rule 78 (action_9 -> .) ] action_9 shift and go to state 153 state 146 (55) AND -> AND and action_12 Equality . action_11 (80) action_11 -> . and reduce using rule 80 (action_11 -> .) closedParen reduce using rule 80 (action_11 -> .) or reduce using rule 80 (action_11 -> .) action_11 shift and go to state 154 state 147 (56) Equality -> EItem EQSymbols action_13 EItem . action_14 (83) action_14 -> . and reduce using rule 83 (action_14 -> .) closedParen reduce using rule 83 (action_14 -> .) or reduce using rule 83 (action_14 -> .) action_14 shift and go to state 155 state 148 (20) S -> do id action_24 equals EA action_25 coma . EA action_26 IntOrEmpty then B action_29 end do (42) EA -> . MultDiv (43) EA -> . EA SumOrSub action_3 MultDiv action_4 (46) MultDiv -> . EAParens (47) MultDiv -> . MultDiv MDSymbols action_5 EAParens action_6 (50) EAParens -> . EItem (51) EAParens -> . openParen EA closedParen (59) EItem -> . Dimensional action_1 (60) EItem -> . int action_2 (61) EItem -> . rea action_2_rea (25) Dimensional -> . id DimensionsOrEmpty openParen shift and go to state 47 int shift and go to state 54 rea shift and go to state 55 id shift and go to state 33 EA shift and go to state 156 MultDiv shift and go to state 50 EAParens shift and go to state 51 EItem shift and go to state 52 Dimensional shift and go to state 53 state 149 (21) S -> do then action_21 B action_22 end do . end reduce using rule 21 (S -> do then action_21 B action_22 end do .) id reduce using rule 21 (S -> do then action_21 B action_22 end do .) read reduce using rule 21 (S -> do then action_21 B action_22 end do .) print reduce using rule 21 (S -> do then action_21 B action_22 end do .) if reduce using rule 21 (S -> do then action_21 B action_22 end do .) do reduce using rule 21 (S -> do then action_21 B action_22 end do .) swap reduce using rule 21 (S -> do then action_21 B action_22 end do .) exit reduce using rule 21 (S -> do then action_21 B action_22 end do .) elif reduce using rule 21 (S -> do then action_21 B action_22 end do .) else reduce using rule 21 (S -> do then action_21 B action_22 end do .) state 150 (9) Dim -> openBra int action_30 closedBra openBra int action_31 closedBra . doubleColon reduce using rule 9 (Dim -> openBra int action_30 closedBra openBra int action_31 closedBra .) state 151 (37) Relif -> Relif elif action_18 openParen EL closedParen . action_17 then B (86) action_17 -> . then reduce using rule 86 (action_17 -> .) action_17 shift and go to state 157 state 152 (36) Relif -> openParen EL closedParen action_17 then B . (13) B -> B . S (15) S -> . Dimensional action_7 equals EA action_8 (16) S -> . id parens (17) S -> . read RDimensional (18) S -> . print RDimOrString (19) S -> . if action_16 Relif ElseOrEmpty end if action_20 (20) S -> . do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> . do then action_21 B action_22 end do (22) S -> . swap Dimensional coma Dimensional (23) S -> . exit action_23 (24) S -> . id openParen closedParen (25) Dimensional -> . id DimensionsOrEmpty elif reduce using rule 36 (Relif -> openParen EL closedParen action_17 then B .) else reduce using rule 36 (Relif -> openParen EL closedParen action_17 then B .) end reduce using rule 36 (Relif -> openParen EL closedParen action_17 then B .) id shift and go to state 13 read shift and go to state 17 print shift and go to state 18 if shift and go to state 19 do shift and go to state 20 swap shift and go to state 21 exit shift and go to state 22 S shift and go to state 15 Dimensional shift and go to state 16 state 153 (53) EL -> EL or action_10 AND action_9 . closedParen reduce using rule 53 (EL -> EL or action_10 AND action_9 .) or reduce using rule 53 (EL -> EL or action_10 AND action_9 .) and reduce using rule 53 (EL -> EL or action_10 AND action_9 .) state 154 (55) AND -> AND and action_12 Equality action_11 . and reduce using rule 55 (AND -> AND and action_12 Equality action_11 .) closedParen reduce using rule 55 (AND -> AND and action_12 Equality action_11 .) or reduce using rule 55 (AND -> AND and action_12 Equality action_11 .) state 155 (56) Equality -> EItem EQSymbols action_13 EItem action_14 . and reduce using rule 56 (Equality -> EItem EQSymbols action_13 EItem action_14 .) closedParen reduce using rule 56 (Equality -> EItem EQSymbols action_13 EItem action_14 .) or reduce using rule 56 (Equality -> EItem EQSymbols action_13 EItem action_14 .) state 156 (20) S -> do id action_24 equals EA action_25 coma EA . action_26 IntOrEmpty then B action_29 end do (43) EA -> EA . SumOrSub action_3 MultDiv action_4 (95) action_26 -> . (44) SumOrSub -> . plus (45) SumOrSub -> . minus coma reduce using rule 95 (action_26 -> .) then reduce using rule 95 (action_26 -> .) plus shift and go to state 72 minus shift and go to state 73 action_26 shift and go to state 158 SumOrSub shift and go to state 71 state 157 (37) Relif -> Relif elif action_18 openParen EL closedParen action_17 . then B then shift and go to state 159 state 158 (20) S -> do id action_24 equals EA action_25 coma EA action_26 . IntOrEmpty then B action_29 end do (40) IntOrEmpty -> . coma int action_28 (41) IntOrEmpty -> . action_27 (96) action_27 -> . coma shift and go to state 160 then reduce using rule 96 (action_27 -> .) IntOrEmpty shift and go to state 161 action_27 shift and go to state 162 state 159 (37) Relif -> Relif elif action_18 openParen EL closedParen action_17 then . B (13) B -> . B S (14) B -> . id reduce using rule 14 (B -> .) read reduce using rule 14 (B -> .) print reduce using rule 14 (B -> .) if reduce using rule 14 (B -> .) do reduce using rule 14 (B -> .) swap reduce using rule 14 (B -> .) exit reduce using rule 14 (B -> .) elif reduce using rule 14 (B -> .) else reduce using rule 14 (B -> .) end reduce using rule 14 (B -> .) B shift and go to state 163 state 160 (40) IntOrEmpty -> coma . int action_28 int shift and go to state 164 state 161 (20) S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty . then B action_29 end do then shift and go to state 165 state 162 (41) IntOrEmpty -> action_27 . then reduce using rule 41 (IntOrEmpty -> action_27 .) state 163 (37) Relif -> Relif elif action_18 openParen EL closedParen action_17 then B . (13) B -> B . S (15) S -> . Dimensional action_7 equals EA action_8 (16) S -> . id parens (17) S -> . read RDimensional (18) S -> . print RDimOrString (19) S -> . if action_16 Relif ElseOrEmpty end if action_20 (20) S -> . do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> . do then action_21 B action_22 end do (22) S -> . swap Dimensional coma Dimensional (23) S -> . exit action_23 (24) S -> . id openParen closedParen (25) Dimensional -> . id DimensionsOrEmpty elif reduce using rule 37 (Relif -> Relif elif action_18 openParen EL closedParen action_17 then B .) else reduce using rule 37 (Relif -> Relif elif action_18 openParen EL closedParen action_17 then B .) end reduce using rule 37 (Relif -> Relif elif action_18 openParen EL closedParen action_17 then B .) id shift and go to state 13 read shift and go to state 17 print shift and go to state 18 if shift and go to state 19 do shift and go to state 20 swap shift and go to state 21 exit shift and go to state 22 S shift and go to state 15 Dimensional shift and go to state 16 state 164 (40) IntOrEmpty -> coma int . action_28 (97) action_28 -> . then reduce using rule 97 (action_28 -> .) action_28 shift and go to state 166 state 165 (20) S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then . B action_29 end do (13) B -> . B S (14) B -> . id reduce using rule 14 (B -> .) read reduce using rule 14 (B -> .) print reduce using rule 14 (B -> .) if reduce using rule 14 (B -> .) do reduce using rule 14 (B -> .) swap reduce using rule 14 (B -> .) exit reduce using rule 14 (B -> .) end reduce using rule 14 (B -> .) B shift and go to state 167 state 166 (40) IntOrEmpty -> coma int action_28 . then reduce using rule 40 (IntOrEmpty -> coma int action_28 .) state 167 (20) S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B . action_29 end do (13) B -> B . S (98) action_29 -> . (15) S -> . Dimensional action_7 equals EA action_8 (16) S -> . id parens (17) S -> . read RDimensional (18) S -> . print RDimOrString (19) S -> . if action_16 Relif ElseOrEmpty end if action_20 (20) S -> . do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do (21) S -> . do then action_21 B action_22 end do (22) S -> . swap Dimensional coma Dimensional (23) S -> . exit action_23 (24) S -> . id openParen closedParen (25) Dimensional -> . id DimensionsOrEmpty end reduce using rule 98 (action_29 -> .) id shift and go to state 13 read shift and go to state 17 print shift and go to state 18 if shift and go to state 19 do shift and go to state 20 swap shift and go to state 21 exit shift and go to state 22 action_29 shift and go to state 168 S shift and go to state 15 Dimensional shift and go to state 16 state 168 (20) S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 . end do end shift and go to state 169 state 169 (20) S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end . do do shift and go to state 170 state 170 (20) S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do . end reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) id reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) read reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) print reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) if reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) do reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) swap reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) exit reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) elif reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) else reduce using rule 20 (S -> do id action_24 equals EA action_25 coma EA action_26 IntOrEmpty then B action_29 end do .) WARNING: WARNING: Conflicts: WARNING: WARNING: shift/reduce conflict for and in state 88 resolved as shift WARNING: shift/reduce conflict for or in state 119 resolved as shift WARNING: shift/reduce conflict for and in state 145 resolved as shift