From 3461af53dd2ea45e3ec7fcddef7030c79aa7cd1b Mon Sep 17 00:00:00 2001 From: Sander Spies Date: Tue, 4 Feb 2020 12:52:12 +0100 Subject: [PATCH 1/3] ReasonLIGO: Make the semicolon optional in more cases. --- src/passes/1-parser/reasonligo/Parser.mly | 12 +- .../reasonligo/error.messages.checked-in | 1933 +++++++++-------- src/test/contracts/no_semicolon.religo | 13 + src/test/integration_tests.ml | 10 + 4 files changed, 1004 insertions(+), 964 deletions(-) create mode 100644 src/test/contracts/no_semicolon.religo diff --git a/src/passes/1-parser/reasonligo/Parser.mly b/src/passes/1-parser/reasonligo/Parser.mly index 6f625bb17..48765c19a 100644 --- a/src/passes/1-parser/reasonligo/Parser.mly +++ b/src/passes/1-parser/reasonligo/Parser.mly @@ -159,8 +159,8 @@ declarations: | declaration declarations { Utils.nseq_cons $1 $2 } declaration: -| type_decl ";" { TypeDecl $1 } -| let_declaration ";" { Let $1 } +| type_decl ";"? { TypeDecl $1 } +| let_declaration ";"? { Let $1 } (* Type declarations *) @@ -576,10 +576,10 @@ parenthesized_expr: "{" expr "}" | "(" expr ")" { $2 } if_then(right_expr): - "if" parenthesized_expr "{" closed_if "}" { + "if" parenthesized_expr "{" closed_if ";"? "}" { let the_unit = ghost, ghost in let ifnot = EUnit {region=ghost; value=the_unit} in - let region = cover $1 $5 in + let region = cover $1 $6 in let value = {kwd_if = $1; test = $2; kwd_then = $3; @@ -589,8 +589,8 @@ if_then(right_expr): in ECond {region; value} } if_then_else(right_expr): - "if" parenthesized_expr "{" closed_if ";" "}" - "else" "{" right_expr ";" "}" { + "if" parenthesized_expr "{" closed_if ";"? "}" + "else" "{" right_expr ";"? "}" { let region = cover $1 $11 in let value = {kwd_if = $1; test = $2; diff --git a/src/passes/1-parser/reasonligo/error.messages.checked-in b/src/passes/1-parser/reasonligo/error.messages.checked-in index 06d8635c9..477a32d89 100644 --- a/src/passes/1-parser/reasonligo/error.messages.checked-in +++ b/src/passes/1-parser/reasonligo/error.messages.checked-in @@ -1,8 +1,8 @@ interactive_expr: C_None WILD ## -## Ends in an error in state: 169. +## Ends in an error in state: 170. ## -## call_expr_level -> call_expr_level_in . option(type_annotation_simple) [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## call_expr_level -> call_expr_level_in . option(type_annotation_simple) [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## call_expr_level_in @@ -12,9 +12,9 @@ interactive_expr: C_None WILD interactive_expr: C_Some WILD ## -## Ends in an error in state: 121. +## Ends in an error in state: 122. ## -## constr_expr -> C_Some . core_expr [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## constr_expr -> C_Some . core_expr [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## C_Some @@ -24,10 +24,10 @@ interactive_expr: C_Some WILD interactive_expr: Constr DOT Ident WILD ## -## Ends in an error in state: 108. +## Ends in an error in state: 109. ## -## module_field -> Constr DOT Ident . [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## projection -> Constr DOT Ident . selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## module_field -> Constr DOT Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr DOT Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## Constr DOT Ident @@ -37,10 +37,10 @@ interactive_expr: Constr DOT Ident WILD interactive_expr: Constr DOT WILD ## -## Ends in an error in state: 107. +## Ends in an error in state: 108. ## -## module_field -> Constr DOT . Ident [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## projection -> Constr DOT . Ident selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## module_field -> Constr DOT . Ident [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr DOT . Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## Constr DOT @@ -50,12 +50,12 @@ interactive_expr: Constr DOT WILD interactive_expr: Constr WILD ## -## Ends in an error in state: 106. +## Ends in an error in state: 107. ## -## constr_expr -> Constr . core_expr [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## constr_expr -> Constr . [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## module_field -> Constr . DOT Ident [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## projection -> Constr . DOT Ident selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## constr_expr -> Constr . core_expr [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## constr_expr -> Constr . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## module_field -> Constr . DOT Ident [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr . DOT Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## Constr @@ -65,10 +65,10 @@ interactive_expr: Constr WILD interactive_expr: Ident DOT Ident WILD ## -## Ends in an error in state: 101. +## Ends in an error in state: 102. ## -## selection -> DOT Ident . selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## selection -> DOT Ident . [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## selection -> DOT Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> DOT Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## DOT Ident @@ -78,10 +78,10 @@ interactive_expr: Ident DOT Ident WILD interactive_expr: Ident DOT WILD ## -## Ends in an error in state: 100. +## Ends in an error in state: 101. ## -## selection -> DOT . Ident selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## selection -> DOT . Ident [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## selection -> DOT . Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> DOT . Ident [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## DOT @@ -91,10 +91,10 @@ interactive_expr: Ident DOT WILD interactive_expr: Ident LBRACKET Int RBRACKET WILD ## -## Ends in an error in state: 99. +## Ends in an error in state: 100. ## -## selection -> LBRACKET Int RBRACKET . selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## selection -> LBRACKET Int RBRACKET . [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## selection -> LBRACKET Int RBRACKET . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> LBRACKET Int RBRACKET . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACKET Int RBRACKET @@ -104,10 +104,10 @@ interactive_expr: Ident LBRACKET Int RBRACKET WILD interactive_expr: Ident LBRACKET Int WILD ## -## Ends in an error in state: 98. +## Ends in an error in state: 99. ## -## selection -> LBRACKET Int . RBRACKET selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## selection -> LBRACKET Int . RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## selection -> LBRACKET Int . RBRACKET selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> LBRACKET Int . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACKET Int @@ -117,10 +117,10 @@ interactive_expr: Ident LBRACKET Int WILD interactive_expr: Ident LBRACKET WILD ## -## Ends in an error in state: 97. +## Ends in an error in state: 98. ## -## selection -> LBRACKET . Int RBRACKET selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## selection -> LBRACKET . Int RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## selection -> LBRACKET . Int RBRACKET selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> LBRACKET . Int RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACKET @@ -130,10 +130,10 @@ interactive_expr: Ident LBRACKET WILD interactive_expr: Ident WILD ## -## Ends in an error in state: 96. +## Ends in an error in state: 97. ## -## common_expr -> Ident . [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## projection -> Ident . selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## common_expr -> Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## Ident @@ -143,7 +143,7 @@ interactive_expr: Ident WILD interactive_expr: If LBRACE True VBAR ## -## Ends in an error in state: 225. +## Ends in an error in state: 226. ## ## parenthesized_expr -> LBRACE expr . RBRACE [ LBRACE ] ## @@ -154,26 +154,26 @@ interactive_expr: If LBRACE True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: If LBRACE WILD ## -## Ends in an error in state: 224. +## Ends in an error in state: 225. ## ## parenthesized_expr -> LBRACE . expr RBRACE [ LBRACE ] ## @@ -183,11 +183,11 @@ interactive_expr: If LBRACE WILD -interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True ARROW Bytes VBAR ## -## Ends in an error in state: 401. +## Ends in an error in state: 402. ## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if . SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if @@ -196,118 +196,128 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 400, spurious reduction of production base_expr(closed_if) -> disj_expr_level -## In state 410, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 409, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 213, spurious reduction of production es6_func -> ARROW expr +## In state 221, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 400, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 411, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 410, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## -interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE True RBRACE +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE True ARROW Bytes VBAR ## -## Ends in an error in state: 406. +## Ends in an error in state: 407. ## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE closed_if . SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if . option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE closed_if +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 400, spurious reduction of production base_expr(closed_if) -> disj_expr_level -## In state 410, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 409, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 213, spurious reduction of production es6_func -> ARROW expr +## In state 221, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 400, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 411, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 410, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## -interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE True SEMI WILD +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE True SEMI PLUS ## -## Ends in an error in state: 407. +## Ends in an error in state: 408. ## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE closed_if SEMI . RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) . RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE closed_if SEMI +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) ## -interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE WILD +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE WILD +## +## Ends in an error in state: 406. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE Else WILD ## ## Ends in an error in state: 405. ## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE . closed_if SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else ## -interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else WILD +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE WILD ## ## Ends in an error in state: 404. ## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else . LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE ## -interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE WILD +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI PLUS ## ## Ends in an error in state: 403. ## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE . Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE -## - - - -interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI WILD -## -## Ends in an error in state: 402. -## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI . RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI +## If parenthesized_expr LBRACE closed_if option(SEMI) ## interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD ## -## Ends in an error in state: 347. +## Ends in an error in state: 348. ## -## if_then_else(closed_if) -> If parenthesized_expr LBRACE . closed_if SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE @@ -317,9 +327,9 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR WILD ## -## Ends in an error in state: 346. +## Ends in an error in state: 347. ## -## if_then_else(closed_if) -> If parenthesized_expr . LBRACE closed_if SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr @@ -329,9 +339,9 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR WILD interactive_expr: If LPAR True RPAR LBRACE If WILD ## -## Ends in an error in state: 345. +## Ends in an error in state: 346. ## -## if_then_else(closed_if) -> If . parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] +## if_then_else(closed_if) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If @@ -341,7 +351,7 @@ interactive_expr: If LPAR True RPAR LBRACE If WILD interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR VBAR ## -## Ends in an error in state: 272. +## Ends in an error in state: 273. ## ## case_clause(base_if_then_else) -> VBAR . pattern ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -375,11 +385,11 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW By -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True ARROW Bytes VBAR ## -## Ends in an error in state: 411. +## Ends in an error in state: 412. ## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if . SEMI RBRACE Else LBRACE base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if @@ -388,118 +398,123 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 400, spurious reduction of production base_expr(closed_if) -> disj_expr_level -## In state 410, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 409, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 213, spurious reduction of production es6_func -> ARROW expr +## In state 221, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 400, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 411, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 410, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE True SEMI WILD +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE True SEMI PLUS +## +## Ends in an error in state: 422. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) . RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE True VBAR ## ## Ends in an error in state: 421. ## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_if_then_else SEMI . RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else . option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_if_then_else SEMI -## - - - -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE True VBAR -## -## Ends in an error in state: 420. -## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_if_then_else . SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_if_then_else +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 418, spurious reduction of production base_expr(base_if_then_else) -> disj_expr_level -## In state 423, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) -## In state 419, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 419, spurious reduction of production base_expr(base_if_then_else) -> disj_expr_level +## In state 424, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) +## In state 420, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) ## -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE WILD +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE WILD +## +## Ends in an error in state: 416. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE Else WILD ## ## Ends in an error in state: 415. ## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE . base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else ## -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else WILD +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE WILD ## ## Ends in an error in state: 414. ## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else . LBRACE base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE ## -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE WILD +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI PLUS ## ## Ends in an error in state: 413. ## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE . Else LBRACE base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE -## - - - -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI WILD -## -## Ends in an error in state: 412. -## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if SEMI . RBRACE Else LBRACE base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI +## If parenthesized_expr LBRACE closed_if option(SEMI) ## interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD ## -## Ends in an error in state: 344. +## Ends in an error in state: 345. ## -## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE . closed_if SEMI RBRACE Else LBRACE base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE @@ -509,9 +524,9 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR WILD ## -## Ends in an error in state: 343. +## Ends in an error in state: 344. ## -## if_then_else(base_if_then_else) -> If parenthesized_expr . LBRACE closed_if SEMI RBRACE Else LBRACE base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr @@ -521,9 +536,9 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If WILD ## -## Ends in an error in state: 342. +## Ends in an error in state: 343. ## -## if_then_else(base_if_then_else) -> If . parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_if_then_else SEMI RBRACE [ VBAR SEMI RBRACE ] +## if_then_else(base_if_then_else) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## ## The known suffix of the stack is as follows: ## If @@ -531,9 +546,9 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW True ARROW Bytes RPAR +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW True ARROW Bytes Type ## -## Ends in an error in state: 424. +## Ends in an error in state: 425. ## ## case_clause(base_if_then_else) -> VBAR pattern ARROW base_if_then_else . option(SEMI) [ VBAR RBRACE ] ## @@ -544,31 +559,31 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW Tr ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 212, spurious reduction of production es6_func -> ARROW expr -## In state 220, spurious reduction of production fun_expr -> disj_expr_level es6_func -## In state 417, spurious reduction of production base_expr(base_if_then_else) -> fun_expr -## In state 423, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) -## In state 419, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 213, spurious reduction of production es6_func -> ARROW expr +## In state 221, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 418, spurious reduction of production base_expr(base_if_then_else) -> fun_expr +## In state 424, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) +## In state 420, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) ## -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW True RPAR +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW True Type ## -## Ends in an error in state: 418. +## Ends in an error in state: 419. ## ## base_expr(base_if_then_else) -> disj_expr_level . [ VBAR SEMI RBRACE ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR SEMI RBRACE Or BOOL_OR ARROW ] @@ -582,23 +597,23 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW Tr ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW WILD ## -## Ends in an error in state: 341. +## Ends in an error in state: 342. ## ## case_clause(base_if_then_else) -> VBAR pattern ARROW . base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -610,7 +625,7 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW WI interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD COMMA Bytes RPAR ## -## Ends in an error in state: 340. +## Ends in an error in state: 341. ## ## case_clause(base_if_then_else) -> VBAR pattern . ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -621,16 +636,16 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD COMMA By ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 326, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 329, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 338, spurious reduction of production pattern -> tuple(sub_pattern) +## In state 327, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 330, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 339, spurious reduction of production pattern -> tuple(sub_pattern) ## interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE WILD ## -## Ends in an error in state: 271. +## Ends in an error in state: 272. ## ## switch_expr(base_if_then_else) -> Switch switch_expr_ LBRACE . cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -642,7 +657,7 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE WILD interactive_expr: If LPAR True RPAR LBRACE Switch True WILD ## -## Ends in an error in state: 270. +## Ends in an error in state: 271. ## ## switch_expr(base_if_then_else) -> Switch switch_expr_ . LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -654,7 +669,7 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True WILD interactive_expr: If LPAR True RPAR LBRACE Switch WILD ## -## Ends in an error in state: 229. +## Ends in an error in state: 230. ## ## switch_expr(base_if_then_else) -> Switch . switch_expr_ LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -668,8 +683,8 @@ interactive_expr: If LPAR True RPAR LBRACE True ARROW Bytes VBAR ## ## Ends in an error in state: 439. ## -## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . SEMI RBRACE Else LBRACE expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if @@ -678,122 +693,124 @@ interactive_expr: If LPAR True RPAR LBRACE True ARROW Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 212, spurious reduction of production es6_func -> ARROW expr -## In state 220, spurious reduction of production fun_expr -> disj_expr_level es6_func -## In state 399, spurious reduction of production base_expr(closed_if) -> fun_expr -## In state 410, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 409, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 213, spurious reduction of production es6_func -> ARROW expr +## In state 221, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 400, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 411, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 410, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## -interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else LBRACE True SEMI WILD +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else LBRACE True SEMI PLUS ## ## Ends in an error in state: 445. ## -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr_with_let_expr SEMI . RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) . RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr_with_let_expr SEMI +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) ## -interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else LBRACE True VBAR +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else LBRACE True VBAR ## ## Ends in an error in state: 444. ## -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr_with_let_expr . SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr . option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr_with_let_expr +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 396, spurious reduction of production expr_with_let_expr -> expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 397, spurious reduction of production expr_with_let_expr -> expr ## -interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else LBRACE WILD +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else LBRACE WILD ## ## Ends in an error in state: 443. ## -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE . expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE ## -interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else WILD +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else WILD ## ## Ends in an error in state: 442. ## -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else . LBRACE expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else ## -interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE WILD +interactive_expr: If LPAR True RPAR LBRACE True RBRACE WILD ## ## Ends in an error in state: 441. ## -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE . Else LBRACE expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE ## -interactive_expr: If LPAR True RPAR LBRACE True SEMI WILD +interactive_expr: If LPAR True RPAR LBRACE True SEMI PLUS ## ## Ends in an error in state: 440. ## -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if SEMI . RBRACE Else LBRACE expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI +## If parenthesized_expr LBRACE closed_if option(SEMI) ## interactive_expr: If LPAR True RPAR LBRACE True VBAR ## -## Ends in an error in state: 400. +## Ends in an error in state: 401. ## ## base_expr(closed_if) -> disj_expr_level . [ SEMI RBRACE ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ SEMI RBRACE Or BOOL_OR ARROW ] @@ -807,26 +824,26 @@ interactive_expr: If LPAR True RPAR LBRACE True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: If LPAR True RPAR LBRACE WILD ## -## Ends in an error in state: 228. +## Ends in an error in state: 229. ## -## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if SEMI RBRACE Else LBRACE expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE @@ -836,10 +853,10 @@ interactive_expr: If LPAR True RPAR LBRACE WILD interactive_expr: If LPAR True RPAR WILD ## -## Ends in an error in state: 227. +## Ends in an error in state: 228. ## -## if_then(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if SEMI RBRACE Else LBRACE expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr @@ -849,7 +866,7 @@ interactive_expr: If LPAR True RPAR WILD interactive_expr: If LPAR True VBAR ## -## Ends in an error in state: 222. +## Ends in an error in state: 223. ## ## parenthesized_expr -> LPAR expr . RPAR [ LBRACE ] ## @@ -860,26 +877,26 @@ interactive_expr: If LPAR True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: If LPAR WILD ## -## Ends in an error in state: 95. +## Ends in an error in state: 96. ## ## parenthesized_expr -> LPAR . expr RPAR [ LBRACE ] ## @@ -891,10 +908,10 @@ interactive_expr: If LPAR WILD interactive_expr: If WILD ## -## Ends in an error in state: 94. +## Ends in an error in state: 95. ## -## if_then(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr_with_let_expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## if_then(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## If @@ -904,7 +921,7 @@ interactive_expr: If WILD interactive_expr: LBRACE ELLIPSIS Constr DOT Ident WILD ## -## Ends in an error in state: 248. +## Ends in an error in state: 249. ## ## projection -> Constr DOT Ident . selection [ COMMA ] ## @@ -916,7 +933,7 @@ interactive_expr: LBRACE ELLIPSIS Constr DOT Ident WILD interactive_expr: LBRACE ELLIPSIS Constr DOT WILD ## -## Ends in an error in state: 247. +## Ends in an error in state: 248. ## ## projection -> Constr DOT . Ident selection [ COMMA ] ## @@ -928,7 +945,7 @@ interactive_expr: LBRACE ELLIPSIS Constr DOT WILD interactive_expr: LBRACE ELLIPSIS Constr WILD ## -## Ends in an error in state: 246. +## Ends in an error in state: 247. ## ## projection -> Constr . DOT Ident selection [ COMMA ] ## @@ -940,7 +957,7 @@ interactive_expr: LBRACE ELLIPSIS Constr WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 263. +## Ends in an error in state: 264. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . COMMA nsepseq(field_path_assignment,COMMA) [ RBRACE ] @@ -953,27 +970,27 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 262, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 263, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr ## interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON WILD ## -## Ends in an error in state: 261. +## Ends in an error in state: 262. ## ## field_path_assignment -> nsepseq(field_name,DOT) COLON . expr [ RBRACE COMMA ] ## @@ -985,7 +1002,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 267. +## Ends in an error in state: 268. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . COMMA nsepseq(field_path_assignment,COMMA) [ RBRACE ] @@ -998,27 +1015,27 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 262, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 263, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr ## interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA Ident COMMA WILD ## -## Ends in an error in state: 268. +## Ends in an error in state: 269. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment COMMA . nsepseq(field_path_assignment,COMMA) [ RBRACE ] ## seq(__anonymous_0(field_path_assignment,COMMA)) -> field_path_assignment COMMA . seq(__anonymous_0(field_path_assignment,COMMA)) [ RBRACE ] @@ -1031,7 +1048,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA Ident COMMA WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA WILD ## -## Ends in an error in state: 264. +## Ends in an error in state: 265. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment COMMA . nsepseq(field_path_assignment,COMMA) [ RBRACE ] ## nseq(__anonymous_0(field_path_assignment,COMMA)) -> field_path_assignment COMMA . seq(__anonymous_0(field_path_assignment,COMMA)) [ RBRACE ] @@ -1044,7 +1061,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident DOT Ident WILD ## -## Ends in an error in state: 254. +## Ends in an error in state: 255. ## ## nsepseq(field_name,DOT) -> Ident . [ COLON ] ## nsepseq(field_name,DOT) -> Ident . DOT nsepseq(field_name,DOT) [ COLON ] @@ -1057,7 +1074,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident DOT Ident WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident DOT WILD ## -## Ends in an error in state: 253. +## Ends in an error in state: 254. ## ## nsepseq(field_name,DOT) -> Ident DOT . nsepseq(field_name,DOT) [ COLON ] ## @@ -1069,7 +1086,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident DOT WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident WILD ## -## Ends in an error in state: 252. +## Ends in an error in state: 253. ## ## field_path_assignment -> Ident . [ RBRACE COMMA ] ## nsepseq(field_name,DOT) -> Ident . [ COLON ] @@ -1083,9 +1100,9 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA WILD ## -## Ends in an error in state: 251. +## Ends in an error in state: 252. ## -## update_record -> LBRACE ELLIPSIS path COMMA . sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## update_record -> LBRACE ELLIPSIS path COMMA . sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACE ELLIPSIS path COMMA @@ -1095,9 +1112,9 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA WILD interactive_expr: LBRACE ELLIPSIS Ident DOT Ident VBAR ## -## Ends in an error in state: 250. +## Ends in an error in state: 251. ## -## update_record -> LBRACE ELLIPSIS path . COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## update_record -> LBRACE ELLIPSIS path . COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACE ELLIPSIS path @@ -1106,16 +1123,16 @@ interactive_expr: LBRACE ELLIPSIS Ident DOT Ident VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 101, spurious reduction of production selection -> DOT Ident -## In state 104, spurious reduction of production projection -> Ident selection -## In state 249, spurious reduction of production path -> projection +## In state 102, spurious reduction of production selection -> DOT Ident +## In state 105, spurious reduction of production projection -> Ident selection +## In state 250, spurious reduction of production path -> projection ## interactive_expr: LBRACE ELLIPSIS Ident WILD ## -## Ends in an error in state: 245. +## Ends in an error in state: 246. ## ## path -> Ident . [ COMMA ] ## projection -> Ident . selection [ COMMA ] @@ -1128,9 +1145,9 @@ interactive_expr: LBRACE ELLIPSIS Ident WILD interactive_expr: LBRACE ELLIPSIS WILD ## -## Ends in an error in state: 244. +## Ends in an error in state: 245. ## -## update_record -> LBRACE ELLIPSIS . path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## update_record -> LBRACE ELLIPSIS . path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACE ELLIPSIS @@ -1140,7 +1157,7 @@ interactive_expr: LBRACE ELLIPSIS WILD interactive_expr: LBRACE Ident COLON Bytes VBAR ## -## Ends in an error in state: 463. +## Ends in an error in state: 462. ## ## sequence_or_record_in -> field_assignment . COMMA sep_or_term_list(field_assignment,COMMA) [ RBRACE ] ## @@ -1151,27 +1168,27 @@ interactive_expr: LBRACE Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 460, spurious reduction of production field_assignment -> Ident COLON expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 459, spurious reduction of production field_assignment -> Ident COLON expr ## interactive_expr: LBRACE Ident COLON WILD ## -## Ends in an error in state: 459. +## Ends in an error in state: 458. ## ## field_assignment -> Ident COLON . expr [ RBRACE COMMA ] ## @@ -1183,7 +1200,7 @@ interactive_expr: LBRACE Ident COLON WILD interactive_expr: LBRACE Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 469. +## Ends in an error in state: 468. ## ## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,COMMA) -> field_assignment . COMMA nsepseq(field_assignment,COMMA) [ RBRACE ] @@ -1196,27 +1213,27 @@ interactive_expr: LBRACE Ident COMMA Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 460, spurious reduction of production field_assignment -> Ident COLON expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 459, spurious reduction of production field_assignment -> Ident COLON expr ## interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 473. +## Ends in an error in state: 472. ## ## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,COMMA) -> field_assignment . COMMA nsepseq(field_assignment,COMMA) [ RBRACE ] @@ -1229,27 +1246,27 @@ interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 460, spurious reduction of production field_assignment -> Ident COLON expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 459, spurious reduction of production field_assignment -> Ident COLON expr ## interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COMMA WILD ## -## Ends in an error in state: 474. +## Ends in an error in state: 473. ## ## nsepseq(field_assignment,COMMA) -> field_assignment COMMA . nsepseq(field_assignment,COMMA) [ RBRACE ] ## seq(__anonymous_0(field_assignment,COMMA)) -> field_assignment COMMA . seq(__anonymous_0(field_assignment,COMMA)) [ RBRACE ] @@ -1262,7 +1279,7 @@ interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COMMA WILD interactive_expr: LBRACE Ident COMMA Ident COMMA WILD ## -## Ends in an error in state: 470. +## Ends in an error in state: 469. ## ## nsepseq(field_assignment,COMMA) -> field_assignment COMMA . nsepseq(field_assignment,COMMA) [ RBRACE ] ## nseq(__anonymous_0(field_assignment,COMMA)) -> field_assignment COMMA . seq(__anonymous_0(field_assignment,COMMA)) [ RBRACE ] @@ -1275,7 +1292,7 @@ interactive_expr: LBRACE Ident COMMA Ident COMMA WILD interactive_expr: LBRACE Ident COMMA Ident WILD ## -## Ends in an error in state: 465. +## Ends in an error in state: 464. ## ## field_assignment -> Ident . [ RBRACE COMMA ] ## field_assignment -> Ident . COLON expr [ RBRACE COMMA ] @@ -1288,7 +1305,7 @@ interactive_expr: LBRACE Ident COMMA Ident WILD interactive_expr: LBRACE Ident COMMA WILD ## -## Ends in an error in state: 464. +## Ends in an error in state: 463. ## ## sequence_or_record_in -> field_assignment COMMA . sep_or_term_list(field_assignment,COMMA) [ RBRACE ] ## @@ -1300,7 +1317,7 @@ interactive_expr: LBRACE Ident COMMA WILD interactive_expr: LBRACE Ident WILD ## -## Ends in an error in state: 458. +## Ends in an error in state: 457. ## ## common_expr -> Ident . [ TIMES SLASH SEMI RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ COLON CAT BOOL_OR BOOL_AND ARROW ] ## field_assignment -> Ident . [ COMMA ] @@ -1315,7 +1332,7 @@ interactive_expr: LBRACE Ident WILD interactive_expr: LBRACE True SEMI True SEMI True SEMI WILD ## -## Ends in an error in state: 486. +## Ends in an error in state: 485. ## ## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr SEMI . nsepseq(expr_with_let_expr,SEMI) [ RBRACE ] ## seq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr SEMI . seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ] @@ -1328,7 +1345,7 @@ interactive_expr: LBRACE True SEMI True SEMI True SEMI WILD interactive_expr: LBRACE True SEMI True SEMI True VBAR ## -## Ends in an error in state: 485. +## Ends in an error in state: 484. ## ## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . [ RBRACE ] ## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . SEMI nsepseq(expr_with_let_expr,SEMI) [ RBRACE ] @@ -1341,27 +1358,27 @@ interactive_expr: LBRACE True SEMI True SEMI True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 396, spurious reduction of production expr_with_let_expr -> expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 397, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: LBRACE True SEMI True SEMI WILD ## -## Ends in an error in state: 482. +## Ends in an error in state: 481. ## ## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr SEMI . nsepseq(expr_with_let_expr,SEMI) [ RBRACE ] ## nseq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr SEMI . seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ] @@ -1374,7 +1391,7 @@ interactive_expr: LBRACE True SEMI True SEMI WILD interactive_expr: LBRACE True SEMI True VBAR ## -## Ends in an error in state: 481. +## Ends in an error in state: 480. ## ## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . [ RBRACE ] ## nsepseq(expr_with_let_expr,SEMI) -> expr_with_let_expr . SEMI nsepseq(expr_with_let_expr,SEMI) [ RBRACE ] @@ -1387,27 +1404,27 @@ interactive_expr: LBRACE True SEMI True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 396, spurious reduction of production expr_with_let_expr -> expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 397, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: LBRACE True SEMI WILD ## -## Ends in an error in state: 477. +## Ends in an error in state: 476. ## ## option(SEMI) -> SEMI . [ RBRACE ] ## sequence_or_record_in -> expr_with_let_expr SEMI . sep_or_term_list(expr_with_let_expr,SEMI) [ RBRACE ] @@ -1420,7 +1437,7 @@ interactive_expr: LBRACE True SEMI WILD interactive_expr: LBRACE True VBAR ## -## Ends in an error in state: 476. +## Ends in an error in state: 475. ## ## sequence_or_record_in -> expr_with_let_expr . SEMI sep_or_term_list(expr_with_let_expr,SEMI) [ RBRACE ] ## sequence_or_record_in -> expr_with_let_expr . option(SEMI) [ RBRACE ] @@ -1432,30 +1449,30 @@ interactive_expr: LBRACE True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 396, spurious reduction of production expr_with_let_expr -> expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 397, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: LBRACE WILD ## -## Ends in an error in state: 91. +## Ends in an error in state: 92. ## -## sequence_or_record -> LBRACE . sequence_or_record_in RBRACE [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## update_record -> LBRACE . ELLIPSIS path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## sequence_or_record -> LBRACE . sequence_or_record_in RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## update_record -> LBRACE . ELLIPSIS path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACE @@ -1465,9 +1482,9 @@ interactive_expr: LBRACE WILD interactive_expr: LBRACKET True COMMA ELLIPSIS True VBAR ## -## Ends in an error in state: 495. +## Ends in an error in state: 494. ## -## list_or_spread -> LBRACKET expr COMMA ELLIPSIS expr . RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## list_or_spread -> LBRACKET expr COMMA ELLIPSIS expr . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACKET expr COMMA ELLIPSIS expr @@ -1476,28 +1493,28 @@ interactive_expr: LBRACKET True COMMA ELLIPSIS True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET True COMMA ELLIPSIS WILD ## -## Ends in an error in state: 494. +## Ends in an error in state: 493. ## -## list_or_spread -> LBRACKET expr COMMA ELLIPSIS . expr RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## list_or_spread -> LBRACKET expr COMMA ELLIPSIS . expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACKET expr COMMA ELLIPSIS @@ -1507,7 +1524,7 @@ interactive_expr: LBRACKET True COMMA ELLIPSIS WILD interactive_expr: LBRACKET True COMMA True COMMA True COMMA WILD ## -## Ends in an error in state: 505. +## Ends in an error in state: 504. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] ## seq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] @@ -1520,7 +1537,7 @@ interactive_expr: LBRACKET True COMMA True COMMA True COMMA WILD interactive_expr: LBRACKET True COMMA True COMMA True VBAR ## -## Ends in an error in state: 504. +## Ends in an error in state: 503. ## ## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] @@ -1533,26 +1550,26 @@ interactive_expr: LBRACKET True COMMA True COMMA True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET True COMMA True COMMA WILD ## -## Ends in an error in state: 502. +## Ends in an error in state: 501. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] ## nseq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] @@ -1565,7 +1582,7 @@ interactive_expr: LBRACKET True COMMA True COMMA WILD interactive_expr: LBRACKET True COMMA True VBAR ## -## Ends in an error in state: 501. +## Ends in an error in state: 500. ## ## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] @@ -1578,29 +1595,29 @@ interactive_expr: LBRACKET True COMMA True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET True COMMA WILD ## -## Ends in an error in state: 493. +## Ends in an error in state: 492. ## -## list_or_spread -> LBRACKET expr COMMA . sep_or_term_list(expr,COMMA) RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## list_or_spread -> LBRACKET expr COMMA . ELLIPSIS expr RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## list_or_spread -> LBRACKET expr COMMA . sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET expr COMMA . ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACKET expr COMMA @@ -1610,10 +1627,10 @@ interactive_expr: LBRACKET True COMMA WILD interactive_expr: LBRACKET True VBAR ## -## Ends in an error in state: 492. +## Ends in an error in state: 491. ## -## list_or_spread -> LBRACKET expr . COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## list_or_spread -> LBRACKET expr . COMMA ELLIPSIS expr RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## list_or_spread -> LBRACKET expr . COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET expr . COMMA ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## option(expr) -> expr . [ RBRACKET ] ## ## The known suffix of the stack is as follows: @@ -1623,30 +1640,30 @@ interactive_expr: LBRACKET True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET WILD ## -## Ends in an error in state: 89. +## Ends in an error in state: 90. ## -## list_or_spread -> LBRACKET . expr COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## list_or_spread -> LBRACKET . expr COMMA ELLIPSIS expr RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## list_or_spread -> LBRACKET . option(expr) RBRACKET [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## list_or_spread -> LBRACKET . expr COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET . expr COMMA ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET . option(expr) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LBRACKET @@ -1656,12 +1673,12 @@ interactive_expr: LBRACKET WILD interactive_expr: LPAR True COMMA Bytes RPAR COLON Ident TIMES ## -## Ends in an error in state: 161. +## Ends in an error in state: 162. ## -## base_expr(expr) -> disj_expr_level . [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA BOOL_OR ARROW ] -## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA BOOL_OR ARROW ] -## fun_expr -> disj_expr_level . es6_func [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## base_expr(expr) -> disj_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] +## fun_expr -> disj_expr_level . es6_func [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## disj_expr_level @@ -1670,20 +1687,20 @@ interactive_expr: LPAR True COMMA Bytes RPAR COLON Ident TIMES ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 129, spurious reduction of production option(type_expr_simple_args) -> -## In state 138, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) -## In state 145, spurious reduction of production type_annotation_simple -> COLON type_expr_simple -## In state 146, spurious reduction of production option(type_annotation_simple) -> type_annotation_simple -## In state 147, spurious reduction of production disj_expr_level -> par(tuple(disj_expr_level)) option(type_annotation_simple) +## In state 130, spurious reduction of production option(type_expr_simple_args) -> +## In state 139, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 146, spurious reduction of production type_annotation_simple -> COLON type_expr_simple +## In state 147, spurious reduction of production option(type_annotation_simple) -> type_annotation_simple +## In state 148, spurious reduction of production disj_expr_level -> par(tuple(disj_expr_level)) option(type_annotation_simple) ## interactive_expr: LPAR True COMMA Bytes RPAR WILD ## -## Ends in an error in state: 126. +## Ends in an error in state: 127. ## -## disj_expr_level -> par(tuple(disj_expr_level)) . option(type_annotation_simple) [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA BOOL_OR ARROW ] +## disj_expr_level -> par(tuple(disj_expr_level)) . option(type_annotation_simple) [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] ## ## The known suffix of the stack is as follows: ## par(tuple(disj_expr_level)) @@ -1693,7 +1710,7 @@ interactive_expr: LPAR True COMMA Bytes RPAR WILD interactive_expr: LPAR True COMMA True COMMA WILD ## -## Ends in an error in state: 456. +## Ends in an error in state: 455. ## ## nsepseq(disj_expr_level,COMMA) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] ## @@ -1705,7 +1722,7 @@ interactive_expr: LPAR True COMMA True COMMA WILD interactive_expr: LPAR True COMMA True VBAR ## -## Ends in an error in state: 455. +## Ends in an error in state: 454. ## ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ RPAR Or COMMA BOOL_OR ] ## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ RPAR Or COMMA BOOL_OR ] @@ -1719,23 +1736,23 @@ interactive_expr: LPAR True COMMA True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: LPAR True COMMA WILD ## -## Ends in an error in state: 453. +## Ends in an error in state: 452. ## ## tuple(disj_expr_level) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] ## @@ -1747,7 +1764,7 @@ interactive_expr: LPAR True COMMA WILD interactive_expr: LPAR True VBAR ## -## Ends in an error in state: 452. +## Ends in an error in state: 451. ## ## base_expr(expr) -> disj_expr_level . [ RPAR ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ RPAR Or COMMA BOOL_OR ARROW ] @@ -1762,27 +1779,27 @@ interactive_expr: LPAR True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: LPAR WILD ## -## Ends in an error in state: 92. +## Ends in an error in state: 93. ## -## par(expr) -> LPAR . expr RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## par(tuple(disj_expr_level)) -> LPAR . tuple(disj_expr_level) RPAR [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA COLON BOOL_OR ARROW ] -## unit -> LPAR . RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## par(expr) -> LPAR . expr RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## par(tuple(disj_expr_level)) -> LPAR . tuple(disj_expr_level) RPAR [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA COLON BOOL_OR Attr ARROW ] +## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR @@ -1792,7 +1809,7 @@ interactive_expr: LPAR WILD interactive_expr: Let VBAR ## -## Ends in an error in state: 350. +## Ends in an error in state: 351. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let . let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1804,7 +1821,7 @@ interactive_expr: Let VBAR interactive_expr: Let WILD EQ Bytes SEMI WILD ## -## Ends in an error in state: 393. +## Ends in an error in state: 394. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let let_binding SEMI . expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1816,7 +1833,7 @@ interactive_expr: Let WILD EQ Bytes SEMI WILD interactive_expr: Let WILD EQ Bytes VBAR ## -## Ends in an error in state: 392. +## Ends in an error in state: 393. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let let_binding . SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1827,29 +1844,29 @@ interactive_expr: Let WILD EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 527, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 526, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr ## interactive_expr: MINUS WILD ## -## Ends in an error in state: 90. +## Ends in an error in state: 91. ## -## unary_expr_level -> MINUS . call_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## unary_expr_level -> MINUS . call_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## MINUS @@ -1859,9 +1876,9 @@ interactive_expr: MINUS WILD interactive_expr: NOT WILD ## -## Ends in an error in state: 88. +## Ends in an error in state: 89. ## -## unary_expr_level -> NOT . call_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## unary_expr_level -> NOT . call_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## NOT @@ -1871,10 +1888,10 @@ interactive_expr: NOT WILD interactive_expr: Switch Constr WILD ## -## Ends in an error in state: 110. +## Ends in an error in state: 111. ## -## module_field -> Constr . DOT Ident [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## projection -> Constr . DOT Ident selection [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## module_field -> Constr . DOT Ident [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr . DOT Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## Constr @@ -1884,7 +1901,7 @@ interactive_expr: Switch Constr WILD interactive_expr: Switch LBRACE WILD ## -## Ends in an error in state: 243. +## Ends in an error in state: 244. ## ## update_record -> LBRACE . ELLIPSIS path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ LBRACE ] ## @@ -1896,7 +1913,7 @@ interactive_expr: Switch LBRACE WILD interactive_expr: Switch LBRACKET True SEMI True SEMI WILD ## -## Ends in an error in state: 241. +## Ends in an error in state: 242. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -1909,7 +1926,7 @@ interactive_expr: Switch LBRACKET True SEMI True SEMI WILD interactive_expr: Switch LBRACKET True SEMI True VBAR ## -## Ends in an error in state: 240. +## Ends in an error in state: 241. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -1922,26 +1939,26 @@ interactive_expr: Switch LBRACKET True SEMI True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Switch LBRACKET True SEMI WILD ## -## Ends in an error in state: 237. +## Ends in an error in state: 238. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -1954,7 +1971,7 @@ interactive_expr: Switch LBRACKET True SEMI WILD interactive_expr: Switch LBRACKET True VBAR ## -## Ends in an error in state: 236. +## Ends in an error in state: 237. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -1967,26 +1984,26 @@ interactive_expr: Switch LBRACKET True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Switch LBRACKET WILD ## -## Ends in an error in state: 230. +## Ends in an error in state: 231. ## ## list__(expr) -> LBRACKET . option(sep_or_term_list(expr,SEMI)) RBRACKET [ LBRACE ] ## @@ -1998,9 +2015,9 @@ interactive_expr: Switch LBRACKET WILD interactive_expr: Switch LPAR True VBAR ## -## Ends in an error in state: 450. +## Ends in an error in state: 449. ## -## par(expr) -> LPAR expr . RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## par(expr) -> LPAR expr . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR expr @@ -2009,29 +2026,29 @@ interactive_expr: Switch LPAR True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Switch LPAR WILD ## -## Ends in an error in state: 86. +## Ends in an error in state: 87. ## -## par(expr) -> LPAR . expr RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## unit -> LPAR . RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## par(expr) -> LPAR . expr RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR @@ -2041,7 +2058,7 @@ interactive_expr: Switch LPAR WILD interactive_expr: Switch True LBRACE VBAR LBRACKET VBAR ## -## Ends in an error in state: 332. +## Ends in an error in state: 333. ## ## list__(sub_pattern) -> LBRACKET . option(sep_or_term_list(sub_pattern,SEMI)) RBRACKET [ COMMA ARROW ] ## pattern -> LBRACKET . sub_pattern COMMA ELLIPSIS sub_pattern RBRACKET [ ARROW ] @@ -2054,7 +2071,7 @@ interactive_expr: Switch True LBRACE VBAR LBRACKET VBAR interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS VBAR ## -## Ends in an error in state: 335. +## Ends in an error in state: 336. ## ## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS . sub_pattern RBRACKET [ ARROW ] ## @@ -2066,7 +2083,7 @@ interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS VBAR interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS WILD WILD ## -## Ends in an error in state: 336. +## Ends in an error in state: 337. ## ## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS sub_pattern . RBRACKET [ ARROW ] ## @@ -2078,7 +2095,7 @@ interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS WILD WILD interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA WILD ## -## Ends in an error in state: 334. +## Ends in an error in state: 335. ## ## pattern -> LBRACKET sub_pattern COMMA . ELLIPSIS sub_pattern RBRACKET [ ARROW ] ## @@ -2090,7 +2107,7 @@ interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA WILD interactive_expr: Switch True LBRACE VBAR LBRACKET WILD WILD ## -## Ends in an error in state: 333. +## Ends in an error in state: 334. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -2105,7 +2122,7 @@ interactive_expr: Switch True LBRACE VBAR LBRACKET WILD WILD interactive_expr: Switch True LBRACE VBAR LPAR Bytes RPAR WILD ## -## Ends in an error in state: 339. +## Ends in an error in state: 340. ## ## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] ## @@ -2117,7 +2134,7 @@ interactive_expr: Switch True LBRACE VBAR LPAR Bytes RPAR WILD interactive_expr: Switch True LBRACE VBAR VBAR ## -## Ends in an error in state: 510. +## Ends in an error in state: 509. ## ## case_clause(base_cond) -> VBAR . pattern ARROW base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2129,7 +2146,7 @@ interactive_expr: Switch True LBRACE VBAR VBAR interactive_expr: Switch True LBRACE VBAR WILD ARROW Bytes SEMI WILD ## -## Ends in an error in state: 523. +## Ends in an error in state: 522. ## ## nseq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] ## @@ -2141,7 +2158,7 @@ interactive_expr: Switch True LBRACE VBAR WILD ARROW Bytes SEMI WILD interactive_expr: Switch True LBRACE VBAR WILD ARROW Bytes VBAR Bytes ARROW Bytes SEMI WILD ## -## Ends in an error in state: 525. +## Ends in an error in state: 524. ## ## seq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] ## @@ -2151,9 +2168,9 @@ interactive_expr: Switch True LBRACE VBAR WILD ARROW Bytes VBAR Bytes ARROW Byte -interactive_expr: Switch True LBRACE VBAR WILD ARROW True ARROW Bytes RPAR +interactive_expr: Switch True LBRACE VBAR WILD ARROW True ARROW Bytes Type ## -## Ends in an error in state: 518. +## Ends in an error in state: 517. ## ## case_clause(base_cond) -> VBAR pattern ARROW base_cond . option(SEMI) [ VBAR RBRACE ] ## @@ -2164,31 +2181,31 @@ interactive_expr: Switch True LBRACE VBAR WILD ARROW True ARROW Bytes RPAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 212, spurious reduction of production es6_func -> ARROW expr -## In state 220, spurious reduction of production fun_expr -> disj_expr_level es6_func -## In state 513, spurious reduction of production base_expr(base_cond) -> fun_expr -## In state 516, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) -## In state 517, spurious reduction of production base_cond -> base_cond__open(base_cond) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 213, spurious reduction of production es6_func -> ARROW expr +## In state 221, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 512, spurious reduction of production base_expr(base_cond) -> fun_expr +## In state 515, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 516, spurious reduction of production base_cond -> base_cond__open(base_cond) ## -interactive_expr: Switch True LBRACE VBAR WILD ARROW True RPAR +interactive_expr: Switch True LBRACE VBAR WILD ARROW True Type ## -## Ends in an error in state: 514. +## Ends in an error in state: 513. ## ## base_expr(base_cond) -> disj_expr_level . [ VBAR SEMI RBRACE ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR SEMI RBRACE Or BOOL_OR ARROW ] @@ -2202,23 +2219,23 @@ interactive_expr: Switch True LBRACE VBAR WILD ARROW True RPAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Switch True LBRACE VBAR WILD ARROW WILD ## -## Ends in an error in state: 512. +## Ends in an error in state: 511. ## ## case_clause(base_cond) -> VBAR pattern ARROW . base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2230,7 +2247,7 @@ interactive_expr: Switch True LBRACE VBAR WILD ARROW WILD interactive_expr: Switch True LBRACE VBAR WILD COMMA Bytes RPAR ## -## Ends in an error in state: 511. +## Ends in an error in state: 510. ## ## case_clause(base_cond) -> VBAR pattern . ARROW base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2241,16 +2258,16 @@ interactive_expr: Switch True LBRACE VBAR WILD COMMA Bytes RPAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 326, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 329, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 338, spurious reduction of production pattern -> tuple(sub_pattern) +## In state 327, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 330, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 339, spurious reduction of production pattern -> tuple(sub_pattern) ## interactive_expr: Switch True LBRACE VBAR WILD COMMA VBAR ## -## Ends in an error in state: 325. +## Ends in an error in state: 326. ## ## tuple(sub_pattern) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] ## @@ -2262,7 +2279,7 @@ interactive_expr: Switch True LBRACE VBAR WILD COMMA VBAR interactive_expr: Switch True LBRACE VBAR WILD COMMA WILD COMMA VBAR ## -## Ends in an error in state: 327. +## Ends in an error in state: 328. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] ## @@ -2274,7 +2291,7 @@ interactive_expr: Switch True LBRACE VBAR WILD COMMA WILD COMMA VBAR interactive_expr: Switch True LBRACE VBAR WILD COMMA WILD WILD ## -## Ends in an error in state: 326. +## Ends in an error in state: 327. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern . [ RPAR ARROW ] ## nsepseq(sub_pattern,COMMA) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] @@ -2300,9 +2317,9 @@ interactive_expr: Switch True LBRACE VBAR WILD WILD interactive_expr: Switch True LBRACE WILD ## -## Ends in an error in state: 509. +## Ends in an error in state: 508. ## -## switch_expr(base_cond) -> Switch switch_expr_ LBRACE . cases(base_cond) RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## switch_expr(base_cond) -> Switch switch_expr_ LBRACE . cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Switch switch_expr_ LBRACE @@ -2312,9 +2329,9 @@ interactive_expr: Switch True LBRACE WILD interactive_expr: Switch True WILD ## -## Ends in an error in state: 508. +## Ends in an error in state: 507. ## -## switch_expr(base_cond) -> Switch switch_expr_ . LBRACE cases(base_cond) RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## switch_expr(base_cond) -> Switch switch_expr_ . LBRACE cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Switch switch_expr_ @@ -2324,9 +2341,9 @@ interactive_expr: Switch True WILD interactive_expr: Switch WILD ## -## Ends in an error in state: 82. +## Ends in an error in state: 83. ## -## switch_expr(base_cond) -> Switch . switch_expr_ LBRACE cases(base_cond) RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## switch_expr(base_cond) -> Switch . switch_expr_ LBRACE cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Switch @@ -2336,9 +2353,9 @@ interactive_expr: Switch WILD interactive_expr: True ARROW WILD ## -## Ends in an error in state: 211. +## Ends in an error in state: 212. ## -## es6_func -> ARROW . expr [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## es6_func -> ARROW . expr [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## ARROW @@ -2348,9 +2365,9 @@ interactive_expr: True ARROW WILD interactive_expr: True BOOL_AND WILD ## -## Ends in an error in state: 165. +## Ends in an error in state: 166. ## -## bin_op(conj_expr_level,BOOL_AND,comp_expr_level) -> conj_expr_level BOOL_AND . comp_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(conj_expr_level,BOOL_AND,comp_expr_level) -> conj_expr_level BOOL_AND . comp_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## conj_expr_level BOOL_AND @@ -2360,9 +2377,9 @@ interactive_expr: True BOOL_AND WILD interactive_expr: True BOOL_OR WILD ## -## Ends in an error in state: 209. +## Ends in an error in state: 210. ## -## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level BOOL_OR . conj_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA BOOL_OR ARROW ] +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level BOOL_OR . conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] ## ## The known suffix of the stack is as follows: ## disj_expr_level BOOL_OR @@ -2372,9 +2389,9 @@ interactive_expr: True BOOL_OR WILD interactive_expr: True CAT WILD ## -## Ends in an error in state: 188. +## Ends in an error in state: 189. ## -## bin_op(add_expr_level,CAT,cat_expr_level) -> add_expr_level CAT . cat_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or NE LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(add_expr_level,CAT,cat_expr_level) -> add_expr_level CAT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## add_expr_level CAT @@ -2384,7 +2401,7 @@ interactive_expr: True CAT WILD interactive_expr: True COLON Ident LPAR Ident VBAR ## -## Ends in an error in state: 131. +## Ends in an error in state: 132. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] @@ -2396,17 +2413,17 @@ interactive_expr: True COLON Ident LPAR Ident VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 129, spurious reduction of production option(type_expr_simple_args) -> -## In state 138, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 130, spurious reduction of production option(type_expr_simple_args) -> +## In state 139, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) ## interactive_expr: True COLON Ident LPAR WILD ## -## Ends in an error in state: 130. +## Ends in an error in state: 131. ## -## par(nsepseq(type_expr_simple,COMMA)) -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## par(nsepseq(type_expr_simple,COMMA)) -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR @@ -2416,9 +2433,9 @@ interactive_expr: True COLON Ident LPAR WILD interactive_expr: True COLON Ident WILD ## -## Ends in an error in state: 129. +## Ends in an error in state: 130. ## -## type_expr_simple -> Ident . option(type_expr_simple_args) [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## type_expr_simple -> Ident . option(type_expr_simple_args) [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## Ident @@ -2428,9 +2445,9 @@ interactive_expr: True COLON Ident WILD interactive_expr: True COLON LPAR Ident ARROW Ident VBAR ## -## Ends in an error in state: 141. +## Ends in an error in state: 142. ## -## type_expr_simple -> LPAR type_expr_simple ARROW type_expr_simple . RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## type_expr_simple -> LPAR type_expr_simple ARROW type_expr_simple . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR type_expr_simple ARROW type_expr_simple @@ -2439,17 +2456,17 @@ interactive_expr: True COLON LPAR Ident ARROW Ident VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 129, spurious reduction of production option(type_expr_simple_args) -> -## In state 138, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 130, spurious reduction of production option(type_expr_simple_args) -> +## In state 139, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) ## interactive_expr: True COLON LPAR Ident ARROW WILD ## -## Ends in an error in state: 140. +## Ends in an error in state: 141. ## -## type_expr_simple -> LPAR type_expr_simple ARROW . type_expr_simple RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## type_expr_simple -> LPAR type_expr_simple ARROW . type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR type_expr_simple ARROW @@ -2459,7 +2476,7 @@ interactive_expr: True COLON LPAR Ident ARROW WILD interactive_expr: True COLON LPAR Ident COMMA WILD ## -## Ends in an error in state: 132. +## Ends in an error in state: 133. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple COMMA . nsepseq(type_expr_simple,COMMA) [ RPAR ] ## @@ -2471,12 +2488,12 @@ interactive_expr: True COLON LPAR Ident COMMA WILD interactive_expr: True COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 148. +## Ends in an error in state: 149. ## -## add_expr_level -> mult_expr_level . [ VBAR SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## add_expr_level -> mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## mult_expr_level @@ -2486,11 +2503,11 @@ interactive_expr: True COLON LPAR Ident RPAR WILD interactive_expr: True COLON LPAR Ident VBAR ## -## Ends in an error in state: 139. +## Ends in an error in state: 140. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] -## type_expr_simple -> LPAR type_expr_simple . ARROW type_expr_simple RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## type_expr_simple -> LPAR type_expr_simple . ARROW type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR type_expr_simple @@ -2499,18 +2516,18 @@ interactive_expr: True COLON LPAR Ident VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 129, spurious reduction of production option(type_expr_simple_args) -> -## In state 138, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 130, spurious reduction of production option(type_expr_simple_args) -> +## In state 139, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) ## interactive_expr: True COLON LPAR WILD ## -## Ends in an error in state: 128. +## Ends in an error in state: 129. ## -## type_expr_simple -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## type_expr_simple -> LPAR . type_expr_simple ARROW type_expr_simple RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## type_expr_simple -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## type_expr_simple -> LPAR . type_expr_simple ARROW type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## LPAR @@ -2520,9 +2537,9 @@ interactive_expr: True COLON LPAR WILD interactive_expr: True COLON WILD ## -## Ends in an error in state: 127. +## Ends in an error in state: 128. ## -## type_annotation_simple -> COLON . type_expr_simple [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## type_annotation_simple -> COLON . type_expr_simple [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## COLON @@ -2532,9 +2549,9 @@ interactive_expr: True COLON WILD interactive_expr: True EQEQ WILD ## -## Ends in an error in state: 198. +## Ends in an error in state: 199. ## -## bin_op(comp_expr_level,EQEQ,cat_expr_level) -> comp_expr_level EQEQ . cat_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or NE LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(comp_expr_level,EQEQ,cat_expr_level) -> comp_expr_level EQEQ . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## comp_expr_level EQEQ @@ -2544,9 +2561,9 @@ interactive_expr: True EQEQ WILD interactive_expr: True GE WILD ## -## Ends in an error in state: 196. +## Ends in an error in state: 197. ## -## bin_op(comp_expr_level,GE,cat_expr_level) -> comp_expr_level GE . cat_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or NE LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(comp_expr_level,GE,cat_expr_level) -> comp_expr_level GE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## comp_expr_level GE @@ -2556,9 +2573,9 @@ interactive_expr: True GE WILD interactive_expr: True GT WILD ## -## Ends in an error in state: 194. +## Ends in an error in state: 195. ## -## bin_op(comp_expr_level,GT,cat_expr_level) -> comp_expr_level GT . cat_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or NE LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(comp_expr_level,GT,cat_expr_level) -> comp_expr_level GT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## comp_expr_level GT @@ -2568,9 +2585,9 @@ interactive_expr: True GT WILD interactive_expr: True LE WILD ## -## Ends in an error in state: 192. +## Ends in an error in state: 193. ## -## bin_op(comp_expr_level,LE,cat_expr_level) -> comp_expr_level LE . cat_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or NE LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(comp_expr_level,LE,cat_expr_level) -> comp_expr_level LE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## comp_expr_level LE @@ -2580,7 +2597,7 @@ interactive_expr: True LE WILD interactive_expr: True LPAR True COMMA WILD ## -## Ends in an error in state: 159. +## Ends in an error in state: 160. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] ## @@ -2592,7 +2609,7 @@ interactive_expr: True LPAR True COMMA WILD interactive_expr: True LPAR True VBAR ## -## Ends in an error in state: 158. +## Ends in an error in state: 159. ## ## nsepseq(expr,COMMA) -> expr . [ RPAR ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RPAR ] @@ -2604,29 +2621,29 @@ interactive_expr: True LPAR True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: True LPAR WILD ## -## Ends in an error in state: 152. +## Ends in an error in state: 153. ## -## call_expr -> core_expr LPAR . nsepseq(expr,COMMA) RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## unit -> LPAR . RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## call_expr -> core_expr LPAR . nsepseq(expr,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## core_expr LPAR @@ -2636,9 +2653,9 @@ interactive_expr: True LPAR WILD interactive_expr: True LT WILD ## -## Ends in an error in state: 190. +## Ends in an error in state: 191. ## -## bin_op(comp_expr_level,LT,cat_expr_level) -> comp_expr_level LT . cat_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or NE LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(comp_expr_level,LT,cat_expr_level) -> comp_expr_level LT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## comp_expr_level LT @@ -2648,12 +2665,12 @@ interactive_expr: True LT WILD interactive_expr: True MINUS True COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 187. +## Ends in an error in state: 188. ## -## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS mult_expr_level . [ VBAR SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## add_expr_level MINUS mult_expr_level @@ -2663,9 +2680,9 @@ interactive_expr: True MINUS True COLON LPAR Ident RPAR WILD interactive_expr: True MINUS WILD ## -## Ends in an error in state: 186. +## Ends in an error in state: 187. ## -## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS . mult_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS . mult_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## add_expr_level MINUS @@ -2675,9 +2692,9 @@ interactive_expr: True MINUS WILD interactive_expr: True Mod WILD ## -## Ends in an error in state: 184. +## Ends in an error in state: 185. ## -## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level Mod . unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level Mod . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## mult_expr_level Mod @@ -2687,9 +2704,9 @@ interactive_expr: True Mod WILD interactive_expr: True NE WILD ## -## Ends in an error in state: 167. +## Ends in an error in state: 168. ## -## bin_op(comp_expr_level,NE,cat_expr_level) -> comp_expr_level NE . cat_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or NE LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND ARROW ] +## bin_op(comp_expr_level,NE,cat_expr_level) -> comp_expr_level NE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## comp_expr_level NE @@ -2699,9 +2716,9 @@ interactive_expr: True NE WILD interactive_expr: True Or WILD ## -## Ends in an error in state: 162. +## Ends in an error in state: 163. ## -## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level Or . conj_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA BOOL_OR ARROW ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level Or . conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] ## ## The known suffix of the stack is as follows: ## disj_expr_level Or @@ -2711,12 +2728,12 @@ interactive_expr: True Or WILD interactive_expr: True PLUS True COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 181. +## Ends in an error in state: 182. ## -## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS mult_expr_level . [ VBAR SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] -## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## add_expr_level PLUS mult_expr_level @@ -2726,9 +2743,9 @@ interactive_expr: True PLUS True COLON LPAR Ident RPAR WILD interactive_expr: True PLUS WILD ## -## Ends in an error in state: 180. +## Ends in an error in state: 181. ## -## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS . mult_expr_level [ VBAR SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS . mult_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## add_expr_level PLUS @@ -2738,9 +2755,9 @@ interactive_expr: True PLUS WILD interactive_expr: True SLASH WILD ## -## Ends in an error in state: 182. +## Ends in an error in state: 183. ## -## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level SLASH . unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level SLASH . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## mult_expr_level SLASH @@ -2750,9 +2767,9 @@ interactive_expr: True SLASH WILD interactive_expr: True TIMES WILD ## -## Ends in an error in state: 149. +## Ends in an error in state: 150. ## -## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level TIMES . unary_expr_level [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND ARROW ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level TIMES . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## mult_expr_level TIMES @@ -2762,7 +2779,7 @@ interactive_expr: True TIMES WILD interactive_expr: True VBAR ## -## Ends in an error in state: 538. +## Ends in an error in state: 537. ## ## interactive_expr -> expr_with_let_expr . EOF [ # ] ## @@ -2773,31 +2790,31 @@ interactive_expr: True VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 396, spurious reduction of production expr_with_let_expr -> expr +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 397, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: True WILD ## -## Ends in an error in state: 151. +## Ends in an error in state: 152. ## -## call_expr -> core_expr . LPAR nsepseq(expr,COMMA) RPAR [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## call_expr -> core_expr . unit [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] -## call_expr_level_in -> core_expr . [ VBAR TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND ARROW ] +## call_expr -> core_expr . LPAR nsepseq(expr,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## call_expr -> core_expr . unit [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## call_expr_level_in -> core_expr . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## ## The known suffix of the stack is as follows: ## core_expr @@ -2807,7 +2824,7 @@ interactive_expr: True WILD interactive_expr: WILD ## -## Ends in an error in state: 536. +## Ends in an error in state: 535. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -2829,11 +2846,11 @@ contract: Attr WILD -contract: Let Ident COLON Constr SEMI +contract: Let Ident COLON Constr Type ## -## Ends in an error in state: 372. +## Ends in an error in state: 373. ## -## let_binding -> Ident option(type_annotation) . EQ expr [ SEMI ] +## let_binding -> Ident option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## Ident option(type_annotation) @@ -2846,17 +2863,17 @@ contract: Let Ident COLON Constr SEMI ## In state 41, spurious reduction of production nsepseq(variant,VBAR) -> variant ## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) ## In state 66, spurious reduction of production type_expr -> sum_type -## In state 77, spurious reduction of production type_annotation -> COLON type_expr -## In state 78, spurious reduction of production option(type_annotation) -> type_annotation +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation ## contract: Let Ident EQ WILD ## -## Ends in an error in state: 373. +## Ends in an error in state: 374. ## -## let_binding -> Ident option(type_annotation) EQ . expr [ SEMI ] +## let_binding -> Ident option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## Ident option(type_annotation) EQ @@ -2871,9 +2888,9 @@ let func = (a: int, b: int) => a + b; contract: Let Ident WILD ## -## Ends in an error in state: 371. +## Ends in an error in state: 372. ## -## let_binding -> Ident . option(type_annotation) EQ expr [ SEMI ] +## let_binding -> Ident . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> Ident . [ COMMA ] ## ## The known suffix of the stack is as follows: @@ -2884,7 +2901,7 @@ contract: Let Ident WILD contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes COMMA WILD ## -## Ends in an error in state: 308. +## Ends in an error in state: 309. ## ## nsepseq(field_pattern,COMMA) -> field_pattern COMMA . nsepseq(field_pattern,COMMA) [ RBRACE ] ## seq(__anonymous_0(field_pattern,COMMA)) -> field_pattern COMMA . seq(__anonymous_0(field_pattern,COMMA)) [ RBRACE ] @@ -2897,7 +2914,7 @@ contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes COMMA WILD contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes WILD ## -## Ends in an error in state: 307. +## Ends in an error in state: 308. ## ## nsepseq(field_pattern,COMMA) -> field_pattern . [ RBRACE ] ## nsepseq(field_pattern,COMMA) -> field_pattern . COMMA nsepseq(field_pattern,COMMA) [ RBRACE ] @@ -2911,7 +2928,7 @@ contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes WILD contract: Let LBRACE Ident EQ Bytes COMMA WILD ## -## Ends in an error in state: 304. +## Ends in an error in state: 305. ## ## nsepseq(field_pattern,COMMA) -> field_pattern COMMA . nsepseq(field_pattern,COMMA) [ RBRACE ] ## nseq(__anonymous_0(field_pattern,COMMA)) -> field_pattern COMMA . seq(__anonymous_0(field_pattern,COMMA)) [ RBRACE ] @@ -2922,11 +2939,11 @@ contract: Let LBRACE Ident EQ Bytes COMMA WILD -contract: Let LBRACE Ident EQ Bytes RBRACE COLON Constr SEMI +contract: Let LBRACE Ident EQ Bytes RBRACE COLON Constr Type ## -## Ends in an error in state: 385. +## Ends in an error in state: 386. ## -## let_binding -> record_pattern option(type_annotation) . EQ expr [ SEMI ] +## let_binding -> record_pattern option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## record_pattern option(type_annotation) @@ -2939,17 +2956,17 @@ contract: Let LBRACE Ident EQ Bytes RBRACE COLON Constr SEMI ## In state 41, spurious reduction of production nsepseq(variant,VBAR) -> variant ## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) ## In state 66, spurious reduction of production type_expr -> sum_type -## In state 77, spurious reduction of production type_annotation -> COLON type_expr -## In state 78, spurious reduction of production option(type_annotation) -> type_annotation +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation ## contract: Let LBRACE Ident EQ Bytes RBRACE EQ WILD ## -## Ends in an error in state: 386. +## Ends in an error in state: 387. ## -## let_binding -> record_pattern option(type_annotation) EQ . expr [ SEMI ] +## let_binding -> record_pattern option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## record_pattern option(type_annotation) EQ @@ -2959,9 +2976,9 @@ contract: Let LBRACE Ident EQ Bytes RBRACE EQ WILD contract: Let LBRACE Ident EQ Bytes RBRACE WILD ## -## Ends in an error in state: 384. +## Ends in an error in state: 385. ## -## let_binding -> record_pattern . option(type_annotation) EQ expr [ SEMI ] +## let_binding -> record_pattern . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> record_pattern . [ COMMA ] ## ## The known suffix of the stack is as follows: @@ -2972,7 +2989,7 @@ contract: Let LBRACE Ident EQ Bytes RBRACE WILD contract: Let LBRACE Ident EQ Bytes WILD ## -## Ends in an error in state: 303. +## Ends in an error in state: 304. ## ## nsepseq(field_pattern,COMMA) -> field_pattern . [ RBRACE ] ## nsepseq(field_pattern,COMMA) -> field_pattern . COMMA nsepseq(field_pattern,COMMA) [ RBRACE ] @@ -2986,7 +3003,7 @@ contract: Let LBRACE Ident EQ Bytes WILD contract: Let LBRACE Ident EQ VBAR ## -## Ends in an error in state: 281. +## Ends in an error in state: 282. ## ## field_pattern -> Ident EQ . sub_pattern [ RBRACE COMMA ] ## @@ -2998,7 +3015,7 @@ contract: Let LBRACE Ident EQ VBAR contract: Let LBRACE Ident WILD ## -## Ends in an error in state: 280. +## Ends in an error in state: 281. ## ## field_pattern -> Ident . EQ sub_pattern [ RBRACE COMMA ] ## @@ -3010,7 +3027,7 @@ contract: Let LBRACE Ident WILD contract: Let LBRACE WILD ## -## Ends in an error in state: 279. +## Ends in an error in state: 280. ## ## record_pattern -> LBRACE . sep_or_term_list(field_pattern,COMMA) RBRACE [ SEMI RPAR RBRACKET RBRACE EQ COMMA COLON ARROW ] ## @@ -3022,7 +3039,7 @@ contract: Let LBRACE WILD contract: Let LPAR C_Some VBAR ## -## Ends in an error in state: 286. +## Ends in an error in state: 287. ## ## constr_pattern -> C_Some . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -3034,7 +3051,7 @@ contract: Let LPAR C_Some VBAR contract: Let LPAR Constr LBRACKET VBAR ## -## Ends in an error in state: 278. +## Ends in an error in state: 279. ## ## list__(sub_pattern) -> LBRACKET . option(sep_or_term_list(sub_pattern,SEMI)) RBRACKET [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -3046,7 +3063,7 @@ contract: Let LPAR Constr LBRACKET VBAR contract: Let LPAR Constr LBRACKET WILD SEMI VBAR ## -## Ends in an error in state: 311. +## Ends in an error in state: 312. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern SEMI . nsepseq(sub_pattern,SEMI) [ RBRACKET ] ## nseq(__anonymous_0(sub_pattern,SEMI)) -> sub_pattern SEMI . seq(__anonymous_0(sub_pattern,SEMI)) [ RBRACKET ] @@ -3059,7 +3076,7 @@ contract: Let LPAR Constr LBRACKET WILD SEMI VBAR contract: Let LPAR Constr LBRACKET WILD SEMI WILD SEMI VBAR ## -## Ends in an error in state: 313. +## Ends in an error in state: 314. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern SEMI . nsepseq(sub_pattern,SEMI) [ RBRACKET ] ## seq(__anonymous_0(sub_pattern,SEMI)) -> sub_pattern SEMI . seq(__anonymous_0(sub_pattern,SEMI)) [ RBRACKET ] @@ -3072,7 +3089,7 @@ contract: Let LPAR Constr LBRACKET WILD SEMI WILD SEMI VBAR contract: Let LPAR Constr LBRACKET WILD SEMI WILD WILD ## -## Ends in an error in state: 312. +## Ends in an error in state: 313. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -3086,7 +3103,7 @@ contract: Let LPAR Constr LBRACKET WILD SEMI WILD WILD contract: Let LPAR Constr LBRACKET WILD WILD ## -## Ends in an error in state: 310. +## Ends in an error in state: 311. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -3100,7 +3117,7 @@ contract: Let LPAR Constr LBRACKET WILD WILD contract: Let LPAR Constr LPAR VBAR ## -## Ends in an error in state: 277. +## Ends in an error in state: 278. ## ## par(ptuple) -> LPAR . ptuple RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## par(sub_pattern) -> LPAR . sub_pattern RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] @@ -3114,7 +3131,7 @@ contract: Let LPAR Constr LPAR VBAR contract: Let LPAR Constr LPAR WILD COMMA Bytes ARROW ## -## Ends in an error in state: 330. +## Ends in an error in state: 331. ## ## par(ptuple) -> LPAR ptuple . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -3125,16 +3142,16 @@ contract: Let LPAR Constr LPAR WILD COMMA Bytes ARROW ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 326, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 329, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 322, spurious reduction of production ptuple -> tuple(sub_pattern) +## In state 327, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 330, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 323, spurious reduction of production ptuple -> tuple(sub_pattern) ## contract: Let LPAR Constr LPAR WILD WILD ## -## Ends in an error in state: 323. +## Ends in an error in state: 324. ## ## par(sub_pattern) -> LPAR sub_pattern . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ] @@ -3147,7 +3164,7 @@ contract: Let LPAR Constr LPAR WILD WILD contract: Let LPAR Constr SEMI ## -## Ends in an error in state: 369. +## Ends in an error in state: 370. ## ## par(closed_irrefutable) -> LPAR closed_irrefutable . RPAR [ RPAR EQ COMMA COLON ] ## @@ -3158,15 +3175,15 @@ contract: Let LPAR Constr SEMI ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 285, spurious reduction of production constr_pattern -> Constr -## In state 368, spurious reduction of production closed_irrefutable -> constr_pattern +## In state 286, spurious reduction of production constr_pattern -> Constr +## In state 369, spurious reduction of production closed_irrefutable -> constr_pattern ## contract: Let LPAR Constr VBAR ## -## Ends in an error in state: 285. +## Ends in an error in state: 286. ## ## constr_pattern -> Constr . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## constr_pattern -> Constr . [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] @@ -3177,11 +3194,11 @@ contract: Let LPAR Constr VBAR -contract: Let LPAR RPAR COLON Constr SEMI +contract: Let LPAR RPAR COLON Constr Type ## -## Ends in an error in state: 376. +## Ends in an error in state: 377. ## -## let_binding -> unit option(type_annotation) . EQ expr [ SEMI ] +## let_binding -> unit option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## unit option(type_annotation) @@ -3194,17 +3211,17 @@ contract: Let LPAR RPAR COLON Constr SEMI ## In state 41, spurious reduction of production nsepseq(variant,VBAR) -> variant ## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) ## In state 66, spurious reduction of production type_expr -> sum_type -## In state 77, spurious reduction of production type_annotation -> COLON type_expr -## In state 78, spurious reduction of production option(type_annotation) -> type_annotation +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation ## contract: Let LPAR RPAR EQ WILD ## -## Ends in an error in state: 377. +## Ends in an error in state: 378. ## -## let_binding -> unit option(type_annotation) EQ . expr [ SEMI ] +## let_binding -> unit option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## unit option(type_annotation) EQ @@ -3214,9 +3231,9 @@ contract: Let LPAR RPAR EQ WILD contract: Let LPAR RPAR WILD ## -## Ends in an error in state: 375. +## Ends in an error in state: 376. ## -## let_binding -> unit . option(type_annotation) EQ expr [ SEMI ] +## let_binding -> unit . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> unit . [ COMMA ] ## ## The known suffix of the stack is as follows: @@ -3227,7 +3244,7 @@ contract: Let LPAR RPAR WILD contract: Let LPAR VBAR ## -## Ends in an error in state: 351. +## Ends in an error in state: 352. ## ## par(closed_irrefutable) -> LPAR . closed_irrefutable RPAR [ RPAR EQ COMMA COLON ] ## unit -> LPAR . RPAR [ RPAR EQ COMMA COLON ] @@ -3240,7 +3257,7 @@ contract: Let LPAR VBAR contract: Let LPAR WILD COLON WILD ## -## Ends in an error in state: 366. +## Ends in an error in state: 367. ## ## typed_pattern -> irrefutable COLON . type_expr [ RPAR ] ## @@ -3252,7 +3269,7 @@ contract: Let LPAR WILD COLON WILD contract: Let LPAR WILD COMMA Ident EQ ## -## Ends in an error in state: 365. +## Ends in an error in state: 366. ## ## closed_irrefutable -> irrefutable . [ RPAR ] ## typed_pattern -> irrefutable . COLON type_expr [ RPAR ] @@ -3264,18 +3281,18 @@ contract: Let LPAR WILD COMMA Ident EQ ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 359, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable -## In state 364, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) -## In state 356, spurious reduction of production irrefutable -> tuple(sub_irrefutable) +## In state 360, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 365, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) +## In state 357, spurious reduction of production irrefutable -> tuple(sub_irrefutable) ## -contract: Let LPAR WILD RPAR COLON Constr SEMI +contract: Let LPAR WILD RPAR COLON Constr Type ## -## Ends in an error in state: 389. +## Ends in an error in state: 390. ## -## let_binding -> par(closed_irrefutable) option(type_annotation) . EQ expr [ SEMI ] +## let_binding -> par(closed_irrefutable) option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## par(closed_irrefutable) option(type_annotation) @@ -3288,17 +3305,17 @@ contract: Let LPAR WILD RPAR COLON Constr SEMI ## In state 41, spurious reduction of production nsepseq(variant,VBAR) -> variant ## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) ## In state 66, spurious reduction of production type_expr -> sum_type -## In state 77, spurious reduction of production type_annotation -> COLON type_expr -## In state 78, spurious reduction of production option(type_annotation) -> type_annotation +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation ## contract: Let LPAR WILD RPAR EQ WILD ## -## Ends in an error in state: 390. +## Ends in an error in state: 391. ## -## let_binding -> par(closed_irrefutable) option(type_annotation) EQ . expr [ SEMI ] +## let_binding -> par(closed_irrefutable) option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## par(closed_irrefutable) option(type_annotation) EQ @@ -3308,9 +3325,9 @@ contract: Let LPAR WILD RPAR EQ WILD contract: Let LPAR WILD RPAR WILD ## -## Ends in an error in state: 388. +## Ends in an error in state: 389. ## -## let_binding -> par(closed_irrefutable) . option(type_annotation) EQ expr [ SEMI ] +## let_binding -> par(closed_irrefutable) . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> par(closed_irrefutable) . [ COMMA ] ## ## The known suffix of the stack is as follows: @@ -3321,7 +3338,7 @@ contract: Let LPAR WILD RPAR WILD contract: Let LPAR WILD WILD ## -## Ends in an error in state: 357. +## Ends in an error in state: 358. ## ## irrefutable -> sub_irrefutable . [ RPAR COLON ] ## tuple(sub_irrefutable) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR COLON ] @@ -3334,9 +3351,9 @@ contract: Let LPAR WILD WILD contract: Let VBAR ## -## Ends in an error in state: 74. +## Ends in an error in state: 75. ## -## let_declaration -> seq(Attr) Let . let_binding [ SEMI ] +## let_declaration -> seq(Attr) Let . let_binding [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## seq(Attr) Let @@ -3344,11 +3361,11 @@ contract: Let VBAR -contract: Let WILD COLON Ident SEMI +contract: Let WILD COLON Ident Type ## -## Ends in an error in state: 79. +## Ends in an error in state: 80. ## -## let_binding -> WILD option(type_annotation) . EQ expr [ SEMI ] +## let_binding -> WILD option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## WILD option(type_annotation) @@ -3360,15 +3377,15 @@ contract: Let WILD COLON Ident SEMI ## In state 8, spurious reduction of production core_type -> Ident ## In state 15, spurious reduction of production cartesian -> core_type ## In state 68, spurious reduction of production type_expr -> cartesian -## In state 77, spurious reduction of production type_annotation -> COLON type_expr -## In state 78, spurious reduction of production option(type_annotation) -> type_annotation +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation ## contract: Let WILD COLON WILD ## -## Ends in an error in state: 76. +## Ends in an error in state: 77. ## ## type_annotation -> COLON . type_expr [ EQ ] ## @@ -3378,11 +3395,11 @@ contract: Let WILD COLON WILD -contract: Let WILD COMMA Ident COLON Constr SEMI +contract: Let WILD COMMA Ident COLON Constr Type ## -## Ends in an error in state: 380. +## Ends in an error in state: 381. ## -## let_binding -> tuple(sub_irrefutable) option(type_annotation) . EQ expr [ SEMI ] +## let_binding -> tuple(sub_irrefutable) option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## tuple(sub_irrefutable) option(type_annotation) @@ -3395,17 +3412,17 @@ contract: Let WILD COMMA Ident COLON Constr SEMI ## In state 41, spurious reduction of production nsepseq(variant,VBAR) -> variant ## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) ## In state 66, spurious reduction of production type_expr -> sum_type -## In state 77, spurious reduction of production type_annotation -> COLON type_expr -## In state 78, spurious reduction of production option(type_annotation) -> type_annotation +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation ## contract: Let WILD COMMA Ident EQ WILD ## -## Ends in an error in state: 381. +## Ends in an error in state: 382. ## -## let_binding -> tuple(sub_irrefutable) option(type_annotation) EQ . expr [ SEMI ] +## let_binding -> tuple(sub_irrefutable) option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## tuple(sub_irrefutable) option(type_annotation) EQ @@ -3415,9 +3432,9 @@ contract: Let WILD COMMA Ident EQ WILD contract: Let WILD COMMA Ident RPAR ## -## Ends in an error in state: 379. +## Ends in an error in state: 380. ## -## let_binding -> tuple(sub_irrefutable) . option(type_annotation) EQ expr [ SEMI ] +## let_binding -> tuple(sub_irrefutable) . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## tuple(sub_irrefutable) @@ -3426,15 +3443,15 @@ contract: Let WILD COMMA Ident RPAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 359, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable -## In state 364, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) +## In state 360, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 365, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) ## contract: Let WILD COMMA VBAR ## -## Ends in an error in state: 358. +## Ends in an error in state: 359. ## ## tuple(sub_irrefutable) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] ## @@ -3446,7 +3463,7 @@ contract: Let WILD COMMA VBAR contract: Let WILD COMMA WILD COMMA VBAR ## -## Ends in an error in state: 360. +## Ends in an error in state: 361. ## ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] ## @@ -3458,7 +3475,7 @@ contract: Let WILD COMMA WILD COMMA VBAR contract: Let WILD COMMA WILD WILD ## -## Ends in an error in state: 359. +## Ends in an error in state: 360. ## ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . [ RPAR EQ COLON ] ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] @@ -3471,9 +3488,9 @@ contract: Let WILD COMMA WILD WILD contract: Let WILD EQ Bytes VBAR ## -## Ends in an error in state: 529. +## Ends in an error in state: 528. ## -## declaration -> let_declaration . SEMI [ Type Let EOF Attr ] +## declaration -> let_declaration . option(SEMI) [ Type Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## let_declaration @@ -3482,30 +3499,30 @@ contract: Let WILD EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 151, spurious reduction of production call_expr_level_in -> core_expr -## In state 169, spurious reduction of production option(type_annotation_simple) -> -## In state 170, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 171, spurious reduction of production unary_expr_level -> call_expr_level -## In state 124, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 148, spurious reduction of production add_expr_level -> mult_expr_level -## In state 179, spurious reduction of production cat_expr_level -> add_expr_level -## In state 200, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 207, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 214, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 161, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 218, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 219, spurious reduction of production expr -> base_cond__open(expr) -## In state 527, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr -## In state 528, spurious reduction of production let_declaration -> seq(Attr) Let let_binding +## In state 152, spurious reduction of production call_expr_level_in -> core_expr +## In state 170, spurious reduction of production option(type_annotation_simple) -> +## In state 171, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 172, spurious reduction of production unary_expr_level -> call_expr_level +## In state 125, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 149, spurious reduction of production add_expr_level -> mult_expr_level +## In state 180, spurious reduction of production cat_expr_level -> add_expr_level +## In state 201, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 208, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 215, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 162, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 219, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 220, spurious reduction of production expr -> base_cond__open(expr) +## In state 526, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 527, spurious reduction of production let_declaration -> seq(Attr) Let let_binding ## contract: Let WILD EQ WILD ## -## Ends in an error in state: 80. +## Ends in an error in state: 81. ## -## let_binding -> WILD option(type_annotation) EQ . expr [ SEMI ] +## let_binding -> WILD option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## WILD option(type_annotation) EQ @@ -3515,9 +3532,9 @@ contract: Let WILD EQ WILD contract: Let WILD WILD ## -## Ends in an error in state: 75. +## Ends in an error in state: 76. ## -## let_binding -> WILD . option(type_annotation) EQ expr [ SEMI ] +## let_binding -> WILD . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> WILD . [ COMMA ] ## ## The known suffix of the stack is as follows: @@ -3530,7 +3547,7 @@ contract: Type Ident EQ Constr DOT WILD ## ## Ends in an error in state: 12. ## -## core_type -> Constr DOT . Ident [ SEMI RPAR RBRACE EQ COMMA ] +## core_type -> Constr DOT . Ident [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Constr DOT @@ -3542,8 +3559,8 @@ contract: Type Ident EQ Constr LPAR Ident RPAR WILD ## ## Ends in an error in state: 41. ## -## nsepseq(variant,VBAR) -> variant . [ SEMI RPAR RBRACE EQ COMMA ] -## nsepseq(variant,VBAR) -> variant . VBAR nsepseq(variant,VBAR) [ SEMI RPAR RBRACE EQ COMMA ] +## nsepseq(variant,VBAR) -> variant . [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## nsepseq(variant,VBAR) -> variant . VBAR nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## variant @@ -3551,11 +3568,11 @@ contract: Type Ident EQ Constr LPAR Ident RPAR WILD -contract: Type Ident EQ Constr LPAR Ident SEMI +contract: Type Ident EQ Constr LPAR Ident Type ## ## Ends in an error in state: 39. ## -## variant -> Constr LPAR cartesian . RPAR [ VBAR SEMI RPAR RBRACE EQ COMMA ] +## variant -> Constr LPAR cartesian . RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Constr LPAR cartesian @@ -3574,7 +3591,7 @@ contract: Type Ident EQ Constr LPAR WILD ## ## Ends in an error in state: 6. ## -## variant -> Constr LPAR . cartesian RPAR [ VBAR SEMI RPAR RBRACE EQ COMMA ] +## variant -> Constr LPAR . cartesian RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Constr LPAR @@ -3586,7 +3603,7 @@ contract: Type Ident EQ Constr RPAR ## ## Ends in an error in state: 71. ## -## declaration -> type_decl . SEMI [ Type Let EOF Attr ] +## declaration -> type_decl . option(SEMI) [ Type Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## type_decl @@ -3606,7 +3623,7 @@ contract: Type Ident EQ Constr RPAR contract: Type Ident EQ Constr SEMI WILD ## -## Ends in an error in state: 533. +## Ends in an error in state: 532. ## ## declarations -> declaration . [ EOF ] ## declarations -> declaration . declarations [ EOF ] @@ -3621,7 +3638,7 @@ contract: Type Ident EQ Constr VBAR WILD ## ## Ends in an error in state: 42. ## -## nsepseq(variant,VBAR) -> variant VBAR . nsepseq(variant,VBAR) [ SEMI RPAR RBRACE EQ COMMA ] +## nsepseq(variant,VBAR) -> variant VBAR . nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## variant VBAR @@ -3633,9 +3650,9 @@ contract: Type Ident EQ Constr WILD ## ## Ends in an error in state: 48. ## -## core_type -> Constr . DOT Ident [ SEMI RPAR RBRACE EQ COMMA ] -## variant -> Constr . [ VBAR SEMI RPAR RBRACE EQ COMMA ] -## variant -> Constr . LPAR cartesian RPAR [ VBAR SEMI RPAR RBRACE EQ COMMA ] +## core_type -> Constr . DOT Ident [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## variant -> Constr . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## variant -> Constr . LPAR cartesian RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Constr @@ -3647,7 +3664,7 @@ contract: Type Ident EQ Ident ARROW WILD ## ## Ends in an error in state: 25. ## -## type_expr_func -> ARROW . cartesian [ SEMI RPAR EQ COMMA ] +## type_expr_func -> ARROW . cartesian [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## ARROW @@ -3699,7 +3716,7 @@ contract: Type Ident EQ Ident LPAR Ident WILD -contract: Type Ident EQ Ident LPAR LPAR Ident SEMI +contract: Type Ident EQ Ident LPAR LPAR Ident Type ## ## Ends in an error in state: 16. ## @@ -3734,7 +3751,7 @@ contract: Type Ident EQ Ident LPAR WILD ## ## Ends in an error in state: 9. ## -## par(__anonymous_1) -> LPAR . nsepseq(core_type,COMMA) RPAR [ SEMI RPAR RBRACE EQ COMMA ] +## par(__anonymous_1) -> LPAR . nsepseq(core_type,COMMA) RPAR [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## LPAR @@ -3746,9 +3763,9 @@ contract: Type Ident EQ Ident WILD ## ## Ends in an error in state: 8. ## -## cartesian -> Ident . type_expr_func [ SEMI RPAR EQ COMMA ] -## core_type -> Ident . [ SEMI RPAR EQ COMMA ] -## core_type -> Ident . par(__anonymous_1) [ SEMI RPAR EQ COMMA ] +## cartesian -> Ident . type_expr_func [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## core_type -> Ident . [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## core_type -> Ident . par(__anonymous_1) [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Ident @@ -3756,7 +3773,7 @@ contract: Type Ident EQ Ident WILD -contract: Type Ident EQ LBRACE Ident COLON Constr SEMI +contract: Type Ident EQ LBRACE Ident COLON Constr Type ## ## Ends in an error in state: 58. ## @@ -3792,7 +3809,7 @@ contract: Type Ident EQ LBRACE Ident COLON WILD -contract: Type Ident EQ LBRACE Ident COMMA Ident COLON Constr SEMI +contract: Type Ident EQ LBRACE Ident COMMA Ident COLON Constr Type ## ## Ends in an error in state: 62. ## @@ -3859,7 +3876,7 @@ contract: Type Ident EQ LBRACE WILD ## ## Ends in an error in state: 45. ## -## record_type -> LBRACE . sep_or_term_list(field_decl,COMMA) RBRACE [ SEMI RPAR RBRACE EQ COMMA ] +## record_type -> LBRACE . sep_or_term_list(field_decl,COMMA) RBRACE [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## LBRACE @@ -3871,7 +3888,7 @@ contract: Type Ident EQ LPAR Constr WILD ## ## Ends in an error in state: 11. ## -## core_type -> Constr . DOT Ident [ SEMI RPAR EQ COMMA ] +## core_type -> Constr . DOT Ident [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Constr @@ -3895,7 +3912,7 @@ contract: Type Ident EQ LPAR Ident COMMA Ident RPAR WILD ## ## Ends in an error in state: 33. ## -## cartesian -> LPAR cartesian COMMA nsepseq(cartesian,COMMA) RPAR . option(type_expr_func) [ SEMI RPAR EQ COMMA ] +## cartesian -> LPAR cartesian COMMA nsepseq(cartesian,COMMA) RPAR . option(type_expr_func) [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## LPAR cartesian COMMA nsepseq(cartesian,COMMA) RPAR @@ -3903,7 +3920,7 @@ contract: Type Ident EQ LPAR Ident COMMA Ident RPAR WILD -contract: Type Ident EQ LPAR Ident COMMA Ident SEMI +contract: Type Ident EQ LPAR Ident COMMA Ident Type ## ## Ends in an error in state: 36. ## @@ -3927,7 +3944,7 @@ contract: Type Ident EQ LPAR Ident COMMA WILD ## ## Ends in an error in state: 31. ## -## cartesian -> LPAR cartesian COMMA . nsepseq(cartesian,COMMA) RPAR option(type_expr_func) [ SEMI RPAR EQ COMMA ] +## cartesian -> LPAR cartesian COMMA . nsepseq(cartesian,COMMA) RPAR option(type_expr_func) [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## LPAR cartesian COMMA @@ -3939,8 +3956,8 @@ contract: Type Ident EQ LPAR Ident RPAR WILD ## ## Ends in an error in state: 29. ## -## cartesian -> LPAR cartesian RPAR . type_expr_func [ SEMI RPAR EQ COMMA ] -## par(cartesian) -> LPAR cartesian RPAR . [ SEMI RPAR EQ COMMA ] +## cartesian -> LPAR cartesian RPAR . type_expr_func [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## par(cartesian) -> LPAR cartesian RPAR . [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## LPAR cartesian RPAR @@ -3948,13 +3965,13 @@ contract: Type Ident EQ LPAR Ident RPAR WILD -contract: Type Ident EQ LPAR Ident SEMI +contract: Type Ident EQ LPAR Ident Type ## ## Ends in an error in state: 28. ## -## cartesian -> LPAR cartesian . RPAR type_expr_func [ SEMI RPAR EQ COMMA ] -## cartesian -> LPAR cartesian . COMMA nsepseq(cartesian,COMMA) RPAR option(type_expr_func) [ SEMI RPAR EQ COMMA ] -## par(cartesian) -> LPAR cartesian . RPAR [ SEMI RPAR EQ COMMA ] +## cartesian -> LPAR cartesian . RPAR type_expr_func [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## cartesian -> LPAR cartesian . COMMA nsepseq(cartesian,COMMA) RPAR option(type_expr_func) [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## par(cartesian) -> LPAR cartesian . RPAR [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## LPAR cartesian @@ -3973,9 +3990,9 @@ contract: Type Ident EQ LPAR WILD ## ## Ends in an error in state: 7. ## -## cartesian -> LPAR . cartesian RPAR type_expr_func [ SEMI RPAR EQ COMMA ] -## cartesian -> LPAR . cartesian COMMA nsepseq(cartesian,COMMA) RPAR option(type_expr_func) [ SEMI RPAR EQ COMMA ] -## par(cartesian) -> LPAR . cartesian RPAR [ SEMI RPAR EQ COMMA ] +## cartesian -> LPAR . cartesian RPAR type_expr_func [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## cartesian -> LPAR . cartesian COMMA nsepseq(cartesian,COMMA) RPAR option(type_expr_func) [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## par(cartesian) -> LPAR . cartesian RPAR [ Type SEMI RPAR Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## LPAR @@ -3987,8 +4004,8 @@ contract: Type Ident EQ VBAR Constr WILD ## ## Ends in an error in state: 5. ## -## variant -> Constr . [ VBAR SEMI RPAR RBRACE EQ COMMA ] -## variant -> Constr . LPAR cartesian RPAR [ VBAR SEMI RPAR RBRACE EQ COMMA ] +## variant -> Constr . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## variant -> Constr . LPAR cartesian RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## Constr @@ -4000,7 +4017,7 @@ contract: Type Ident EQ VBAR WILD ## ## Ends in an error in state: 4. ## -## sum_type -> VBAR . nsepseq(variant,VBAR) [ SEMI RPAR RBRACE EQ COMMA ] +## sum_type -> VBAR . nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] ## ## The known suffix of the stack is as follows: ## VBAR @@ -4012,7 +4029,7 @@ contract: Type Ident EQ WILD ## ## Ends in an error in state: 3. ## -## type_decl -> Type Ident EQ . type_expr [ SEMI ] +## type_decl -> Type Ident EQ . type_expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## Type Ident EQ @@ -4024,7 +4041,7 @@ contract: Type Ident WILD ## ## Ends in an error in state: 2. ## -## type_decl -> Type Ident . EQ type_expr [ SEMI ] +## type_decl -> Type Ident . EQ type_expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## Type Ident @@ -4036,7 +4053,7 @@ contract: Type WILD ## ## Ends in an error in state: 1. ## -## type_decl -> Type . Ident EQ type_expr [ SEMI ] +## type_decl -> Type . Ident EQ type_expr [ Type SEMI Let EOF Attr ] ## ## The known suffix of the stack is as follows: ## Type diff --git a/src/test/contracts/no_semicolon.religo b/src/test/contracts/no_semicolon.religo new file mode 100644 index 000000000..633053d61 --- /dev/null +++ b/src/test/contracts/no_semicolon.religo @@ -0,0 +1,13 @@ +type f = int + +let a = (b: f) => { + if (b == 2) { + 3 + } else { + 4 + } +} + +let c = (c: f) => { + 3 +} \ No newline at end of file diff --git a/src/test/integration_tests.ml b/src/test/integration_tests.ml index 720f03b0f..97e09d2c2 100644 --- a/src/test/integration_tests.ml +++ b/src/test/integration_tests.ml @@ -2178,6 +2178,15 @@ let tuple_type_religo () : unit result = in ok () +let no_semicolon_religo () : unit result = + let%bind program = retype_file "./contracts/no_semicolon.religo" in + let%bind () = + let input _ = e_int 2 in + let expected _ = e_int 3 in + expect_eq_n program "a" input expected + in + ok () + let main = test_suite "Integration (End to End)" [ test "bytes unpack" bytes_unpack ; test "bytes unpack (mligo)" bytes_unpack_mligo ; @@ -2342,4 +2351,5 @@ let main = test_suite "Integration (End to End)" [ test "empty case (religo)" empty_case_religo ; test "tuple type (mligo)" tuple_type_mligo ; test "tuple type (religo)" tuple_type_religo ; + test "no semicolon (religo)" no_semicolon_religo ; ] From 4195026d73d20539feaf19b8054abacec68f579f Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Wulfman Date: Tue, 28 Jan 2020 13:44:33 +0100 Subject: [PATCH 2/3] add get_contract_opt and get_entrypoint_opt to ligo --- src/passes/8-compiler/compiler_program.ml | 20 ++++++++++++ src/passes/operators/operators.ml | 37 +++++++++++++++++++++++ src/stages/common/PP.ml | 2 ++ src/stages/common/types.ml | 2 ++ src/test/contracts/entrypoints.ligo | 11 +++++++ 5 files changed, 72 insertions(+) diff --git a/src/passes/8-compiler/compiler_program.ml b/src/passes/8-compiler/compiler_program.ml index c1f7cc5b6..e4e91f921 100644 --- a/src/passes/8-compiler/compiler_program.ml +++ b/src/passes/8-compiler/compiler_program.ml @@ -80,6 +80,12 @@ let get_operator : constant -> type_value -> expression list -> predicate result prim ~children:[r_ty] I_CONTRACT ; i_assert_some_msg (i_push_string "bad address for get_contract") ; ] + | C_CONTRACT_OPT -> + let%bind tc = get_t_option ty in + let%bind r = get_t_contract tc in + let%bind r_ty = Compiler_type.type_ r in + ok @@ simple_unary @@ prim ~children:[r_ty] I_CONTRACT ; + | C_CONTRACT_ENTRYPOINT -> let%bind r = get_t_contract ty in let%bind r_ty = Compiler_type.type_ r in @@ -94,6 +100,20 @@ let get_operator : constant -> type_value -> expression list -> predicate result prim ~annot:[entry] ~children:[r_ty] I_CONTRACT ; i_assert_some_msg (i_push_string @@ Format.sprintf "bad address for get_entrypoint (%s)" entry) ; ] + | C_CONTRACT_ENTRYPOINT_OPT -> + let%bind tc = get_t_option ty in + let%bind r = get_t_contract tc in + let%bind r_ty = Compiler_type.type_ r in + let%bind entry = match lst with + | [ { content = E_literal (D_string entry); type_value = _ } ; _addr ] -> ok entry + | [ _entry ; _addr ] -> + fail @@ contract_entrypoint_must_be_literal ~loc:__LOC__ + | _ -> + fail @@ corner_case ~loc:__LOC__ "mini_c . CONTRACT_ENTRYPOINT" in + ok @@ simple_binary @@ seq [ + i_drop ; (* drop the entrypoint... *) + prim ~annot:[entry] ~children:[r_ty] I_CONTRACT ; + ] | x -> simple_fail (Format.asprintf "predicate \"%a\" doesn't exist" Stage_common.PP.constant x) ) diff --git a/src/passes/operators/operators.ml b/src/passes/operators/operators.ml index 3c2c91910..49f693030 100644 --- a/src/passes/operators/operators.ml +++ b/src/passes/operators/operators.ml @@ -70,7 +70,9 @@ module Simplify = struct | "get_chain_id" -> ok C_CHAIN_ID | "transaction" -> ok C_CALL | "get_contract" -> ok C_CONTRACT + | "get_contract_opt"-> ok C_CONTRACT_OPT | "get_entrypoint" -> ok C_CONTRACT_ENTRYPOINT + | "get_entrypoint_opt" -> ok C_CONTRACT_ENTRYPOINT_OPT | "size" -> ok C_SIZE | "int" -> ok C_INT | "abs" -> ok C_ABS @@ -228,7 +230,9 @@ module Simplify = struct | "Operation.transaction" -> ok C_CALL | "Operation.set_delegate" -> ok C_SET_DELEGATE | "Operation.get_contract" -> ok C_CONTRACT + | "Operation.get_contract_opt" -> ok C_CONTRACT_OPT | "Operation.get_entrypoint" -> ok C_CONTRACT_ENTRYPOINT + | "Operation.get_entrypoint_opt" -> ok C_CONTRACT_ENTRYPOINT_OPT | "int" -> ok C_INT | "abs" -> ok C_ABS | "unit" -> ok C_UNIT @@ -657,6 +661,20 @@ module Typer = struct get_t_contract tv in ok @@ t_contract tv' () + let get_contract_opt = typer_1_opt "CONTRACT OPT" @@ fun addr_tv tv_opt -> + if not (type_value_eq (addr_tv, t_address ())) + then fail @@ simple_error (Format.asprintf "get_contract_opt expects an address, got %a" PP.type_value addr_tv) + else + let%bind tv = + trace_option (simple_error "get_contract_opt needs a type annotation") tv_opt in + let%bind tv = + trace_strong (simple_error "get_entrypoint_opt has a not-option annotation") @@ + get_t_option tv in + let%bind tv' = + trace_strong (simple_error "get_entrypoint_opt has a not-option(contract) annotation") @@ + get_t_contract tv in + ok @@ t_option (t_contract tv' ()) () + let get_entrypoint = typer_2_opt "CONTRACT_ENTRYPOINT" @@ fun entry_tv addr_tv tv_opt -> if not (type_value_eq (entry_tv, t_string ())) then fail @@ simple_error (Format.asprintf "get_entrypoint expects a string entrypoint label for first argument, got %a" PP.type_value entry_tv) @@ -671,6 +689,23 @@ module Typer = struct get_t_contract tv in ok @@ t_contract tv' () + let get_entrypoint_opt = typer_2_opt "CONTRACT_ENTRYPOINT_OPT" @@ fun entry_tv addr_tv tv_opt -> + if not (type_value_eq (entry_tv, t_string ())) + then fail @@ simple_error (Format.asprintf "get_entrypoint_opt expects a string entrypoint label for first argument, got %a" PP.type_value entry_tv) + else + if not (type_value_eq (addr_tv, t_address ())) + then fail @@ simple_error (Format.asprintf "get_entrypoint_opt expects an address for second argument, got %a" PP.type_value addr_tv) + else + let%bind tv = + trace_option (simple_error "get_entrypoint_opt needs a type annotation") tv_opt in + let%bind tv = + trace_strong (simple_error "get_entrypoint_opt has a not-option annotation") @@ + get_t_option tv in + let%bind tv' = + trace_strong (simple_error "get_entrypoint_opt has a not-option(contract) annotation") @@ + get_t_contract tv in + ok @@ t_option (t_contract tv' ())() + let set_delegate = typer_1 "SET_DELEGATE" @@ fun delegate_opt -> let%bind () = assert_eq_1 delegate_opt (t_option (t_key_hash ()) ()) in ok @@ t_operation () @@ -1020,7 +1055,9 @@ module Typer = struct | C_CHAIN_ID -> ok @@ chain_id ; (*BLOCKCHAIN *) | C_CONTRACT -> ok @@ get_contract ; + | C_CONTRACT_OPT -> ok @@ get_contract_opt ; | C_CONTRACT_ENTRYPOINT -> ok @@ get_entrypoint ; + | C_CONTRACT_ENTRYPOINT_OPT -> ok @@ get_entrypoint_opt ; | C_AMOUNT -> ok @@ amount ; | C_BALANCE -> ok @@ balance ; | C_CALL -> ok @@ transaction ; diff --git a/src/stages/common/PP.ml b/src/stages/common/PP.ml index deebe08ee..773b5eaab 100644 --- a/src/stages/common/PP.ml +++ b/src/stages/common/PP.ml @@ -108,7 +108,9 @@ let constant ppf : constant -> unit = function (* Blockchain *) | C_CALL -> fprintf ppf "CALL" | C_CONTRACT -> fprintf ppf "CONTRACT" + | C_CONTRACT_OPT -> fprintf ppf "CONTRACT_OPT" | C_CONTRACT_ENTRYPOINT -> fprintf ppf "CONTRACT_ENTRYPOINT" + | C_CONTRACT_ENTRYPOINT_OPT -> fprintf ppf "CONTRACT_ENTRYPOINT_OPT" | C_AMOUNT -> fprintf ppf "AMOUNT" | C_BALANCE -> fprintf ppf "BALANCE" | C_SOURCE -> fprintf ppf "SOURCE" diff --git a/src/stages/common/types.ml b/src/stages/common/types.ml index 70c3bc80a..a0c6f9cb6 100644 --- a/src/stages/common/types.ml +++ b/src/stages/common/types.ml @@ -225,7 +225,9 @@ type constant = (* Blockchain *) | C_CALL | C_CONTRACT + | C_CONTRACT_OPT | C_CONTRACT_ENTRYPOINT + | C_CONTRACT_ENTRYPOINT_OPT | C_AMOUNT | C_BALANCE | C_SOURCE diff --git a/src/test/contracts/entrypoints.ligo b/src/test/contracts/entrypoints.ligo index 1d49a468c..d884a1ec9 100644 --- a/src/test/contracts/entrypoints.ligo +++ b/src/test/contracts/entrypoints.ligo @@ -3,3 +3,14 @@ function cb(const a : address; const s : unit) : list(operation) * unit is const c : contract(unit) = get_entrypoint("%cb", a) } with (list transaction(unit, 0mutez, c) end, s) + + +function cbo(const a : address; const s : unit) : list(operation) * unit is + block { + const c : contract(unit) = + case (get_entrypoint_opt("%cbo", a) : option(contract (unit))) of + | Some (c) -> c + | None -> (failwith ("entrypoint not found") : contract (unit)) + end + } + with (list transaction(unit, 0mutez, c) end, s) From 7c4871babc4a22fb252dfe59eb902191cb5c3673 Mon Sep 17 00:00:00 2001 From: Pierre-Emmanuel Wulfman Date: Wed, 29 Jan 2020 14:09:02 +0100 Subject: [PATCH 3/3] add test --- src/test/contracts/get_contract.ligo | 16 ++++++++++++++++ src/test/integration_tests.ml | 21 +++++++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/test/contracts/get_contract.ligo diff --git a/src/test/contracts/get_contract.ligo b/src/test/contracts/get_contract.ligo new file mode 100644 index 000000000..12d58aba6 --- /dev/null +++ b/src/test/contracts/get_contract.ligo @@ -0,0 +1,16 @@ +function cb(const s : unit) : list(operation) * unit is + block { + const c : contract(unit) = get_contract(source) + } + with (list transaction(unit, 0mutez, c) end, s) + + +function cbo(const s : unit) : list(operation) * unit is + block { + const c : contract(unit) = + case (get_contract_opt(source) : option(contract (unit))) of + | Some (c) -> c + | None -> (failwith ("contract not found") : contract (unit)) + end + } + with (list transaction(unit, 0mutez, c) end, s) diff --git a/src/test/integration_tests.ml b/src/test/integration_tests.ml index 720f03b0f..4d848e698 100644 --- a/src/test/integration_tests.ml +++ b/src/test/integration_tests.ml @@ -1916,6 +1916,26 @@ let attributes_religo () : unit result = in ok () +let get_contract_ligo () : unit result = + let%bind program = type_file "./contracts/get_contract.ligo" in + let%bind () = + let make_input = fun _n -> e_unit () in + let make_expected : int -> Ast_simplified.expression -> unit result = fun _n result -> + let%bind (ops , storage) = get_e_pair result.expression in + let%bind () = + let%bind lst = get_e_list ops.expression in + Assert.assert_list_size lst 1 in + let expected_storage = e_unit () in + Ast_simplified.Misc.assert_value_eq (expected_storage , storage) + in + let%bind () = + let amount = Memory_proto_alpha.Protocol.Alpha_context.Tez.zero in + let options = Proto_alpha_utils.Memory_proto_alpha.make_options ~amount () in + let%bind () = expect_n_strict_pos_small ~options program "cb" make_input make_expected in + expect_n_strict_pos_small ~options program "cbo" make_input make_expected in + ok () + in + ok() let entrypoints_ligo () : unit result = let%bind _program = type_file "./contracts/entrypoints.ligo" in @@ -2328,6 +2348,7 @@ let main = test_suite "Integration (End to End)" [ test "tuples_sequences_functions (religo)" tuples_sequences_functions_religo ; test "simple_access (ligo)" simple_access_ligo; test "deep_access (ligo)" deep_access_ligo; + test "get_contract (ligo)" get_contract_ligo; test "entrypoints (ligo)" entrypoints_ligo ; test "curry (mligo)" curry ; test "type tuple destruct (mligo)" type_tuple_destruct ;