0 $accept : %entry% $end 1 program : expr EOF 2 expr : lvalue 3 | sequence 4 | literal 5 | function_call 6 | arithmetic 7 | comparison 8 | boolean 9 | construction 10 | lvalue ASSIGN expr 11 | if_statement 12 | loop_statement 13 | LET decs IN expr_list END 14 | TRY expr handlers 15 | RAISE id 16 | SPAWN id 17 id : ID 18 lvalue : id 19 | id DOT id 20 | id LBRACK expr RBRACK 21 | lvalue DOT id 22 | lvalue LBRACK expr RBRACK 23 sequence : LPAREN RPAREN 24 | LPAREN expr_list RPAREN 25 expr_list : expr 26 | expr SEMICOLON expr_list 27 literal : NIL 28 | INT 29 | STRING 30 function_call : id LPAREN fun_args RPAREN 31 fun_args : 32 | expr 33 | expr COMMA fun_args 34 arithmetic : MINUS expr 35 | expr PLUS expr 36 | expr MINUS expr 37 | expr TIMES expr 38 | expr DIVIDE expr 39 comparison : expr EQ expr 40 | expr NEQ expr 41 | expr GT expr 42 | expr LT expr 43 | expr GE expr 44 | expr LE expr 45 boolean : expr AND expr 46 | expr OR expr 47 construction : id LBRACE ctor_list RBRACE 48 | id LBRACK expr RBRACK OF expr 49 ctor_list : id EQ expr 50 | id EQ expr COMMA ctor_list 51 if_statement : IF expr THEN expr 52 | IF expr THEN expr ELSE expr 53 loop_statement : WHILE expr DO expr 54 | FOR id ASSIGN expr TO expr DO expr 55 | BREAK 56 handler : HANDLE id expr END 57 handlers : handler 58 | handler handlers 59 decs : dec 60 | dec decs 61 dec : var_dec 62 | type_decs 63 | fun_decs 64 | exn_dec 65 var_dec : VAR id ASSIGN expr 66 | VAR id COLON id ASSIGN expr 67 type_decs : type_dec 68 | type_dec type_decs 69 type_dec : TYPE id EQ ty 70 ty : id 71 | LBRACE ty_fields RBRACE 72 | ARRAY OF id 73 ty_fields : 74 | id COLON id 75 | id COLON id COMMA ty_fields 76 fun_decs : fun_dec 77 | fun_dec fun_decs 78 fun_dec : FUNCTION id LPAREN ty_fields RPAREN EQ expr 79 | FUNCTION id LPAREN ty_fields RPAREN COLON id EQ expr 80 exn_dec : EXCEPTION id 81 %entry% : '\001' program state 0 $accept : . %entry% $end (0) '\001' shift 1 . error %entry% goto 2 state 1 %entry% : '\001' . program (81) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error program goto 17 expr goto 18 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 2 $accept : %entry% . $end (0) $end accept state 3 loop_statement : BREAK . (55) . reduce 55 state 4 loop_statement : FOR . id ASSIGN expr TO expr DO expr (54) ID shift 15 . error id goto 30 state 5 if_statement : IF . expr THEN expr (51) if_statement : IF . expr THEN expr ELSE expr (52) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 31 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 6 expr : LET . decs IN expr_list END (13) EXCEPTION shift 32 FUNCTION shift 33 TYPE shift 34 VAR shift 35 . error decs goto 36 dec goto 37 var_dec goto 38 type_decs goto 39 fun_decs goto 40 exn_dec goto 41 type_dec goto 42 fun_dec goto 43 state 7 sequence : LPAREN . RPAREN (23) sequence : LPAREN . expr_list RPAREN (24) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 RPAREN shift 44 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 45 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 expr_list goto 46 id goto 29 state 8 arithmetic : MINUS . expr (34) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 47 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 9 literal : NIL . (27) . reduce 27 state 10 expr : RAISE . id (15) ID shift 15 . error id goto 48 state 11 expr : SPAWN . id (16) ID shift 15 . error id goto 49 state 12 expr : TRY . expr handlers (14) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 50 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 13 loop_statement : WHILE . expr DO expr (53) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 51 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 14 literal : INT . (28) . reduce 28 state 15 id : ID . (17) . reduce 17 state 16 literal : STRING . (29) . reduce 29 state 17 %entry% : '\001' program . (81) . reduce 81 state 18 program : expr . EOF (1) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) AND shift 52 DIVIDE shift 53 EOF shift 54 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 . error state 19 expr : lvalue . (2) expr : lvalue . ASSIGN expr (10) lvalue : lvalue . DOT id (21) lvalue : lvalue . LBRACK expr RBRACK (22) ASSIGN shift 65 DOT shift 66 LBRACK shift 67 AND reduce 2 COMMA reduce 2 DIVIDE reduce 2 DO reduce 2 ELSE reduce 2 END reduce 2 EOF reduce 2 EQ reduce 2 EXCEPTION reduce 2 FUNCTION reduce 2 GE reduce 2 GT reduce 2 HANDLE reduce 2 IN reduce 2 LE reduce 2 LT reduce 2 MINUS reduce 2 NEQ reduce 2 OR reduce 2 PLUS reduce 2 RBRACE reduce 2 RBRACK reduce 2 RPAREN reduce 2 SEMICOLON reduce 2 TIMES reduce 2 THEN reduce 2 TO reduce 2 TYPE reduce 2 VAR reduce 2 state 20 expr : sequence . (3) . reduce 3 state 21 expr : literal . (4) . reduce 4 state 22 expr : function_call . (5) . reduce 5 state 23 expr : arithmetic . (6) . reduce 6 state 24 expr : comparison . (7) . reduce 7 state 25 expr : boolean . (8) . reduce 8 state 26 expr : construction . (9) . reduce 9 state 27 expr : if_statement . (11) . reduce 11 state 28 expr : loop_statement . (12) . reduce 12 29: shift/reduce conflict (shift 68, reduce 18) on DOT 29: shift/reduce conflict (shift 70, reduce 18) on LBRACK state 29 lvalue : id . (18) lvalue : id . DOT id (19) lvalue : id . LBRACK expr RBRACK (20) function_call : id . LPAREN fun_args RPAREN (30) construction : id . LBRACE ctor_list RBRACE (47) construction : id . LBRACK expr RBRACK OF expr (48) DOT shift 68 LBRACE shift 69 LBRACK shift 70 LPAREN shift 71 AND reduce 18 ASSIGN reduce 18 COMMA reduce 18 DIVIDE reduce 18 DO reduce 18 ELSE reduce 18 END reduce 18 EOF reduce 18 EQ reduce 18 EXCEPTION reduce 18 FUNCTION reduce 18 GE reduce 18 GT reduce 18 HANDLE reduce 18 IN reduce 18 LE reduce 18 LT reduce 18 MINUS reduce 18 NEQ reduce 18 OR reduce 18 PLUS reduce 18 RBRACE reduce 18 RBRACK reduce 18 RPAREN reduce 18 SEMICOLON reduce 18 TIMES reduce 18 THEN reduce 18 TO reduce 18 TYPE reduce 18 VAR reduce 18 state 30 loop_statement : FOR id . ASSIGN expr TO expr DO expr (54) ASSIGN shift 72 . error state 31 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) if_statement : IF expr . THEN expr (51) if_statement : IF expr . THEN expr ELSE expr (52) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 THEN shift 73 . error state 32 exn_dec : EXCEPTION . id (80) ID shift 15 . error id goto 74 state 33 fun_dec : FUNCTION . id LPAREN ty_fields RPAREN EQ expr (78) fun_dec : FUNCTION . id LPAREN ty_fields RPAREN COLON id EQ expr (79) ID shift 15 . error id goto 75 state 34 type_dec : TYPE . id EQ ty (69) ID shift 15 . error id goto 76 state 35 var_dec : VAR . id ASSIGN expr (65) var_dec : VAR . id COLON id ASSIGN expr (66) ID shift 15 . error id goto 77 state 36 expr : LET decs . IN expr_list END (13) IN shift 78 . error state 37 decs : dec . (59) decs : dec . decs (60) EXCEPTION shift 32 FUNCTION shift 33 TYPE shift 34 VAR shift 35 IN reduce 59 decs goto 79 dec goto 37 var_dec goto 38 type_decs goto 39 fun_decs goto 40 exn_dec goto 41 type_dec goto 42 fun_dec goto 43 state 38 dec : var_dec . (61) . reduce 61 state 39 dec : type_decs . (62) . reduce 62 state 40 dec : fun_decs . (63) . reduce 63 state 41 dec : exn_dec . (64) . reduce 64 42: shift/reduce conflict (shift 34, reduce 67) on TYPE state 42 type_decs : type_dec . (67) type_decs : type_dec . type_decs (68) TYPE shift 34 EXCEPTION reduce 67 FUNCTION reduce 67 IN reduce 67 VAR reduce 67 type_decs goto 80 type_dec goto 42 43: shift/reduce conflict (shift 33, reduce 76) on FUNCTION state 43 fun_decs : fun_dec . (76) fun_decs : fun_dec . fun_decs (77) FUNCTION shift 33 EXCEPTION reduce 76 IN reduce 76 TYPE reduce 76 VAR reduce 76 fun_decs goto 81 fun_dec goto 43 state 44 sequence : LPAREN RPAREN . (23) . reduce 23 state 45 expr_list : expr . (25) expr_list : expr . SEMICOLON expr_list (26) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 SEMICOLON shift 82 TIMES shift 64 END reduce 25 RPAREN reduce 25 state 46 sequence : LPAREN expr_list . RPAREN (24) RPAREN shift 83 . error state 47 arithmetic : MINUS expr . (34) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) . reduce 34 state 48 expr : RAISE id . (15) . reduce 15 state 49 expr : SPAWN id . (16) . reduce 16 state 50 expr : TRY expr . handlers (14) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 HANDLE shift 84 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 . error handlers goto 85 handler goto 86 state 51 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) loop_statement : WHILE expr . DO expr (53) AND shift 52 DIVIDE shift 53 DO shift 87 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 . error state 52 boolean : expr AND . expr (45) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 88 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 53 arithmetic : expr DIVIDE . expr (38) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 89 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 54 program : expr EOF . (1) . reduce 1 state 55 comparison : expr EQ . expr (39) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 90 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 56 comparison : expr GE . expr (43) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 91 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 57 comparison : expr GT . expr (41) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 92 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 58 comparison : expr LE . expr (44) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 93 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 59 comparison : expr LT . expr (42) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 94 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 60 arithmetic : expr MINUS . expr (36) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 95 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 61 comparison : expr NEQ . expr (40) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 96 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 62 boolean : expr OR . expr (46) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 97 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 63 arithmetic : expr PLUS . expr (35) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 98 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 64 arithmetic : expr TIMES . expr (37) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 99 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 65 expr : lvalue ASSIGN . expr (10) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 100 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 66 lvalue : lvalue DOT . id (21) ID shift 15 . error id goto 101 state 67 lvalue : lvalue LBRACK . expr RBRACK (22) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 102 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 68 lvalue : id DOT . id (19) ID shift 15 . error id goto 103 state 69 construction : id LBRACE . ctor_list RBRACE (47) ID shift 15 . error id goto 104 ctor_list goto 105 state 70 lvalue : id LBRACK . expr RBRACK (20) construction : id LBRACK . expr RBRACK OF expr (48) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 106 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 71 function_call : id LPAREN . fun_args RPAREN (30) fun_args : . (31) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 RPAREN reduce 31 expr goto 107 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 fun_args goto 108 state 72 loop_statement : FOR id ASSIGN . expr TO expr DO expr (54) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 109 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 73 if_statement : IF expr THEN . expr (51) if_statement : IF expr THEN . expr ELSE expr (52) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 110 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 74 exn_dec : EXCEPTION id . (80) . reduce 80 state 75 fun_dec : FUNCTION id . LPAREN ty_fields RPAREN EQ expr (78) fun_dec : FUNCTION id . LPAREN ty_fields RPAREN COLON id EQ expr (79) LPAREN shift 111 . error state 76 type_dec : TYPE id . EQ ty (69) EQ shift 112 . error state 77 var_dec : VAR id . ASSIGN expr (65) var_dec : VAR id . COLON id ASSIGN expr (66) ASSIGN shift 113 COLON shift 114 . error state 78 expr : LET decs IN . expr_list END (13) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 45 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 expr_list goto 115 id goto 29 state 79 decs : dec decs . (60) . reduce 60 state 80 type_decs : type_dec type_decs . (68) . reduce 68 state 81 fun_decs : fun_dec fun_decs . (77) . reduce 77 state 82 expr_list : expr SEMICOLON . expr_list (26) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 45 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 expr_list goto 116 id goto 29 state 83 sequence : LPAREN expr_list RPAREN . (24) . reduce 24 state 84 handler : HANDLE . id expr END (56) ID shift 15 . error id goto 117 state 85 expr : TRY expr handlers . (14) . reduce 14 86: shift/reduce conflict (shift 84, reduce 57) on HANDLE state 86 handlers : handler . (57) handlers : handler . handlers (58) HANDLE shift 84 AND reduce 57 COMMA reduce 57 DIVIDE reduce 57 DO reduce 57 ELSE reduce 57 END reduce 57 EOF reduce 57 EQ reduce 57 EXCEPTION reduce 57 FUNCTION reduce 57 GE reduce 57 GT reduce 57 IN reduce 57 LE reduce 57 LT reduce 57 MINUS reduce 57 NEQ reduce 57 OR reduce 57 PLUS reduce 57 RBRACE reduce 57 RBRACK reduce 57 RPAREN reduce 57 SEMICOLON reduce 57 TIMES reduce 57 THEN reduce 57 TO reduce 57 TYPE reduce 57 VAR reduce 57 handlers goto 118 handler goto 86 state 87 loop_statement : WHILE expr DO . expr (53) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 119 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 88 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr AND expr . (45) boolean : expr . OR expr (46) DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 PLUS shift 63 TIMES shift 64 AND reduce 45 COMMA reduce 45 DO reduce 45 ELSE reduce 45 END reduce 45 EOF reduce 45 EXCEPTION reduce 45 FUNCTION reduce 45 HANDLE reduce 45 IN reduce 45 OR reduce 45 RBRACE reduce 45 RBRACK reduce 45 RPAREN reduce 45 SEMICOLON reduce 45 THEN reduce 45 TO reduce 45 TYPE reduce 45 VAR reduce 45 state 89 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) arithmetic : expr DIVIDE expr . (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) . reduce 38 state 90 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr EQ expr . (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 MINUS shift 60 PLUS shift 63 TIMES shift 64 AND reduce 39 COMMA reduce 39 DO reduce 39 ELSE reduce 39 END reduce 39 EOF reduce 39 EXCEPTION reduce 39 FUNCTION reduce 39 HANDLE reduce 39 IN reduce 39 OR reduce 39 RBRACE reduce 39 RBRACK reduce 39 RPAREN reduce 39 SEMICOLON reduce 39 THEN reduce 39 TO reduce 39 TYPE reduce 39 VAR reduce 39 state 91 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr GE expr . (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 MINUS shift 60 PLUS shift 63 TIMES shift 64 AND reduce 43 COMMA reduce 43 DO reduce 43 ELSE reduce 43 END reduce 43 EOF reduce 43 EXCEPTION reduce 43 FUNCTION reduce 43 HANDLE reduce 43 IN reduce 43 OR reduce 43 RBRACE reduce 43 RBRACK reduce 43 RPAREN reduce 43 SEMICOLON reduce 43 THEN reduce 43 TO reduce 43 TYPE reduce 43 VAR reduce 43 state 92 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr GT expr . (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 MINUS shift 60 PLUS shift 63 TIMES shift 64 AND reduce 41 COMMA reduce 41 DO reduce 41 ELSE reduce 41 END reduce 41 EOF reduce 41 EXCEPTION reduce 41 FUNCTION reduce 41 HANDLE reduce 41 IN reduce 41 OR reduce 41 RBRACE reduce 41 RBRACK reduce 41 RPAREN reduce 41 SEMICOLON reduce 41 THEN reduce 41 TO reduce 41 TYPE reduce 41 VAR reduce 41 state 93 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) comparison : expr LE expr . (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 MINUS shift 60 PLUS shift 63 TIMES shift 64 AND reduce 44 COMMA reduce 44 DO reduce 44 ELSE reduce 44 END reduce 44 EOF reduce 44 EXCEPTION reduce 44 FUNCTION reduce 44 HANDLE reduce 44 IN reduce 44 OR reduce 44 RBRACE reduce 44 RBRACK reduce 44 RPAREN reduce 44 SEMICOLON reduce 44 THEN reduce 44 TO reduce 44 TYPE reduce 44 VAR reduce 44 state 94 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr LT expr . (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 MINUS shift 60 PLUS shift 63 TIMES shift 64 AND reduce 42 COMMA reduce 42 DO reduce 42 ELSE reduce 42 END reduce 42 EOF reduce 42 EXCEPTION reduce 42 FUNCTION reduce 42 HANDLE reduce 42 IN reduce 42 OR reduce 42 RBRACE reduce 42 RBRACK reduce 42 RPAREN reduce 42 SEMICOLON reduce 42 THEN reduce 42 TO reduce 42 TYPE reduce 42 VAR reduce 42 state 95 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr MINUS expr . (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 TIMES shift 64 AND reduce 36 COMMA reduce 36 DO reduce 36 ELSE reduce 36 END reduce 36 EOF reduce 36 EQ reduce 36 EXCEPTION reduce 36 FUNCTION reduce 36 GE reduce 36 GT reduce 36 HANDLE reduce 36 IN reduce 36 LE reduce 36 LT reduce 36 MINUS reduce 36 NEQ reduce 36 OR reduce 36 PLUS reduce 36 RBRACE reduce 36 RBRACK reduce 36 RPAREN reduce 36 SEMICOLON reduce 36 THEN reduce 36 TO reduce 36 TYPE reduce 36 VAR reduce 36 state 96 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr NEQ expr . (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 MINUS shift 60 PLUS shift 63 TIMES shift 64 AND reduce 40 COMMA reduce 40 DO reduce 40 ELSE reduce 40 END reduce 40 EOF reduce 40 EXCEPTION reduce 40 FUNCTION reduce 40 HANDLE reduce 40 IN reduce 40 OR reduce 40 RBRACE reduce 40 RBRACK reduce 40 RPAREN reduce 40 SEMICOLON reduce 40 THEN reduce 40 TO reduce 40 TYPE reduce 40 VAR reduce 40 state 97 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) boolean : expr OR expr . (46) DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 PLUS shift 63 TIMES shift 64 AND reduce 46 COMMA reduce 46 DO reduce 46 ELSE reduce 46 END reduce 46 EOF reduce 46 EXCEPTION reduce 46 FUNCTION reduce 46 HANDLE reduce 46 IN reduce 46 OR reduce 46 RBRACE reduce 46 RBRACK reduce 46 RPAREN reduce 46 SEMICOLON reduce 46 THEN reduce 46 TO reduce 46 TYPE reduce 46 VAR reduce 46 state 98 arithmetic : expr . PLUS expr (35) arithmetic : expr PLUS expr . (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) DIVIDE shift 53 TIMES shift 64 AND reduce 35 COMMA reduce 35 DO reduce 35 ELSE reduce 35 END reduce 35 EOF reduce 35 EQ reduce 35 EXCEPTION reduce 35 FUNCTION reduce 35 GE reduce 35 GT reduce 35 HANDLE reduce 35 IN reduce 35 LE reduce 35 LT reduce 35 MINUS reduce 35 NEQ reduce 35 OR reduce 35 PLUS reduce 35 RBRACE reduce 35 RBRACK reduce 35 RPAREN reduce 35 SEMICOLON reduce 35 THEN reduce 35 TO reduce 35 TYPE reduce 35 VAR reduce 35 state 99 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr TIMES expr . (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) . reduce 37 state 100 expr : lvalue ASSIGN expr . (10) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 COMMA reduce 10 DO reduce 10 ELSE reduce 10 END reduce 10 EOF reduce 10 EXCEPTION reduce 10 FUNCTION reduce 10 HANDLE reduce 10 IN reduce 10 RBRACE reduce 10 RBRACK reduce 10 RPAREN reduce 10 SEMICOLON reduce 10 THEN reduce 10 TO reduce 10 TYPE reduce 10 VAR reduce 10 state 101 lvalue : lvalue DOT id . (21) . reduce 21 state 102 lvalue : lvalue LBRACK expr . RBRACK (22) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 RBRACK shift 120 TIMES shift 64 . error state 103 lvalue : id DOT id . (19) . reduce 19 state 104 ctor_list : id . EQ expr (49) ctor_list : id . EQ expr COMMA ctor_list (50) EQ shift 121 . error state 105 construction : id LBRACE ctor_list . RBRACE (47) RBRACE shift 122 . error state 106 lvalue : id LBRACK expr . RBRACK (20) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) construction : id LBRACK expr . RBRACK OF expr (48) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 RBRACK shift 123 TIMES shift 64 . error state 107 fun_args : expr . (32) fun_args : expr . COMMA fun_args (33) arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) AND shift 52 COMMA shift 124 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 RPAREN reduce 32 state 108 function_call : id LPAREN fun_args . RPAREN (30) RPAREN shift 125 . error state 109 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) loop_statement : FOR id ASSIGN expr . TO expr DO expr (54) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 TO shift 126 . error 110: shift/reduce conflict (shift 52, reduce 51) on AND 110: shift/reduce conflict (shift 53, reduce 51) on DIVIDE 110: shift/reduce conflict (shift 127, reduce 51) on ELSE 110: shift/reduce conflict (shift 55, reduce 51) on EQ 110: shift/reduce conflict (shift 56, reduce 51) on GE 110: shift/reduce conflict (shift 57, reduce 51) on GT 110: shift/reduce conflict (shift 58, reduce 51) on LE 110: shift/reduce conflict (shift 59, reduce 51) on LT 110: shift/reduce conflict (shift 60, reduce 51) on MINUS 110: shift/reduce conflict (shift 61, reduce 51) on NEQ 110: shift/reduce conflict (shift 62, reduce 51) on OR 110: shift/reduce conflict (shift 63, reduce 51) on PLUS 110: shift/reduce conflict (shift 64, reduce 51) on TIMES state 110 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) if_statement : IF expr THEN expr . (51) if_statement : IF expr THEN expr . ELSE expr (52) AND shift 52 DIVIDE shift 53 ELSE shift 127 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 COMMA reduce 51 DO reduce 51 END reduce 51 EOF reduce 51 EXCEPTION reduce 51 FUNCTION reduce 51 HANDLE reduce 51 IN reduce 51 RBRACE reduce 51 RBRACK reduce 51 RPAREN reduce 51 SEMICOLON reduce 51 THEN reduce 51 TO reduce 51 TYPE reduce 51 VAR reduce 51 state 111 fun_dec : FUNCTION id LPAREN . ty_fields RPAREN EQ expr (78) fun_dec : FUNCTION id LPAREN . ty_fields RPAREN COLON id EQ expr (79) ty_fields : . (73) ID shift 15 RPAREN reduce 73 id goto 128 ty_fields goto 129 state 112 type_dec : TYPE id EQ . ty (69) ARRAY shift 130 LBRACE shift 131 ID shift 15 . error id goto 132 ty goto 133 state 113 var_dec : VAR id ASSIGN . expr (65) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 134 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 114 var_dec : VAR id COLON . id ASSIGN expr (66) ID shift 15 . error id goto 135 state 115 expr : LET decs IN expr_list . END (13) END shift 136 . error state 116 expr_list : expr SEMICOLON expr_list . (26) . reduce 26 state 117 handler : HANDLE id . expr END (56) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 137 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 118 handlers : handler handlers . (58) . reduce 58 119: shift/reduce conflict (shift 52, reduce 53) on AND 119: shift/reduce conflict (shift 53, reduce 53) on DIVIDE 119: shift/reduce conflict (shift 55, reduce 53) on EQ 119: shift/reduce conflict (shift 56, reduce 53) on GE 119: shift/reduce conflict (shift 57, reduce 53) on GT 119: shift/reduce conflict (shift 58, reduce 53) on LE 119: shift/reduce conflict (shift 59, reduce 53) on LT 119: shift/reduce conflict (shift 60, reduce 53) on MINUS 119: shift/reduce conflict (shift 61, reduce 53) on NEQ 119: shift/reduce conflict (shift 62, reduce 53) on OR 119: shift/reduce conflict (shift 63, reduce 53) on PLUS 119: shift/reduce conflict (shift 64, reduce 53) on TIMES state 119 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) loop_statement : WHILE expr DO expr . (53) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 COMMA reduce 53 DO reduce 53 ELSE reduce 53 END reduce 53 EOF reduce 53 EXCEPTION reduce 53 FUNCTION reduce 53 HANDLE reduce 53 IN reduce 53 RBRACE reduce 53 RBRACK reduce 53 RPAREN reduce 53 SEMICOLON reduce 53 THEN reduce 53 TO reduce 53 TYPE reduce 53 VAR reduce 53 state 120 lvalue : lvalue LBRACK expr RBRACK . (22) . reduce 22 state 121 ctor_list : id EQ . expr (49) ctor_list : id EQ . expr COMMA ctor_list (50) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 138 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 122 construction : id LBRACE ctor_list RBRACE . (47) . reduce 47 state 123 lvalue : id LBRACK expr RBRACK . (20) construction : id LBRACK expr RBRACK . OF expr (48) OF shift 139 AND reduce 20 ASSIGN reduce 20 COMMA reduce 20 DIVIDE reduce 20 DO reduce 20 DOT reduce 20 ELSE reduce 20 END reduce 20 EOF reduce 20 EQ reduce 20 EXCEPTION reduce 20 FUNCTION reduce 20 GE reduce 20 GT reduce 20 HANDLE reduce 20 IN reduce 20 LBRACK reduce 20 LE reduce 20 LT reduce 20 MINUS reduce 20 NEQ reduce 20 OR reduce 20 PLUS reduce 20 RBRACE reduce 20 RBRACK reduce 20 RPAREN reduce 20 SEMICOLON reduce 20 TIMES reduce 20 THEN reduce 20 TO reduce 20 TYPE reduce 20 VAR reduce 20 state 124 fun_args : expr COMMA . fun_args (33) fun_args : . (31) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 RPAREN reduce 31 expr goto 107 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 fun_args goto 140 state 125 function_call : id LPAREN fun_args RPAREN . (30) . reduce 30 state 126 loop_statement : FOR id ASSIGN expr TO . expr DO expr (54) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 141 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 127 if_statement : IF expr THEN expr ELSE . expr (52) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 142 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 128 ty_fields : id . COLON id (74) ty_fields : id . COLON id COMMA ty_fields (75) COLON shift 143 . error state 129 fun_dec : FUNCTION id LPAREN ty_fields . RPAREN EQ expr (78) fun_dec : FUNCTION id LPAREN ty_fields . RPAREN COLON id EQ expr (79) RPAREN shift 144 . error state 130 ty : ARRAY . OF id (72) OF shift 145 . error state 131 ty : LBRACE . ty_fields RBRACE (71) ty_fields : . (73) ID shift 15 RBRACE reduce 73 id goto 128 ty_fields goto 146 state 132 ty : id . (70) . reduce 70 state 133 type_dec : TYPE id EQ ty . (69) . reduce 69 state 134 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) var_dec : VAR id ASSIGN expr . (65) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 EXCEPTION reduce 65 FUNCTION reduce 65 IN reduce 65 TYPE reduce 65 VAR reduce 65 state 135 var_dec : VAR id COLON id . ASSIGN expr (66) ASSIGN shift 147 . error state 136 expr : LET decs IN expr_list END . (13) . reduce 13 state 137 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) handler : HANDLE id expr . END (56) AND shift 52 DIVIDE shift 53 END shift 148 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 . error state 138 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) ctor_list : id EQ expr . (49) ctor_list : id EQ expr . COMMA ctor_list (50) AND shift 52 COMMA shift 149 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 RBRACE reduce 49 state 139 construction : id LBRACK expr RBRACK OF . expr (48) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 150 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 140 fun_args : expr COMMA fun_args . (33) . reduce 33 state 141 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) loop_statement : FOR id ASSIGN expr TO expr . DO expr (54) AND shift 52 DIVIDE shift 53 DO shift 151 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 . error 142: shift/reduce conflict (shift 52, reduce 52) on AND 142: shift/reduce conflict (shift 53, reduce 52) on DIVIDE 142: shift/reduce conflict (shift 55, reduce 52) on EQ 142: shift/reduce conflict (shift 56, reduce 52) on GE 142: shift/reduce conflict (shift 57, reduce 52) on GT 142: shift/reduce conflict (shift 58, reduce 52) on LE 142: shift/reduce conflict (shift 59, reduce 52) on LT 142: shift/reduce conflict (shift 60, reduce 52) on MINUS 142: shift/reduce conflict (shift 61, reduce 52) on NEQ 142: shift/reduce conflict (shift 62, reduce 52) on OR 142: shift/reduce conflict (shift 63, reduce 52) on PLUS 142: shift/reduce conflict (shift 64, reduce 52) on TIMES state 142 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) if_statement : IF expr THEN expr ELSE expr . (52) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 COMMA reduce 52 DO reduce 52 ELSE reduce 52 END reduce 52 EOF reduce 52 EXCEPTION reduce 52 FUNCTION reduce 52 HANDLE reduce 52 IN reduce 52 RBRACE reduce 52 RBRACK reduce 52 RPAREN reduce 52 SEMICOLON reduce 52 THEN reduce 52 TO reduce 52 TYPE reduce 52 VAR reduce 52 state 143 ty_fields : id COLON . id (74) ty_fields : id COLON . id COMMA ty_fields (75) ID shift 15 . error id goto 152 state 144 fun_dec : FUNCTION id LPAREN ty_fields RPAREN . EQ expr (78) fun_dec : FUNCTION id LPAREN ty_fields RPAREN . COLON id EQ expr (79) COLON shift 153 EQ shift 154 . error state 145 ty : ARRAY OF . id (72) ID shift 15 . error id goto 155 state 146 ty : LBRACE ty_fields . RBRACE (71) RBRACE shift 156 . error state 147 var_dec : VAR id COLON id ASSIGN . expr (66) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 157 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 148 handler : HANDLE id expr END . (56) . reduce 56 state 149 ctor_list : id EQ expr COMMA . ctor_list (50) ID shift 15 . error id goto 104 ctor_list goto 158 150: shift/reduce conflict (shift 52, reduce 48) on AND 150: shift/reduce conflict (shift 53, reduce 48) on DIVIDE 150: shift/reduce conflict (shift 55, reduce 48) on EQ 150: shift/reduce conflict (shift 56, reduce 48) on GE 150: shift/reduce conflict (shift 57, reduce 48) on GT 150: shift/reduce conflict (shift 58, reduce 48) on LE 150: shift/reduce conflict (shift 59, reduce 48) on LT 150: shift/reduce conflict (shift 60, reduce 48) on MINUS 150: shift/reduce conflict (shift 61, reduce 48) on NEQ 150: shift/reduce conflict (shift 62, reduce 48) on OR 150: shift/reduce conflict (shift 63, reduce 48) on PLUS 150: shift/reduce conflict (shift 64, reduce 48) on TIMES state 150 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) construction : id LBRACK expr RBRACK OF expr . (48) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 COMMA reduce 48 DO reduce 48 ELSE reduce 48 END reduce 48 EOF reduce 48 EXCEPTION reduce 48 FUNCTION reduce 48 HANDLE reduce 48 IN reduce 48 RBRACE reduce 48 RBRACK reduce 48 RPAREN reduce 48 SEMICOLON reduce 48 THEN reduce 48 TO reduce 48 TYPE reduce 48 VAR reduce 48 state 151 loop_statement : FOR id ASSIGN expr TO expr DO . expr (54) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 159 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 152 ty_fields : id COLON id . (74) ty_fields : id COLON id . COMMA ty_fields (75) COMMA shift 160 RBRACE reduce 74 RPAREN reduce 74 state 153 fun_dec : FUNCTION id LPAREN ty_fields RPAREN COLON . id EQ expr (79) ID shift 15 . error id goto 161 state 154 fun_dec : FUNCTION id LPAREN ty_fields RPAREN EQ . expr (78) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 162 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 155 ty : ARRAY OF id . (72) . reduce 72 state 156 ty : LBRACE ty_fields RBRACE . (71) . reduce 71 state 157 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) var_dec : VAR id COLON id ASSIGN expr . (66) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 EXCEPTION reduce 66 FUNCTION reduce 66 IN reduce 66 TYPE reduce 66 VAR reduce 66 state 158 ctor_list : id EQ expr COMMA ctor_list . (50) . reduce 50 159: shift/reduce conflict (shift 52, reduce 54) on AND 159: shift/reduce conflict (shift 53, reduce 54) on DIVIDE 159: shift/reduce conflict (shift 55, reduce 54) on EQ 159: shift/reduce conflict (shift 56, reduce 54) on GE 159: shift/reduce conflict (shift 57, reduce 54) on GT 159: shift/reduce conflict (shift 58, reduce 54) on LE 159: shift/reduce conflict (shift 59, reduce 54) on LT 159: shift/reduce conflict (shift 60, reduce 54) on MINUS 159: shift/reduce conflict (shift 61, reduce 54) on NEQ 159: shift/reduce conflict (shift 62, reduce 54) on OR 159: shift/reduce conflict (shift 63, reduce 54) on PLUS 159: shift/reduce conflict (shift 64, reduce 54) on TIMES state 159 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) loop_statement : FOR id ASSIGN expr TO expr DO expr . (54) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 COMMA reduce 54 DO reduce 54 ELSE reduce 54 END reduce 54 EOF reduce 54 EXCEPTION reduce 54 FUNCTION reduce 54 HANDLE reduce 54 IN reduce 54 RBRACE reduce 54 RBRACK reduce 54 RPAREN reduce 54 SEMICOLON reduce 54 THEN reduce 54 TO reduce 54 TYPE reduce 54 VAR reduce 54 state 160 ty_fields : id COLON id COMMA . ty_fields (75) ty_fields : . (73) ID shift 15 RBRACE reduce 73 RPAREN reduce 73 id goto 128 ty_fields goto 163 state 161 fun_dec : FUNCTION id LPAREN ty_fields RPAREN COLON id . EQ expr (79) EQ shift 164 . error state 162 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) fun_dec : FUNCTION id LPAREN ty_fields RPAREN EQ expr . (78) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 EXCEPTION reduce 78 FUNCTION reduce 78 IN reduce 78 TYPE reduce 78 VAR reduce 78 state 163 ty_fields : id COLON id COMMA ty_fields . (75) . reduce 75 state 164 fun_dec : FUNCTION id LPAREN ty_fields RPAREN COLON id EQ . expr (79) BREAK shift 3 FOR shift 4 IF shift 5 LET shift 6 LPAREN shift 7 MINUS shift 8 NIL shift 9 RAISE shift 10 SPAWN shift 11 TRY shift 12 WHILE shift 13 INT shift 14 ID shift 15 STRING shift 16 . error expr goto 165 lvalue goto 19 sequence goto 20 literal goto 21 function_call goto 22 arithmetic goto 23 comparison goto 24 boolean goto 25 construction goto 26 if_statement goto 27 loop_statement goto 28 id goto 29 state 165 arithmetic : expr . PLUS expr (35) arithmetic : expr . MINUS expr (36) arithmetic : expr . TIMES expr (37) arithmetic : expr . DIVIDE expr (38) comparison : expr . EQ expr (39) comparison : expr . NEQ expr (40) comparison : expr . GT expr (41) comparison : expr . LT expr (42) comparison : expr . GE expr (43) comparison : expr . LE expr (44) boolean : expr . AND expr (45) boolean : expr . OR expr (46) fun_dec : FUNCTION id LPAREN ty_fields RPAREN COLON id EQ expr . (79) AND shift 52 DIVIDE shift 53 EQ shift 55 GE shift 56 GT shift 57 LE shift 58 LT shift 59 MINUS shift 60 NEQ shift 61 OR shift 62 PLUS shift 63 TIMES shift 64 EXCEPTION reduce 79 FUNCTION reduce 79 IN reduce 79 TYPE reduce 79 VAR reduce 79 State 29 contains 2 shift/reduce conflicts. State 42 contains 1 shift/reduce conflict. State 43 contains 1 shift/reduce conflict. State 86 contains 1 shift/reduce conflict. State 110 contains 13 shift/reduce conflicts. State 119 contains 12 shift/reduce conflicts. State 142 contains 12 shift/reduce conflicts. State 150 contains 12 shift/reduce conflicts. State 159 contains 12 shift/reduce conflicts. 53 terminals, 30 nonterminals 82 grammar rules, 166 states