0 $accept : lines $end 1 lines : 2 | lines line '\n' 3 | lines error '\n' 4 line : dexp 5 | vexp 6 | DREG '=' dexp 7 | VREG '=' vexp 8 dexp : CONST 9 | DREG 10 | dexp '+' dexp 11 | dexp '-' dexp 12 | dexp '*' dexp 13 | dexp '/' dexp 14 | '-' dexp 15 | '(' dexp ')' 16 vexp : dexp 17 | '(' dexp ',' dexp ')' 18 | VREG 19 | vexp '+' vexp 20 | dexp '+' vexp 21 | vexp '-' vexp 22 | dexp '-' vexp 23 | vexp '*' vexp 24 | dexp '*' vexp 25 | vexp '/' vexp 26 | dexp '/' vexp 27 | '-' vexp 28 | '(' vexp ')' state 0 $accept : . lines $end (0) lines : . (1) . reduce 1 lines goto 1 state 1 $accept : lines . $end (0) lines : lines . line '\n' (2) lines : lines . error '\n' (3) $end accept error shift 2 DREG shift 3 VREG shift 4 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 8 vexp goto 9 line goto 10 state 2 lines : lines error . '\n' (3) '\n' shift 11 . error state 3 line : DREG . '=' dexp (6) dexp : DREG . (9) '=' shift 12 '+' reduce 9 '-' reduce 9 '*' reduce 9 '/' reduce 9 '\n' reduce 9 state 4 line : VREG . '=' vexp (7) vexp : VREG . (18) '=' shift 13 '+' reduce 18 '-' reduce 18 '*' reduce 18 '/' reduce 18 '\n' reduce 18 state 5 dexp : CONST . (8) . reduce 8 state 6 dexp : '-' . dexp (14) vexp : '-' . vexp (27) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 16 vexp goto 17 state 7 dexp : '(' . dexp ')' (15) vexp : '(' . dexp ',' dexp ')' (17) vexp : '(' . vexp ')' (28) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 18 vexp goto 19 8: shift/reduce conflict (shift 20, reduce 16) on '+' 8: shift/reduce conflict (shift 21, reduce 16) on '-' 8: shift/reduce conflict (shift 22, reduce 16) on '*' 8: shift/reduce conflict (shift 23, reduce 16) on '/' 8: reduce/reduce conflict (reduce 4, reduce 16) on '\n' state 8 line : dexp . (4) dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) vexp : dexp . (16) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '+' [trial] shift 20 '-' [trial] shift 21 '*' [trial] shift 22 '/' [trial] shift 23 '+' [trial] reduce 16 '-' [trial] reduce 16 '*' [trial] reduce 16 '/' [trial] reduce 16 '\n' [trial] reduce 4 '\n' [trial] reduce 16 state 9 line : vexp . (5) vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) '+' shift 24 '-' shift 25 '*' shift 26 '/' shift 27 '\n' reduce 5 state 10 lines : lines line . '\n' (2) '\n' shift 28 . error state 11 lines : lines error '\n' . (3) . reduce 3 state 12 line : DREG '=' . dexp (6) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 31 state 13 line : VREG '=' . vexp (7) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 32 vexp goto 33 state 14 dexp : DREG . (9) . reduce 9 state 15 vexp : VREG . (18) . reduce 18 16: reduce/reduce conflict (reduce 14, reduce 16) on '+' 16: reduce/reduce conflict (reduce 14, reduce 16) on '-' 16: reduce/reduce conflict (reduce 14, reduce 16) on '*' 16: reduce/reduce conflict (reduce 14, reduce 16) on '/' 16: reduce/reduce conflict (reduce 14, reduce 16) on '\n' 16: reduce/reduce conflict (reduce 14, reduce 16) on ')' state 16 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) dexp : '-' dexp . (14) vexp : dexp . (16) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '+' [trial] reduce 14 '+' [trial] reduce 16 '-' [trial] reduce 14 '-' [trial] reduce 16 '*' [trial] reduce 14 '*' [trial] reduce 16 '/' [trial] reduce 14 '/' [trial] reduce 16 '\n' [trial] reduce 14 '\n' [trial] reduce 16 ')' [trial] reduce 14 ')' [trial] reduce 16 ',' reduce 14 state 17 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) vexp : '-' vexp . (27) . reduce 27 18: shift/reduce conflict (shift 20, reduce 16) on '+' 18: shift/reduce conflict (shift 21, reduce 16) on '-' 18: shift/reduce conflict (shift 22, reduce 16) on '*' 18: shift/reduce conflict (shift 23, reduce 16) on '/' 18: shift/reduce conflict (shift 34, reduce 16) on ')' state 18 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) dexp : '(' dexp . ')' (15) vexp : dexp . (16) vexp : '(' dexp . ',' dexp ')' (17) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '+' [trial] shift 20 '-' [trial] shift 21 '*' [trial] shift 22 '/' [trial] shift 23 ')' [trial] shift 34 ',' shift 35 '+' [trial] reduce 16 '-' [trial] reduce 16 '*' [trial] reduce 16 '/' [trial] reduce 16 ')' [trial] reduce 16 state 19 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) vexp : '(' vexp . ')' (28) '+' shift 24 '-' shift 25 '*' shift 26 '/' shift 27 ')' shift 36 . error state 20 dexp : dexp '+' . dexp (10) vexp : dexp '+' . vexp (20) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 37 vexp goto 38 state 21 dexp : dexp '-' . dexp (11) vexp : dexp '-' . vexp (22) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 39 vexp goto 40 state 22 dexp : dexp '*' . dexp (12) vexp : dexp '*' . vexp (24) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 41 vexp goto 42 state 23 dexp : dexp '/' . dexp (13) vexp : dexp '/' . vexp (26) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 43 vexp goto 44 state 24 vexp : vexp '+' . vexp (19) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 32 vexp goto 45 state 25 vexp : vexp '-' . vexp (21) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 32 vexp goto 46 state 26 vexp : vexp '*' . vexp (23) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 32 vexp goto 47 state 27 vexp : vexp '/' . vexp (25) DREG shift 14 VREG shift 15 CONST shift 5 '-' shift 6 '(' shift 7 . error dexp goto 32 vexp goto 48 state 28 lines : lines line '\n' . (2) . reduce 2 state 29 dexp : '-' . dexp (14) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 49 state 30 dexp : '(' . dexp ')' (15) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 50 state 31 line : DREG '=' dexp . (6) dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) '+' shift 51 '-' shift 52 '*' shift 53 '/' shift 54 '\n' reduce 6 32: shift/reduce conflict (shift 20, reduce 16) on '+' 32: shift/reduce conflict (shift 21, reduce 16) on '-' 32: shift/reduce conflict (shift 22, reduce 16) on '*' 32: shift/reduce conflict (shift 23, reduce 16) on '/' state 32 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) vexp : dexp . (16) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '+' [trial] shift 20 '-' [trial] shift 21 '*' [trial] shift 22 '/' [trial] shift 23 '+' [trial] reduce 16 '-' [trial] reduce 16 '*' [trial] reduce 16 '/' [trial] reduce 16 '\n' reduce 16 ')' reduce 16 state 33 line : VREG '=' vexp . (7) vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) '+' shift 24 '-' shift 25 '*' shift 26 '/' shift 27 '\n' reduce 7 state 34 dexp : '(' dexp ')' . (15) . reduce 15 state 35 vexp : '(' dexp ',' . dexp ')' (17) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 55 state 36 vexp : '(' vexp ')' . (28) . reduce 28 37: reduce/reduce conflict (reduce 10, reduce 16) on '+' 37: reduce/reduce conflict (reduce 10, reduce 16) on '-' 37: shift/reduce conflict (shift 22, reduce 16) on '*' 37: shift/reduce conflict (shift 23, reduce 16) on '/' 37: reduce/reduce conflict (reduce 10, reduce 16) on '\n' 37: reduce/reduce conflict (reduce 10, reduce 16) on ')' state 37 dexp : dexp . '+' dexp (10) dexp : dexp '+' dexp . (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) vexp : dexp . (16) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '*' [trial] shift 22 '/' [trial] shift 23 '+' [trial] reduce 10 '+' [trial] reduce 16 '-' [trial] reduce 10 '-' [trial] reduce 16 '*' [trial] reduce 16 '/' [trial] reduce 16 '\n' [trial] reduce 10 '\n' [trial] reduce 16 ')' [trial] reduce 10 ')' [trial] reduce 16 ',' reduce 10 state 38 vexp : vexp . '+' vexp (19) vexp : dexp '+' vexp . (20) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) '*' shift 26 '/' shift 27 '+' reduce 20 '-' reduce 20 '\n' reduce 20 ')' reduce 20 39: reduce/reduce conflict (reduce 11, reduce 16) on '+' 39: reduce/reduce conflict (reduce 11, reduce 16) on '-' 39: shift/reduce conflict (shift 22, reduce 16) on '*' 39: shift/reduce conflict (shift 23, reduce 16) on '/' 39: reduce/reduce conflict (reduce 11, reduce 16) on '\n' 39: reduce/reduce conflict (reduce 11, reduce 16) on ')' state 39 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp '-' dexp . (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) vexp : dexp . (16) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '*' [trial] shift 22 '/' [trial] shift 23 '+' [trial] reduce 11 '+' [trial] reduce 16 '-' [trial] reduce 11 '-' [trial] reduce 16 '*' [trial] reduce 16 '/' [trial] reduce 16 '\n' [trial] reduce 11 '\n' [trial] reduce 16 ')' [trial] reduce 11 ')' [trial] reduce 16 ',' reduce 11 state 40 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : dexp '-' vexp . (22) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) '*' shift 26 '/' shift 27 '+' reduce 22 '-' reduce 22 '\n' reduce 22 ')' reduce 22 41: reduce/reduce conflict (reduce 12, reduce 16) on '+' 41: reduce/reduce conflict (reduce 12, reduce 16) on '-' 41: reduce/reduce conflict (reduce 12, reduce 16) on '*' 41: reduce/reduce conflict (reduce 12, reduce 16) on '/' 41: reduce/reduce conflict (reduce 12, reduce 16) on '\n' 41: reduce/reduce conflict (reduce 12, reduce 16) on ')' state 41 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp '*' dexp . (12) dexp : dexp . '/' dexp (13) vexp : dexp . (16) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '+' [trial] reduce 12 '+' [trial] reduce 16 '-' [trial] reduce 12 '-' [trial] reduce 16 '*' [trial] reduce 12 '*' [trial] reduce 16 '/' [trial] reduce 12 '/' [trial] reduce 16 '\n' [trial] reduce 12 '\n' [trial] reduce 16 ')' [trial] reduce 12 ')' [trial] reduce 16 ',' reduce 12 state 42 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : dexp '*' vexp . (24) vexp : vexp . '/' vexp (25) . reduce 24 43: reduce/reduce conflict (reduce 13, reduce 16) on '+' 43: reduce/reduce conflict (reduce 13, reduce 16) on '-' 43: reduce/reduce conflict (reduce 13, reduce 16) on '*' 43: reduce/reduce conflict (reduce 13, reduce 16) on '/' 43: reduce/reduce conflict (reduce 13, reduce 16) on '\n' 43: reduce/reduce conflict (reduce 13, reduce 16) on ')' state 43 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) dexp : dexp '/' dexp . (13) vexp : dexp . (16) vexp : dexp . '+' vexp (20) vexp : dexp . '-' vexp (22) vexp : dexp . '*' vexp (24) vexp : dexp . '/' vexp (26) '+' [trial] reduce 13 '+' [trial] reduce 16 '-' [trial] reduce 13 '-' [trial] reduce 16 '*' [trial] reduce 13 '*' [trial] reduce 16 '/' [trial] reduce 13 '/' [trial] reduce 16 '\n' [trial] reduce 13 '\n' [trial] reduce 16 ')' [trial] reduce 13 ')' [trial] reduce 16 ',' reduce 13 state 44 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) vexp : dexp '/' vexp . (26) . reduce 26 state 45 vexp : vexp . '+' vexp (19) vexp : vexp '+' vexp . (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) '*' shift 26 '/' shift 27 '+' reduce 19 '-' reduce 19 '\n' reduce 19 ')' reduce 19 state 46 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp '-' vexp . (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) '*' shift 26 '/' shift 27 '+' reduce 21 '-' reduce 21 '\n' reduce 21 ')' reduce 21 state 47 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp '*' vexp . (23) vexp : vexp . '/' vexp (25) . reduce 23 state 48 vexp : vexp . '+' vexp (19) vexp : vexp . '-' vexp (21) vexp : vexp . '*' vexp (23) vexp : vexp . '/' vexp (25) vexp : vexp '/' vexp . (25) . reduce 25 state 49 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) dexp : '-' dexp . (14) . reduce 14 state 50 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) dexp : '(' dexp . ')' (15) '+' shift 51 '-' shift 52 '*' shift 53 '/' shift 54 ')' shift 34 . error state 51 dexp : dexp '+' . dexp (10) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 56 state 52 dexp : dexp '-' . dexp (11) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 57 state 53 dexp : dexp '*' . dexp (12) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 58 state 54 dexp : dexp '/' . dexp (13) DREG shift 14 CONST shift 5 '-' shift 29 '(' shift 30 . error dexp goto 59 state 55 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) vexp : '(' dexp ',' dexp . ')' (17) '+' shift 51 '-' shift 52 '*' shift 53 '/' shift 54 ')' shift 60 . error state 56 dexp : dexp . '+' dexp (10) dexp : dexp '+' dexp . (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) '*' shift 53 '/' shift 54 '+' reduce 10 '-' reduce 10 '\n' reduce 10 ')' reduce 10 state 57 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp '-' dexp . (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) '*' shift 53 '/' shift 54 '+' reduce 11 '-' reduce 11 '\n' reduce 11 ')' reduce 11 state 58 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp '*' dexp . (12) dexp : dexp . '/' dexp (13) . reduce 12 state 59 dexp : dexp . '+' dexp (10) dexp : dexp . '-' dexp (11) dexp : dexp . '*' dexp (12) dexp : dexp . '/' dexp (13) dexp : dexp '/' dexp . (13) . reduce 13 state 60 vexp : '(' dexp ',' dexp ')' . (17) . reduce 17 State 8 contains 4 shift/reduce conflicts, 1 reduce/reduce conflict. State 16 contains 6 reduce/reduce conflicts. State 18 contains 5 shift/reduce conflicts. State 32 contains 4 shift/reduce conflicts. State 37 contains 2 shift/reduce conflicts, 4 reduce/reduce conflicts. State 39 contains 2 shift/reduce conflicts, 4 reduce/reduce conflicts. State 41 contains 6 reduce/reduce conflicts. State 43 contains 6 reduce/reduce conflicts. 15 terminals, 5 nonterminals 29 grammar rules, 61 states grammar parser grammar symbol# value# symbol 0 0 $end 1 256 error 2 257 DREG 3 258 VREG 4 259 CONST 5 43 '+' 6 45 '-' 7 42 '*' 8 47 '/' 9 260 UMINUS 10 10 '\n' 11 61 '=' 12 40 '(' 13 41 ')' 14 44 ',' 15 261 $accept 16 262 lines 17 263 dexp 18 264 vexp 19 265 line