From bf985797fb642fb424f8c6393d84f07048c50373 Mon Sep 17 00:00:00 2001 From: Sander Spies Date: Mon, 3 Feb 2020 10:53:44 +0100 Subject: [PATCH 1/4] - Don't allow to chain let bindings like: `let a = let b = 2`. - Give a proper warning when creating an incorrect let binding. --- src/bin/expect_tests/error_messages_tests.ml | 22 + src/passes/1-parser/reasonligo/Parser.mly | 15 +- .../reasonligo/error.messages.checked-in | 1760 +++++++---------- 3 files changed, 764 insertions(+), 1033 deletions(-) create mode 100644 src/bin/expect_tests/error_messages_tests.ml diff --git a/src/bin/expect_tests/error_messages_tests.ml b/src/bin/expect_tests/error_messages_tests.ml new file mode 100644 index 000000000..4423cc919 --- /dev/null +++ b/src/bin/expect_tests/error_messages_tests.ml @@ -0,0 +1,22 @@ +open Cli_expect + +let%expect_test _ = + run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/gitlab_111.religo" ; "main" ] ; + [%expect {| + ligo: : Parse error in file "gitlab_111.religo", line 28, characters 0-3, after "=" and before "let": + This is an incorrect let binding. + - + Examples of correct let bindings: + let a: int = 4; + let (a: int, b: int) = (1, 2); + let func = (a: int, b: int) => a + b; + {} + + If you're not sure how to fix this error, you can + do one of the following: + + * Visit our documentation: https://ligolang.org/docs/intro/what-and-why/ + * Ask a question on our Discord: https://discord.gg/9rhYaEt + * Open a gitlab issue: https://gitlab.com/ligolang/ligo/issues/new + * Check the changelog by running 'ligo changelog' |} ] ; + diff --git a/src/passes/1-parser/reasonligo/Parser.mly b/src/passes/1-parser/reasonligo/Parser.mly index 8c7fb65a6..6c88b5957 100644 --- a/src/passes/1-parser/reasonligo/Parser.mly +++ b/src/passes/1-parser/reasonligo/Parser.mly @@ -418,13 +418,13 @@ unit: (* Expressions *) interactive_expr: - expr EOF { $1 } + expr_with_let_expr EOF { $1 } expr: base_cond__open(expr) | switch_expr(base_cond) { $1 } base_cond__open(x): - base_expr(x) | conditional(x) { $1 } + base_expr(x) | conditional(expr_with_let_expr) { $1 } base_cond: base_cond__open(base_cond) { $1 } @@ -567,7 +567,7 @@ fun_expr: in EFun {region; value=f} } base_expr(right_expr): - let_expr(right_expr) | disj_expr_level | fun_expr { $1 } + disj_expr_level | fun_expr { $1 } conditional(right_expr): if_then_else(right_expr) | if_then(right_expr) { $1 } @@ -609,6 +609,7 @@ base_if_then_else: closed_if: base_if_then_else__open(closed_if) | switch_expr(base_if_then_else) { $1 } +| let_expr(expr_with_let_expr) { $1 } switch_expr(right_expr): "switch" switch_expr_ "{" cases(right_expr) "}" { @@ -896,8 +897,12 @@ update_record: rbrace = $6} in {region; value} } +expr_with_let_expr: + expr { $1 } +| let_expr(expr_with_let_expr) { $1 } + sequence_or_record_in: - expr ";" sep_or_term_list(expr,";") { + expr_with_let_expr ";" sep_or_term_list(expr_with_let_expr,";") { let elts, _region = $3 in let s_elts = Utils.nsepseq_cons $1 $2 elts in PaSequence {s_elts; s_terminator=None} @@ -907,7 +912,7 @@ sequence_or_record_in: let r_elts = Utils.nsepseq_cons $1 $2 elts in PaRecord {r_elts; r_terminator = None} } -| expr ";"? { PaSingleExpr $1 } +| expr_with_let_expr ";"? { PaSingleExpr $1 } sequence_or_record: "{" sequence_or_record_in "}" { diff --git a/src/passes/1-parser/reasonligo/error.messages.checked-in b/src/passes/1-parser/reasonligo/error.messages.checked-in index 62600f5f8..fdf3a744d 100644 --- a/src/passes/1-parser/reasonligo/error.messages.checked-in +++ b/src/passes/1-parser/reasonligo/error.messages.checked-in @@ -1,6 +1,6 @@ interactive_expr: C_None WILD ## -## Ends in an error in state: 252. +## Ends in an error in state: 167. ## ## 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 ] ## @@ -143,7 +143,7 @@ interactive_expr: Ident WILD interactive_expr: If LBRACE True VBAR ## -## Ends in an error in state: 329. +## Ends in an error in state: 223. ## ## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: If LBRACE WILD ## -## Ends in an error in state: 328. +## Ends in an error in state: 222. ## ## parenthesized_expr -> LBRACE . expr RBRACE [ LBRACE ] ## @@ -185,7 +185,7 @@ interactive_expr: If LBRACE WILD interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE ## -## Ends in an error in state: 405. +## Ends in an error in state: 399. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if . SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] ## @@ -196,26 +196,26 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 401, spurious reduction of production base_expr(closed_if) -> disj_expr_level -## In state 404, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 403, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 398, spurious reduction of production base_expr(closed_if) -> disj_expr_level +## In state 408, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 407, 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 ## -## Ends in an error in state: 410. +## 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 ] ## @@ -226,26 +226,26 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI R ## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 401, spurious reduction of production base_expr(closed_if) -> disj_expr_level -## In state 404, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 403, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 398, spurious reduction of production base_expr(closed_if) -> disj_expr_level +## In state 408, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 407, 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 ## -## Ends in an error in state: 411. +## 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 ] ## @@ -257,7 +257,7 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI R interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE WILD ## -## Ends in an error in state: 409. +## 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 ] ## @@ -269,7 +269,7 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI R interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else WILD ## -## Ends in an error in state: 408. +## 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 ] ## @@ -281,7 +281,7 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI R interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI RBRACE WILD ## -## Ends in an error in state: 407. +## Ends in an error in state: 401. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE . Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] ## @@ -293,7 +293,7 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI R interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI WILD ## -## Ends in an error in state: 406. +## Ends in an error in state: 400. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if SEMI . RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] ## @@ -305,7 +305,7 @@ interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI W interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD ## -## Ends in an error in state: 392. +## Ends in an error in state: 345. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE . closed_if SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] ## @@ -317,7 +317,7 @@ 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: 391. +## Ends in an error in state: 344. ## ## if_then_else(closed_if) -> If parenthesized_expr . LBRACE closed_if SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] ## @@ -329,7 +329,7 @@ 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: 390. +## Ends in an error in state: 343. ## ## if_then_else(closed_if) -> If . parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE closed_if SEMI RBRACE [ SEMI RBRACE ] ## @@ -339,64 +339,9 @@ interactive_expr: If LPAR True RPAR LBRACE If WILD -interactive_expr: If LPAR True RPAR LBRACE Let VBAR -## -## Ends in an error in state: 395. -## -## let_expr(closed_if) -> seq(Attr) Let . let_binding SEMI closed_if [ SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let -## - - - -interactive_expr: If LPAR True RPAR LBRACE Let WILD EQ Bytes SEMI WILD -## -## Ends in an error in state: 397. -## -## let_expr(closed_if) -> seq(Attr) Let let_binding SEMI . closed_if [ SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let let_binding SEMI -## - - - -interactive_expr: If LPAR True RPAR LBRACE Let WILD EQ Bytes VBAR -## -## Ends in an error in state: 396. -## -## let_expr(closed_if) -> seq(Attr) Let let_binding . SEMI closed_if [ SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let let_binding -## -## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level -## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 546, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr -## - - - interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR VBAR ## -## Ends in an error in state: 376. +## Ends in an error in state: 270. ## ## case_clause(base_if_then_else) -> VBAR . pattern ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -408,7 +353,7 @@ interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR VBAR interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW Bytes SEMI WILD ## -## Ends in an error in state: 439. +## Ends in an error in state: 429. ## ## nseq(case_clause(base_if_then_else)) -> case_clause(base_if_then_else) . seq(case_clause(base_if_then_else)) [ RBRACE ] ## @@ -420,7 +365,7 @@ 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 Bytes VBAR Bytes ARROW Bytes SEMI WILD ## -## Ends in an error in state: 441. +## Ends in an error in state: 431. ## ## seq(case_clause(base_if_then_else)) -> case_clause(base_if_then_else) . seq(case_clause(base_if_then_else)) [ RBRACE ] ## @@ -432,7 +377,7 @@ 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 ## -## Ends in an error in state: 413. +## Ends in an error in state: 409. ## ## 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 ] ## @@ -443,26 +388,26 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 401, spurious reduction of production base_expr(closed_if) -> disj_expr_level -## In state 404, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 403, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 398, spurious reduction of production base_expr(closed_if) -> disj_expr_level +## In state 408, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 407, 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 ## -## Ends in an error in state: 430. +## Ends in an error in state: 419. ## ## 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 ] ## @@ -474,7 +419,7 @@ 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 LBRACE True SEMI RBRACE Else LBRACE True VBAR ## -## Ends in an error in state: 429. +## Ends in an error in state: 418. ## ## 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 ] ## @@ -485,26 +430,26 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 425, spurious reduction of production base_expr(base_if_then_else) -> disj_expr_level -## In state 428, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) -## In state 426, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 416, spurious reduction of production base_expr(base_if_then_else) -> disj_expr_level +## In state 421, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) +## In state 417, 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 ## -## Ends in an error in state: 417. +## 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 ] ## @@ -516,7 +461,7 @@ 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 LBRACE True SEMI RBRACE Else WILD ## -## Ends in an error in state: 416. +## 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 ] ## @@ -528,7 +473,7 @@ 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 LBRACE True SEMI RBRACE WILD ## -## Ends in an error in state: 415. +## Ends in an error in state: 411. ## ## 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 ] ## @@ -540,7 +485,7 @@ 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 LBRACE True SEMI WILD ## -## Ends in an error in state: 414. +## Ends in an error in state: 410. ## ## 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 ] ## @@ -552,7 +497,7 @@ 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 LBRACE WILD ## -## Ends in an error in state: 389. +## Ends in an error in state: 342. ## ## 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 ] ## @@ -564,7 +509,7 @@ 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: 388. +## Ends in an error in state: 341. ## ## 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 ] ## @@ -576,7 +521,7 @@ 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: 387. +## Ends in an error in state: 340. ## ## 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 ] ## @@ -586,64 +531,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 Let VBAR -## -## Ends in an error in state: 419. -## -## let_expr(base_if_then_else) -> seq(Attr) Let . let_binding SEMI base_if_then_else [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let -## - - - -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW Let WILD EQ Bytes SEMI WILD -## -## Ends in an error in state: 421. -## -## let_expr(base_if_then_else) -> seq(Attr) Let let_binding SEMI . base_if_then_else [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let let_binding SEMI -## - - - -interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW Let WILD EQ Bytes VBAR -## -## Ends in an error in state: 420. -## -## let_expr(base_if_then_else) -> seq(Attr) Let let_binding . SEMI base_if_then_else [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let let_binding -## -## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level -## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 546, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr -## - - - interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW True ARROW Bytes RPAR ## -## Ends in an error in state: 432. +## Ends in an error in state: 422. ## ## case_clause(base_if_then_else) -> VBAR pattern ARROW base_if_then_else . option(SEMI) [ VBAR RBRACE ] ## @@ -654,31 +544,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 295, spurious reduction of production es6_func -> ARROW expr -## In state 303, spurious reduction of production fun_expr -> disj_expr_level es6_func -## In state 424, spurious reduction of production base_expr(base_if_then_else) -> fun_expr -## In state 428, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) -## In state 426, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 210, spurious reduction of production es6_func -> ARROW expr +## In state 218, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 415, spurious reduction of production base_expr(base_if_then_else) -> fun_expr +## In state 421, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) +## In state 417, 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 ## -## Ends in an error in state: 425. +## Ends in an error in state: 416. ## ## 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 ] @@ -692,23 +582,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, 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: 386. +## Ends in an error in state: 339. ## ## case_clause(base_if_then_else) -> VBAR pattern ARROW . base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -720,7 +610,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: 385. +## Ends in an error in state: 338. ## ## case_clause(base_if_then_else) -> VBAR pattern . ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -731,16 +621,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 169, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 172, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 383, spurious reduction of production pattern -> tuple(sub_pattern) +## In state 324, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 327, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 336, 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: 375. +## Ends in an error in state: 269. ## ## switch_expr(base_if_then_else) -> Switch switch_expr_ LBRACE . cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -752,7 +642,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: 374. +## Ends in an error in state: 268. ## ## switch_expr(base_if_then_else) -> Switch switch_expr_ . LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -764,7 +654,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: 333. +## Ends in an error in state: 227. ## ## switch_expr(base_if_then_else) -> Switch . switch_expr_ LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -776,10 +666,10 @@ interactive_expr: If LPAR True RPAR LBRACE Switch WILD interactive_expr: If LPAR True RPAR LBRACE True ARROW Bytes VBAR ## -## Ends in an error in state: 447. +## Ends in an error in state: 437. ## -## if_then(expr) -> If parenthesized_expr LBRACE closed_if . RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr) -> If parenthesized_expr LBRACE closed_if . SEMI RBRACE Else LBRACE expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## 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 ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if @@ -788,75 +678,76 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 295, spurious reduction of production es6_func -> ARROW expr -## In state 303, 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 404, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 403, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 210, spurious reduction of production es6_func -> ARROW expr +## In state 218, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 397, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 408, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 407, 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 ## -## Ends in an error in state: 453. +## Ends in an error in state: 443. ## -## if_then_else(expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr SEMI . 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 ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr SEMI +## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr_with_let_expr SEMI ## interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else LBRACE True VBAR ## -## Ends in an error in state: 452. +## Ends in an error in state: 442. ## -## if_then_else(expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr . SEMI 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 ] ## ## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr +## If parenthesized_expr LBRACE closed_if 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 394, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else LBRACE WILD ## -## Ends in an error in state: 451. +## Ends in an error in state: 441. ## -## if_then_else(expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE . expr SEMI 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 ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE @@ -866,9 +757,9 @@ interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else LBRACE WILD interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else WILD ## -## Ends in an error in state: 450. +## Ends in an error in state: 440. ## -## if_then_else(expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else . LBRACE expr SEMI 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 ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else @@ -878,9 +769,9 @@ interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE Else WILD interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE WILD ## -## Ends in an error in state: 449. +## Ends in an error in state: 439. ## -## if_then_else(expr) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE . Else LBRACE expr SEMI 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 ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if SEMI RBRACE @@ -890,9 +781,9 @@ interactive_expr: If LPAR True RPAR LBRACE True SEMI RBRACE WILD interactive_expr: If LPAR True RPAR LBRACE True SEMI WILD ## -## Ends in an error in state: 448. +## Ends in an error in state: 438. ## -## if_then_else(expr) -> If parenthesized_expr LBRACE closed_if SEMI . RBRACE Else LBRACE expr SEMI 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 ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE closed_if SEMI @@ -902,7 +793,7 @@ interactive_expr: If LPAR True RPAR LBRACE True SEMI WILD interactive_expr: If LPAR True RPAR LBRACE True VBAR ## -## Ends in an error in state: 401. +## Ends in an error in state: 398. ## ## 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 ] @@ -916,26 +807,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: If LPAR True RPAR LBRACE WILD ## -## Ends in an error in state: 332. +## Ends in an error in state: 226. ## -## if_then(expr) -> If parenthesized_expr LBRACE . closed_if RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr) -> If parenthesized_expr LBRACE . closed_if SEMI RBRACE Else LBRACE expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## 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 ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr LBRACE @@ -945,10 +836,10 @@ interactive_expr: If LPAR True RPAR LBRACE WILD interactive_expr: If LPAR True RPAR WILD ## -## Ends in an error in state: 331. +## Ends in an error in state: 225. ## -## if_then(expr) -> If parenthesized_expr . LBRACE closed_if RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr) -> If parenthesized_expr . LBRACE closed_if SEMI RBRACE Else LBRACE expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## 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 ] ## ## The known suffix of the stack is as follows: ## If parenthesized_expr @@ -958,7 +849,7 @@ interactive_expr: If LPAR True RPAR WILD interactive_expr: If LPAR True VBAR ## -## Ends in an error in state: 326. +## Ends in an error in state: 220. ## ## parenthesized_expr -> LPAR expr . RPAR [ LBRACE ] ## @@ -969,19 +860,19 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## @@ -1002,8 +893,8 @@ interactive_expr: If WILD ## ## Ends in an error in state: 92. ## -## if_then(expr) -> If . parenthesized_expr LBRACE closed_if RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] -## if_then_else(expr) -> If . parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE expr SEMI RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## 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 ] ## ## The known suffix of the stack is as follows: ## If @@ -1013,7 +904,7 @@ interactive_expr: If WILD interactive_expr: LBRACE ELLIPSIS Constr DOT Ident WILD ## -## Ends in an error in state: 352. +## Ends in an error in state: 246. ## ## projection -> Constr DOT Ident . selection [ COMMA ] ## @@ -1025,7 +916,7 @@ interactive_expr: LBRACE ELLIPSIS Constr DOT Ident WILD interactive_expr: LBRACE ELLIPSIS Constr DOT WILD ## -## Ends in an error in state: 351. +## Ends in an error in state: 245. ## ## projection -> Constr DOT . Ident selection [ COMMA ] ## @@ -1037,7 +928,7 @@ interactive_expr: LBRACE ELLIPSIS Constr DOT WILD interactive_expr: LBRACE ELLIPSIS Constr WILD ## -## Ends in an error in state: 350. +## Ends in an error in state: 244. ## ## projection -> Constr . DOT Ident selection [ COMMA ] ## @@ -1049,7 +940,7 @@ interactive_expr: LBRACE ELLIPSIS Constr WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 367. +## Ends in an error in state: 261. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . COMMA nsepseq(field_path_assignment,COMMA) [ RBRACE ] @@ -1062,27 +953,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 366, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 260, 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: 365. +## Ends in an error in state: 259. ## ## field_path_assignment -> nsepseq(field_name,DOT) COLON . expr [ RBRACE COMMA ] ## @@ -1094,7 +985,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: 371. +## Ends in an error in state: 265. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . COMMA nsepseq(field_path_assignment,COMMA) [ RBRACE ] @@ -1107,27 +998,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 366, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 260, 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: 372. +## Ends in an error in state: 266. ## ## 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 ] @@ -1140,7 +1031,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: 368. +## Ends in an error in state: 262. ## ## 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 ] @@ -1153,7 +1044,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: 358. +## Ends in an error in state: 252. ## ## nsepseq(field_name,DOT) -> Ident . [ COLON ] ## nsepseq(field_name,DOT) -> Ident . DOT nsepseq(field_name,DOT) [ COLON ] @@ -1166,7 +1057,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: 357. +## Ends in an error in state: 251. ## ## nsepseq(field_name,DOT) -> Ident DOT . nsepseq(field_name,DOT) [ COLON ] ## @@ -1178,7 +1069,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident DOT WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident WILD ## -## Ends in an error in state: 356. +## Ends in an error in state: 250. ## ## field_path_assignment -> Ident . [ RBRACE COMMA ] ## nsepseq(field_name,DOT) -> Ident . [ COLON ] @@ -1192,7 +1083,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA WILD ## -## Ends in an error in state: 355. +## Ends in an error in state: 249. ## ## 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 ] ## @@ -1204,7 +1095,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA WILD interactive_expr: LBRACE ELLIPSIS Ident DOT Ident VBAR ## -## Ends in an error in state: 354. +## Ends in an error in state: 248. ## ## 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 ] ## @@ -1217,14 +1108,14 @@ interactive_expr: LBRACE ELLIPSIS Ident DOT Ident VBAR ## may provide an INCOMPLETE view of the future (what was expected next). ## In state 99, spurious reduction of production selection -> DOT Ident ## In state 102, spurious reduction of production projection -> Ident selection -## In state 353, spurious reduction of production path -> projection +## In state 247, spurious reduction of production path -> projection ## interactive_expr: LBRACE ELLIPSIS Ident WILD ## -## Ends in an error in state: 349. +## Ends in an error in state: 243. ## ## path -> Ident . [ COMMA ] ## projection -> Ident . selection [ COMMA ] @@ -1237,7 +1128,7 @@ interactive_expr: LBRACE ELLIPSIS Ident WILD interactive_expr: LBRACE ELLIPSIS WILD ## -## Ends in an error in state: 348. +## Ends in an error in state: 242. ## ## 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 ] ## @@ -1249,7 +1140,7 @@ interactive_expr: LBRACE ELLIPSIS WILD interactive_expr: LBRACE Ident COLON Bytes VBAR ## -## Ends in an error in state: 471. +## Ends in an error in state: 461. ## ## sequence_or_record_in -> field_assignment . COMMA sep_or_term_list(field_assignment,COMMA) [ RBRACE ] ## @@ -1260,27 +1151,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 468, spurious reduction of production field_assignment -> Ident COLON expr +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 458, spurious reduction of production field_assignment -> Ident COLON expr ## interactive_expr: LBRACE Ident COLON WILD ## -## Ends in an error in state: 467. +## Ends in an error in state: 457. ## ## field_assignment -> Ident COLON . expr [ RBRACE COMMA ] ## @@ -1292,7 +1183,7 @@ interactive_expr: LBRACE Ident COLON WILD interactive_expr: LBRACE Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 477. +## Ends in an error in state: 467. ## ## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,COMMA) -> field_assignment . COMMA nsepseq(field_assignment,COMMA) [ RBRACE ] @@ -1305,27 +1196,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 468, spurious reduction of production field_assignment -> Ident COLON expr +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 458, 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: 481. +## Ends in an error in state: 471. ## ## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,COMMA) -> field_assignment . COMMA nsepseq(field_assignment,COMMA) [ RBRACE ] @@ -1338,27 +1229,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 468, spurious reduction of production field_assignment -> Ident COLON expr +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 458, 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: 482. +## Ends in an error in state: 472. ## ## 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 ] @@ -1371,7 +1262,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: 478. +## Ends in an error in state: 468. ## ## 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 ] @@ -1384,7 +1275,7 @@ interactive_expr: LBRACE Ident COMMA Ident COMMA WILD interactive_expr: LBRACE Ident COMMA Ident WILD ## -## Ends in an error in state: 473. +## Ends in an error in state: 463. ## ## field_assignment -> Ident . [ RBRACE COMMA ] ## field_assignment -> Ident . COLON expr [ RBRACE COMMA ] @@ -1397,7 +1288,7 @@ interactive_expr: LBRACE Ident COMMA Ident WILD interactive_expr: LBRACE Ident COMMA WILD ## -## Ends in an error in state: 472. +## Ends in an error in state: 462. ## ## sequence_or_record_in -> field_assignment COMMA . sep_or_term_list(field_assignment,COMMA) [ RBRACE ] ## @@ -1409,7 +1300,7 @@ interactive_expr: LBRACE Ident COMMA WILD interactive_expr: LBRACE Ident WILD ## -## Ends in an error in state: 466. +## Ends in an error in state: 456. ## ## 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 ] @@ -1422,79 +1313,139 @@ interactive_expr: LBRACE Ident WILD -interactive_expr: LBRACE True SEMI Bytes RBRACKET +interactive_expr: LBRACE True SEMI True SEMI True SEMI WILD ## -## Ends in an error in state: 469. +## Ends in an error in state: 484. ## -## 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 ] +## 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 ] ## ## The known suffix of the stack is as follows: -## LBRACE sequence_or_record_in +## expr_with_let_expr SEMI +## + + + +interactive_expr: LBRACE True SEMI True SEMI True VBAR +## +## Ends in an error in state: 483. +## +## 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 ] +## seq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr . SEMI seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 340, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 339, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) -## In state 486, spurious reduction of production sequence_or_record_in -> expr SEMI sep_or_term_list(expr,SEMI) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 394, spurious reduction of production expr_with_let_expr -> expr +## + + + +interactive_expr: LBRACE True SEMI True SEMI WILD +## +## Ends in an error in state: 480. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## expr_with_let_expr SEMI +## + + + +interactive_expr: LBRACE True SEMI True VBAR +## +## Ends in an error in state: 479. +## +## 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 ] +## nseq(__anonymous_0(expr_with_let_expr,SEMI)) -> expr_with_let_expr . SEMI seq(__anonymous_0(expr_with_let_expr,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## 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 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level +## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 394, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: LBRACE True SEMI WILD ## -## Ends in an error in state: 485. +## Ends in an error in state: 475. ## ## option(SEMI) -> SEMI . [ RBRACE ] -## sequence_or_record_in -> expr SEMI . sep_or_term_list(expr,SEMI) [ RBRACE ] +## sequence_or_record_in -> expr_with_let_expr SEMI . sep_or_term_list(expr_with_let_expr,SEMI) [ RBRACE ] ## ## The known suffix of the stack is as follows: -## expr SEMI +## expr_with_let_expr SEMI ## interactive_expr: LBRACE True VBAR ## -## Ends in an error in state: 484. +## Ends in an error in state: 474. ## -## sequence_or_record_in -> expr . SEMI sep_or_term_list(expr,SEMI) [ RBRACE ] -## sequence_or_record_in -> expr . option(SEMI) [ RBRACE ] +## 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 ] ## ## The known suffix of the stack is as follows: -## expr +## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 394, spurious reduction of production expr_with_let_expr -> expr ## @@ -1514,7 +1465,7 @@ interactive_expr: LBRACE WILD interactive_expr: LBRACKET True COMMA ELLIPSIS True VBAR ## -## 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 ] ## @@ -1525,26 +1476,26 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET True COMMA ELLIPSIS WILD ## -## Ends in an error in state: 493. +## Ends in an error in state: 492. ## ## 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 ] ## @@ -1556,7 +1507,7 @@ interactive_expr: LBRACKET True COMMA ELLIPSIS WILD interactive_expr: LBRACKET True COMMA True COMMA True COMMA WILD ## -## Ends in an error in state: 504. +## Ends in an error in state: 503. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] ## seq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] @@ -1569,7 +1520,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: 503. +## Ends in an error in state: 502. ## ## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] @@ -1582,26 +1533,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET True COMMA True COMMA WILD ## -## Ends in an error in state: 501. +## Ends in an error in state: 500. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] ## nseq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] @@ -1614,7 +1565,7 @@ interactive_expr: LBRACKET True COMMA True COMMA WILD interactive_expr: LBRACKET True COMMA True VBAR ## -## Ends in an error in state: 500. +## Ends in an error in state: 499. ## ## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] @@ -1627,26 +1578,26 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET True COMMA WILD ## -## 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 ] @@ -1659,7 +1610,7 @@ interactive_expr: LBRACKET True COMMA WILD interactive_expr: LBRACKET True VBAR ## -## Ends in an error in state: 491. +## Ends in an error in state: 490. ## ## 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 ] @@ -1672,19 +1623,19 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## @@ -1705,7 +1656,7 @@ interactive_expr: LBRACKET WILD interactive_expr: LPAR True COMMA Bytes RPAR COLON Ident TIMES ## -## Ends in an error in state: 244. +## Ends in an error in state: 159. ## ## 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 ] @@ -1719,18 +1670,18 @@ 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 211, spurious reduction of production option(type_expr_simple_args) -> -## In state 220, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) -## In state 227, spurious reduction of production type_annotation_simple -> COLON type_expr_simple -## In state 228, spurious reduction of production option(type_annotation_simple) -> type_annotation_simple -## In state 229, spurious reduction of production disj_expr_level -> par(tuple(disj_expr_level)) option(type_annotation_simple) +## In state 127, spurious reduction of production option(type_expr_simple_args) -> +## In state 136, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 143, spurious reduction of production type_annotation_simple -> COLON type_expr_simple +## In state 144, spurious reduction of production option(type_annotation_simple) -> type_annotation_simple +## In state 145, 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: 208. +## Ends in an error in state: 124. ## ## disj_expr_level -> par(tuple(disj_expr_level)) . option(type_annotation_simple) [ VBAR SEMI RPAR RBRACKET RBRACE Or EOF COMMA BOOL_OR ARROW ] ## @@ -1742,7 +1693,7 @@ interactive_expr: LPAR True COMMA Bytes RPAR WILD interactive_expr: LPAR True COMMA True COMMA WILD ## -## Ends in an error in state: 464. +## Ends in an error in state: 454. ## ## nsepseq(disj_expr_level,COMMA) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] ## @@ -1754,7 +1705,7 @@ interactive_expr: LPAR True COMMA True COMMA WILD interactive_expr: LPAR True COMMA True VBAR ## -## Ends in an error in state: 463. +## Ends in an error in state: 453. ## ## 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 ] @@ -1768,23 +1719,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: LPAR True COMMA WILD ## -## Ends in an error in state: 461. +## Ends in an error in state: 451. ## ## tuple(disj_expr_level) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] ## @@ -1796,7 +1747,7 @@ interactive_expr: LPAR True COMMA WILD interactive_expr: LPAR True VBAR ## -## Ends in an error in state: 460. +## Ends in an error in state: 450. ## ## 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 ] @@ -1811,16 +1762,16 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level ## @@ -1841,9 +1792,9 @@ interactive_expr: LPAR WILD interactive_expr: Let VBAR ## -## Ends in an error in state: 125. +## Ends in an error in state: 348. ## -## let_expr(expr) -> seq(Attr) Let . let_binding SEMI expr [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## let_expr(expr_with_let_expr) -> seq(Attr) Let . let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## ## The known suffix of the stack is as follows: ## seq(Attr) Let @@ -1853,9 +1804,9 @@ interactive_expr: Let VBAR interactive_expr: Let WILD EQ Bytes SEMI WILD ## -## Ends in an error in state: 324. +## Ends in an error in state: 391. ## -## let_expr(expr) -> seq(Attr) Let let_binding SEMI . expr [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## let_expr(expr_with_let_expr) -> seq(Attr) Let let_binding SEMI . expr_with_let_expr [ SEMI RBRACE EOF ] ## ## The known suffix of the stack is as follows: ## seq(Attr) Let let_binding SEMI @@ -1865,9 +1816,9 @@ interactive_expr: Let WILD EQ Bytes SEMI WILD interactive_expr: Let WILD EQ Bytes VBAR ## -## Ends in an error in state: 323. +## Ends in an error in state: 390. ## -## let_expr(expr) -> seq(Attr) Let let_binding . SEMI expr [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] +## let_expr(expr_with_let_expr) -> seq(Attr) Let let_binding . SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## ## The known suffix of the stack is as follows: ## seq(Attr) Let let_binding @@ -1876,20 +1827,20 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 546, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 525, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr ## @@ -1933,7 +1884,7 @@ interactive_expr: Switch Constr WILD interactive_expr: Switch LBRACE WILD ## -## Ends in an error in state: 347. +## Ends in an error in state: 241. ## ## update_record -> LBRACE . ELLIPSIS path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ LBRACE ] ## @@ -1943,45 +1894,12 @@ interactive_expr: Switch LBRACE WILD -interactive_expr: Switch LBRACKET True RBRACE -## -## Ends in an error in state: 336. -## -## list__(expr) -> LBRACKET option(sep_or_term_list(expr,SEMI)) . RBRACKET [ LBRACE ] -## -## The known suffix of the stack is as follows: -## LBRACKET option(sep_or_term_list(expr,SEMI)) -## -## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level -## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 340, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 339, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) -## In state 335, spurious reduction of production option(sep_or_term_list(expr,SEMI)) -> sep_or_term_list(expr,SEMI) -## - - - interactive_expr: Switch LBRACKET True SEMI True SEMI WILD ## -## Ends in an error in state: 345. +## Ends in an error in state: 239. ## -## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET RBRACE ] -## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET RBRACE ] +## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] +## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] ## ## The known suffix of the stack is as follows: ## expr SEMI @@ -1991,11 +1909,11 @@ interactive_expr: Switch LBRACKET True SEMI True SEMI WILD interactive_expr: Switch LBRACKET True SEMI True VBAR ## -## Ends in an error in state: 344. +## Ends in an error in state: 238. ## -## nsepseq(expr,SEMI) -> expr . [ RBRACKET RBRACE ] -## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET RBRACE ] -## seq(__anonymous_0(expr,SEMI)) -> expr . SEMI seq(__anonymous_0(expr,SEMI)) [ RBRACKET RBRACE ] +## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] +## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] +## seq(__anonymous_0(expr,SEMI)) -> expr . SEMI seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] ## ## The known suffix of the stack is as follows: ## expr @@ -2004,29 +1922,29 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Switch LBRACKET True SEMI WILD ## -## Ends in an error in state: 341. +## Ends in an error in state: 235. ## -## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET RBRACE ] -## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET RBRACE ] +## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] +## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] ## ## The known suffix of the stack is as follows: ## expr SEMI @@ -2036,11 +1954,11 @@ interactive_expr: Switch LBRACKET True SEMI WILD interactive_expr: Switch LBRACKET True VBAR ## -## Ends in an error in state: 340. +## Ends in an error in state: 234. ## -## nsepseq(expr,SEMI) -> expr . [ RBRACKET RBRACE ] -## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET RBRACE ] -## nseq(__anonymous_0(expr,SEMI)) -> expr . SEMI seq(__anonymous_0(expr,SEMI)) [ RBRACKET RBRACE ] +## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] +## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] +## nseq(__anonymous_0(expr,SEMI)) -> expr . SEMI seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] ## ## The known suffix of the stack is as follows: ## expr @@ -2049,26 +1967,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Switch LBRACKET WILD ## -## Ends in an error in state: 334. +## Ends in an error in state: 228. ## ## list__(expr) -> LBRACKET . option(sep_or_term_list(expr,SEMI)) RBRACKET [ LBRACE ] ## @@ -2080,7 +1998,7 @@ interactive_expr: Switch LBRACKET WILD interactive_expr: Switch LPAR True VBAR ## -## Ends in an error in state: 458. +## Ends in an error in state: 448. ## ## 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 ] ## @@ -2091,19 +2009,19 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## @@ -2123,7 +2041,7 @@ interactive_expr: Switch LPAR WILD interactive_expr: Switch True LBRACE VBAR LBRACKET VBAR ## -## Ends in an error in state: 377. +## Ends in an error in state: 330. ## ## 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 ] @@ -2136,7 +2054,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: 380. +## Ends in an error in state: 333. ## ## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS . sub_pattern RBRACKET [ ARROW ] ## @@ -2148,7 +2066,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: 381. +## Ends in an error in state: 334. ## ## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS sub_pattern . RBRACKET [ ARROW ] ## @@ -2160,7 +2078,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: 379. +## Ends in an error in state: 332. ## ## pattern -> LBRACKET sub_pattern COMMA . ELLIPSIS sub_pattern RBRACKET [ ARROW ] ## @@ -2172,7 +2090,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: 378. +## Ends in an error in state: 331. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -2187,7 +2105,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: 384. +## Ends in an error in state: 337. ## ## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] ## @@ -2199,7 +2117,7 @@ interactive_expr: Switch True LBRACE VBAR LPAR Bytes RPAR WILD interactive_expr: Switch True LBRACE VBAR VBAR ## -## Ends in an error in state: 509. +## Ends in an error in state: 508. ## ## case_clause(base_cond) -> VBAR . pattern ARROW base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2211,7 +2129,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: 542. +## Ends in an error in state: 521. ## ## nseq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] ## @@ -2223,7 +2141,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: 544. +## Ends in an error in state: 523. ## ## seq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] ## @@ -2233,229 +2151,9 @@ interactive_expr: Switch True LBRACE VBAR WILD ARROW Bytes VBAR Bytes ARROW Byte -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True ARROW Bytes VBAR -## -## Ends in an error in state: 515. -## -## if_then(base_cond) -> If parenthesized_expr LBRACE closed_if . RBRACE [ VBAR SEMI RBRACE ] -## if_then_else(base_cond) -> If parenthesized_expr LBRACE closed_if . SEMI RBRACE Else LBRACE base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level -## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 295, spurious reduction of production es6_func -> ARROW expr -## In state 303, 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 404, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 403, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE True SEMI WILD -## -## Ends in an error in state: 534. -## -## if_then_else(base_cond) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_cond 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_cond SEMI -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE True VBAR -## -## Ends in an error in state: 533. -## -## if_then_else(base_cond) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_cond . 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_cond -## -## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level -## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 528, spurious reduction of production base_expr(base_cond) -> disj_expr_level -## In state 530, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) -## In state 531, spurious reduction of production base_cond -> base_cond__open(base_cond) -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else LBRACE WILD -## -## Ends in an error in state: 519. -## -## if_then_else(base_cond) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE . base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE Else WILD -## -## Ends in an error in state: 518. -## -## if_then_else(base_cond) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE Else . LBRACE base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE Else -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI RBRACE WILD -## -## Ends in an error in state: 517. -## -## if_then_else(base_cond) -> If parenthesized_expr LBRACE closed_if SEMI RBRACE . Else LBRACE base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI RBRACE -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI WILD -## -## Ends in an error in state: 516. -## -## if_then_else(base_cond) -> If parenthesized_expr LBRACE closed_if SEMI . RBRACE Else LBRACE base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE closed_if SEMI -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD -## -## Ends in an error in state: 514. -## -## if_then(base_cond) -> If parenthesized_expr LBRACE . closed_if RBRACE [ VBAR SEMI RBRACE ] -## if_then_else(base_cond) -> If parenthesized_expr LBRACE . closed_if SEMI RBRACE Else LBRACE base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr LBRACE -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR WILD -## -## Ends in an error in state: 513. -## -## if_then(base_cond) -> If parenthesized_expr . LBRACE closed_if RBRACE [ VBAR SEMI RBRACE ] -## if_then_else(base_cond) -> If parenthesized_expr . LBRACE closed_if SEMI RBRACE Else LBRACE base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If parenthesized_expr -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW If WILD -## -## Ends in an error in state: 512. -## -## if_then(base_cond) -> If . parenthesized_expr LBRACE closed_if RBRACE [ VBAR SEMI RBRACE ] -## if_then_else(base_cond) -> If . parenthesized_expr LBRACE closed_if SEMI RBRACE Else LBRACE base_cond SEMI RBRACE [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## If -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW Let VBAR -## -## Ends in an error in state: 521. -## -## let_expr(base_cond) -> seq(Attr) Let . let_binding SEMI base_cond [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW Let WILD EQ Bytes SEMI WILD -## -## Ends in an error in state: 523. -## -## let_expr(base_cond) -> seq(Attr) Let let_binding SEMI . base_cond [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let let_binding SEMI -## - - - -interactive_expr: Switch True LBRACE VBAR WILD ARROW Let WILD EQ Bytes VBAR -## -## Ends in an error in state: 522. -## -## let_expr(base_cond) -> seq(Attr) Let let_binding . SEMI base_cond [ VBAR SEMI RBRACE ] -## -## The known suffix of the stack is as follows: -## seq(Attr) Let let_binding -## -## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level -## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 546, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr -## - - - interactive_expr: Switch True LBRACE VBAR WILD ARROW True ARROW Bytes RPAR ## -## Ends in an error in state: 537. +## Ends in an error in state: 516. ## ## case_clause(base_cond) -> VBAR pattern ARROW base_cond . option(SEMI) [ VBAR RBRACE ] ## @@ -2466,31 +2164,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 295, spurious reduction of production es6_func -> ARROW expr -## In state 303, spurious reduction of production fun_expr -> disj_expr_level es6_func -## In state 527, spurious reduction of production base_expr(base_cond) -> fun_expr -## In state 530, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) -## In state 531, spurious reduction of production base_cond -> base_cond__open(base_cond) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 210, spurious reduction of production es6_func -> ARROW expr +## In state 218, spurious reduction of production fun_expr -> disj_expr_level es6_func +## In state 511, spurious reduction of production base_expr(base_cond) -> fun_expr +## In state 514, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 515, spurious reduction of production base_cond -> base_cond__open(base_cond) ## interactive_expr: Switch True LBRACE VBAR WILD ARROW True RPAR ## -## Ends in an error in state: 528. +## Ends in an error in state: 512. ## ## 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 ] @@ -2504,23 +2202,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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, 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: 511. +## Ends in an error in state: 510. ## ## case_clause(base_cond) -> VBAR pattern ARROW . base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2532,7 +2230,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: 510. +## Ends in an error in state: 509. ## ## case_clause(base_cond) -> VBAR pattern . ARROW base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2543,16 +2241,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 169, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 172, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 383, spurious reduction of production pattern -> tuple(sub_pattern) +## In state 324, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 327, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 336, spurious reduction of production pattern -> tuple(sub_pattern) ## interactive_expr: Switch True LBRACE VBAR WILD COMMA VBAR ## -## Ends in an error in state: 168. +## Ends in an error in state: 323. ## ## tuple(sub_pattern) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] ## @@ -2564,7 +2262,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: 170. +## Ends in an error in state: 325. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] ## @@ -2576,7 +2274,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: 169. +## Ends in an error in state: 324. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern . [ RPAR ARROW ] ## nsepseq(sub_pattern,COMMA) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] @@ -2589,7 +2287,7 @@ interactive_expr: Switch True LBRACE VBAR WILD COMMA WILD WILD interactive_expr: Switch True LBRACE VBAR WILD WILD ## -## Ends in an error in state: 435. +## Ends in an error in state: 425. ## ## pattern -> core_pattern . [ ARROW ] ## sub_pattern -> core_pattern . [ COMMA ] @@ -2602,7 +2300,7 @@ interactive_expr: Switch True LBRACE VBAR WILD WILD interactive_expr: Switch True LBRACE 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 ] ## @@ -2614,7 +2312,7 @@ interactive_expr: Switch True LBRACE WILD interactive_expr: Switch True WILD ## -## Ends in an error in state: 507. +## Ends in an error in state: 506. ## ## switch_expr(base_cond) -> Switch switch_expr_ . LBRACE cases(base_cond) RBRACE [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] ## @@ -2638,7 +2336,7 @@ interactive_expr: Switch WILD interactive_expr: True ARROW WILD ## -## Ends in an error in state: 294. +## Ends in an error in state: 209. ## ## es6_func -> ARROW . expr [ VBAR SEMI RPAR RBRACKET RBRACE EOF COMMA ] ## @@ -2650,7 +2348,7 @@ interactive_expr: True ARROW WILD interactive_expr: True BOOL_AND WILD ## -## Ends in an error in state: 248. +## Ends in an error in state: 163. ## ## 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 ] ## @@ -2662,7 +2360,7 @@ interactive_expr: True BOOL_AND WILD interactive_expr: True BOOL_OR WILD ## -## Ends in an error in state: 292. +## Ends in an error in state: 207. ## ## 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 ] ## @@ -2674,7 +2372,7 @@ interactive_expr: True BOOL_OR WILD interactive_expr: True CAT WILD ## -## Ends in an error in state: 271. +## Ends in an error in state: 186. ## ## 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 ] ## @@ -2686,7 +2384,7 @@ interactive_expr: True CAT WILD interactive_expr: True COLON Ident LPAR Ident VBAR ## -## Ends in an error in state: 213. +## Ends in an error in state: 129. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] @@ -2698,15 +2396,15 @@ 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 211, spurious reduction of production option(type_expr_simple_args) -> -## In state 220, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 127, spurious reduction of production option(type_expr_simple_args) -> +## In state 136, 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: 212. +## Ends in an error in state: 128. ## ## 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 ] ## @@ -2718,7 +2416,7 @@ interactive_expr: True COLON Ident LPAR WILD interactive_expr: True COLON Ident WILD ## -## Ends in an error in state: 211. +## Ends in an error in state: 127. ## ## 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 ] ## @@ -2730,7 +2428,7 @@ interactive_expr: True COLON Ident WILD interactive_expr: True COLON LPAR Ident ARROW Ident VBAR ## -## Ends in an error in state: 223. +## Ends in an error in state: 139. ## ## 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 ] ## @@ -2741,15 +2439,15 @@ 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 211, spurious reduction of production option(type_expr_simple_args) -> -## In state 220, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 127, spurious reduction of production option(type_expr_simple_args) -> +## In state 136, 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: 222. +## Ends in an error in state: 138. ## ## 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 ] ## @@ -2761,7 +2459,7 @@ interactive_expr: True COLON LPAR Ident ARROW WILD interactive_expr: True COLON LPAR Ident COMMA WILD ## -## Ends in an error in state: 214. +## Ends in an error in state: 130. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple COMMA . nsepseq(type_expr_simple,COMMA) [ RPAR ] ## @@ -2773,7 +2471,7 @@ interactive_expr: True COLON LPAR Ident COMMA WILD interactive_expr: True COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 230. +## Ends in an error in state: 146. ## ## 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 ] @@ -2788,7 +2486,7 @@ interactive_expr: True COLON LPAR Ident RPAR WILD interactive_expr: True COLON LPAR Ident VBAR ## -## Ends in an error in state: 221. +## Ends in an error in state: 137. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] @@ -2801,15 +2499,15 @@ 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 211, spurious reduction of production option(type_expr_simple_args) -> -## In state 220, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 127, spurious reduction of production option(type_expr_simple_args) -> +## In state 136, 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: 210. +## Ends in an error in state: 126. ## ## 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 ] @@ -2822,7 +2520,7 @@ interactive_expr: True COLON LPAR WILD interactive_expr: True COLON WILD ## -## Ends in an error in state: 209. +## Ends in an error in state: 125. ## ## 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 ] ## @@ -2834,7 +2532,7 @@ interactive_expr: True COLON WILD interactive_expr: True EQEQ WILD ## -## Ends in an error in state: 281. +## Ends in an error in state: 196. ## ## 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 ] ## @@ -2846,7 +2544,7 @@ interactive_expr: True EQEQ WILD interactive_expr: True GE WILD ## -## Ends in an error in state: 279. +## Ends in an error in state: 194. ## ## 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 ] ## @@ -2858,7 +2556,7 @@ interactive_expr: True GE WILD interactive_expr: True GT WILD ## -## Ends in an error in state: 277. +## Ends in an error in state: 192. ## ## 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 ] ## @@ -2870,7 +2568,7 @@ interactive_expr: True GT WILD interactive_expr: True LE WILD ## -## Ends in an error in state: 275. +## Ends in an error in state: 190. ## ## 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 ] ## @@ -2882,7 +2580,7 @@ interactive_expr: True LE WILD interactive_expr: True LPAR True COMMA WILD ## -## Ends in an error in state: 242. +## Ends in an error in state: 157. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] ## @@ -2894,7 +2592,7 @@ interactive_expr: True LPAR True COMMA WILD interactive_expr: True LPAR True VBAR ## -## Ends in an error in state: 241. +## Ends in an error in state: 156. ## ## nsepseq(expr,COMMA) -> expr . [ RPAR ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RPAR ] @@ -2906,26 +2604,26 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: True LPAR WILD ## -## Ends in an error in state: 234. +## Ends in an error in state: 150. ## ## 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 ] @@ -2938,7 +2636,7 @@ interactive_expr: True LPAR WILD interactive_expr: True LT WILD ## -## Ends in an error in state: 273. +## Ends in an error in state: 188. ## ## 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 ] ## @@ -2950,7 +2648,7 @@ interactive_expr: True LT WILD interactive_expr: True MINUS True COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 270. +## Ends in an error in state: 185. ## ## 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 ] @@ -2965,7 +2663,7 @@ interactive_expr: True MINUS True COLON LPAR Ident RPAR WILD interactive_expr: True MINUS WILD ## -## Ends in an error in state: 269. +## Ends in an error in state: 184. ## ## 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 ] ## @@ -2977,7 +2675,7 @@ interactive_expr: True MINUS WILD interactive_expr: True Mod WILD ## -## Ends in an error in state: 267. +## Ends in an error in state: 182. ## ## 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 ] ## @@ -2989,7 +2687,7 @@ interactive_expr: True Mod WILD interactive_expr: True NE WILD ## -## Ends in an error in state: 250. +## Ends in an error in state: 165. ## ## 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 ] ## @@ -3001,7 +2699,7 @@ interactive_expr: True NE WILD interactive_expr: True Or WILD ## -## Ends in an error in state: 245. +## Ends in an error in state: 160. ## ## 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 ] ## @@ -3013,7 +2711,7 @@ interactive_expr: True Or WILD interactive_expr: True PLUS True COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 264. +## Ends in an error in state: 179. ## ## 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 ] @@ -3028,7 +2726,7 @@ interactive_expr: True PLUS True COLON LPAR Ident RPAR WILD interactive_expr: True PLUS WILD ## -## Ends in an error in state: 263. +## Ends in an error in state: 178. ## ## 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 ] ## @@ -3040,7 +2738,7 @@ interactive_expr: True PLUS WILD interactive_expr: True SLASH WILD ## -## Ends in an error in state: 265. +## Ends in an error in state: 180. ## ## 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 ] ## @@ -3052,7 +2750,7 @@ interactive_expr: True SLASH WILD interactive_expr: True TIMES WILD ## -## Ends in an error in state: 231. +## Ends in an error in state: 147. ## ## 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 ] ## @@ -3064,37 +2762,38 @@ interactive_expr: True TIMES WILD interactive_expr: True VBAR ## -## Ends in an error in state: 557. +## Ends in an error in state: 536. ## -## interactive_expr -> expr . EOF [ # ] +## interactive_expr -> expr_with_let_expr . EOF [ # ] ## ## The known suffix of the stack is as follows: -## expr +## 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 394, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: True WILD ## -## Ends in an error in state: 233. +## Ends in an error in state: 149. ## ## 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 ] @@ -3108,7 +2807,7 @@ interactive_expr: True WILD interactive_expr: WILD ## -## Ends in an error in state: 555. +## Ends in an error in state: 534. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -3132,7 +2831,7 @@ contract: Attr WILD contract: Let Ident COLON Ident SEMI ## -## Ends in an error in state: 206. +## Ends in an error in state: 370. ## ## let_binding -> Ident option(type_annotation) . EQ expr [ SEMI ] ## @@ -3154,7 +2853,7 @@ contract: Let Ident COLON Ident SEMI contract: Let Ident EQ WILD ## -## Ends in an error in state: 207. +## Ends in an error in state: 371. ## ## let_binding -> Ident option(type_annotation) EQ . expr [ SEMI ] ## @@ -3162,11 +2861,16 @@ contract: Let Ident EQ WILD ## Ident option(type_annotation) EQ ## - +This is an incorrect let binding. +- +Examples of correct let bindings: +let a: int = 4; +let (a: int, b: int) = (1, 2); +let func = (a: int, b: int) => a + b; contract: Let Ident WILD ## -## Ends in an error in state: 205. +## Ends in an error in state: 369. ## ## let_binding -> Ident . option(type_annotation) EQ expr [ SEMI ] ## sub_irrefutable -> Ident . [ COMMA ] @@ -3179,7 +2883,7 @@ contract: Let Ident WILD contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes COMMA WILD ## -## Ends in an error in state: 185. +## Ends in an error in state: 306. ## ## 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 ] @@ -3192,7 +2896,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: 184. +## Ends in an error in state: 305. ## ## nsepseq(field_pattern,COMMA) -> field_pattern . [ RBRACE ] ## nsepseq(field_pattern,COMMA) -> field_pattern . COMMA nsepseq(field_pattern,COMMA) [ RBRACE ] @@ -3206,7 +2910,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: 181. +## Ends in an error in state: 302. ## ## 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 ] @@ -3219,7 +2923,7 @@ contract: Let LBRACE Ident EQ Bytes COMMA WILD contract: Let LBRACE Ident EQ Bytes RBRACE COLON Ident SEMI ## -## Ends in an error in state: 316. +## Ends in an error in state: 383. ## ## let_binding -> record_pattern option(type_annotation) . EQ expr [ SEMI ] ## @@ -3241,7 +2945,7 @@ contract: Let LBRACE Ident EQ Bytes RBRACE COLON Ident SEMI contract: Let LBRACE Ident EQ Bytes RBRACE EQ WILD ## -## Ends in an error in state: 317. +## Ends in an error in state: 384. ## ## let_binding -> record_pattern option(type_annotation) EQ . expr [ SEMI ] ## @@ -3253,7 +2957,7 @@ contract: Let LBRACE Ident EQ Bytes RBRACE EQ WILD contract: Let LBRACE Ident EQ Bytes RBRACE WILD ## -## Ends in an error in state: 315. +## Ends in an error in state: 382. ## ## let_binding -> record_pattern . option(type_annotation) EQ expr [ SEMI ] ## sub_irrefutable -> record_pattern . [ COMMA ] @@ -3266,7 +2970,7 @@ contract: Let LBRACE Ident EQ Bytes RBRACE WILD contract: Let LBRACE Ident EQ Bytes WILD ## -## Ends in an error in state: 180. +## Ends in an error in state: 301. ## ## nsepseq(field_pattern,COMMA) -> field_pattern . [ RBRACE ] ## nsepseq(field_pattern,COMMA) -> field_pattern . COMMA nsepseq(field_pattern,COMMA) [ RBRACE ] @@ -3280,7 +2984,7 @@ contract: Let LBRACE Ident EQ Bytes WILD contract: Let LBRACE Ident EQ VBAR ## -## Ends in an error in state: 130. +## Ends in an error in state: 279. ## ## field_pattern -> Ident EQ . sub_pattern [ RBRACE COMMA ] ## @@ -3292,7 +2996,7 @@ contract: Let LBRACE Ident EQ VBAR contract: Let LBRACE Ident WILD ## -## Ends in an error in state: 129. +## Ends in an error in state: 278. ## ## field_pattern -> Ident . EQ sub_pattern [ RBRACE COMMA ] ## @@ -3304,7 +3008,7 @@ contract: Let LBRACE Ident WILD contract: Let LBRACE WILD ## -## Ends in an error in state: 128. +## Ends in an error in state: 277. ## ## record_pattern -> LBRACE . sep_or_term_list(field_pattern,COMMA) RBRACE [ SEMI RPAR RBRACKET RBRACE EQ COMMA COLON ARROW ] ## @@ -3316,7 +3020,7 @@ contract: Let LBRACE WILD contract: Let LPAR C_Some VBAR ## -## Ends in an error in state: 141. +## Ends in an error in state: 284. ## ## constr_pattern -> C_Some . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -3328,7 +3032,7 @@ contract: Let LPAR C_Some VBAR contract: Let LPAR Constr LBRACKET VBAR ## -## Ends in an error in state: 136. +## Ends in an error in state: 276. ## ## list__(sub_pattern) -> LBRACKET . option(sep_or_term_list(sub_pattern,SEMI)) RBRACKET [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -3340,7 +3044,7 @@ contract: Let LPAR Constr LBRACKET VBAR contract: Let LPAR Constr LBRACKET WILD SEMI VBAR ## -## Ends in an error in state: 154. +## Ends in an error in state: 309. ## ## 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 ] @@ -3353,7 +3057,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: 156. +## Ends in an error in state: 311. ## ## 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 ] @@ -3366,7 +3070,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: 155. +## Ends in an error in state: 310. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -3380,7 +3084,7 @@ contract: Let LPAR Constr LBRACKET WILD SEMI WILD WILD contract: Let LPAR Constr LBRACKET WILD WILD ## -## Ends in an error in state: 153. +## Ends in an error in state: 308. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -3394,7 +3098,7 @@ contract: Let LPAR Constr LBRACKET WILD WILD contract: Let LPAR Constr LPAR VBAR ## -## Ends in an error in state: 135. +## Ends in an error in state: 275. ## ## par(ptuple) -> LPAR . ptuple RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## par(sub_pattern) -> LPAR . sub_pattern RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] @@ -3408,7 +3112,7 @@ contract: Let LPAR Constr LPAR VBAR contract: Let LPAR Constr LPAR WILD COMMA Bytes ARROW ## -## Ends in an error in state: 173. +## Ends in an error in state: 328. ## ## par(ptuple) -> LPAR ptuple . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -3419,16 +3123,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 169, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 172, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 165, spurious reduction of production ptuple -> tuple(sub_pattern) +## In state 324, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 327, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 320, spurious reduction of production ptuple -> tuple(sub_pattern) ## contract: Let LPAR Constr LPAR WILD WILD ## -## Ends in an error in state: 166. +## Ends in an error in state: 321. ## ## par(sub_pattern) -> LPAR sub_pattern . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ] @@ -3441,7 +3145,7 @@ contract: Let LPAR Constr LPAR WILD WILD contract: Let LPAR Constr SEMI ## -## Ends in an error in state: 203. +## Ends in an error in state: 367. ## ## par(closed_irrefutable) -> LPAR closed_irrefutable . RPAR [ RPAR EQ COMMA COLON ] ## @@ -3452,15 +3156,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 140, spurious reduction of production constr_pattern -> Constr -## In state 202, spurious reduction of production closed_irrefutable -> constr_pattern +## In state 283, spurious reduction of production constr_pattern -> Constr +## In state 366, spurious reduction of production closed_irrefutable -> constr_pattern ## contract: Let LPAR Constr VBAR ## -## Ends in an error in state: 140. +## Ends in an error in state: 283. ## ## constr_pattern -> Constr . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## constr_pattern -> Constr . [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] @@ -3473,7 +3177,7 @@ contract: Let LPAR Constr VBAR contract: Let LPAR RPAR COLON Ident SEMI ## -## Ends in an error in state: 307. +## Ends in an error in state: 374. ## ## let_binding -> unit option(type_annotation) . EQ expr [ SEMI ] ## @@ -3495,7 +3199,7 @@ contract: Let LPAR RPAR COLON Ident SEMI contract: Let LPAR RPAR EQ WILD ## -## Ends in an error in state: 308. +## Ends in an error in state: 375. ## ## let_binding -> unit option(type_annotation) EQ . expr [ SEMI ] ## @@ -3507,7 +3211,7 @@ contract: Let LPAR RPAR EQ WILD contract: Let LPAR RPAR WILD ## -## Ends in an error in state: 306. +## Ends in an error in state: 373. ## ## let_binding -> unit . option(type_annotation) EQ expr [ SEMI ] ## sub_irrefutable -> unit . [ COMMA ] @@ -3520,7 +3224,7 @@ contract: Let LPAR RPAR WILD contract: Let LPAR VBAR ## -## Ends in an error in state: 126. +## Ends in an error in state: 349. ## ## par(closed_irrefutable) -> LPAR . closed_irrefutable RPAR [ RPAR EQ COMMA COLON ] ## unit -> LPAR . RPAR [ RPAR EQ COMMA COLON ] @@ -3533,7 +3237,7 @@ contract: Let LPAR VBAR contract: Let LPAR WILD COLON WILD ## -## Ends in an error in state: 200. +## Ends in an error in state: 364. ## ## typed_pattern -> irrefutable COLON . type_expr [ RPAR ] ## @@ -3545,7 +3249,7 @@ contract: Let LPAR WILD COLON WILD contract: Let LPAR WILD COMMA Ident EQ ## -## Ends in an error in state: 199. +## Ends in an error in state: 363. ## ## closed_irrefutable -> irrefutable . [ RPAR ] ## typed_pattern -> irrefutable . COLON type_expr [ RPAR ] @@ -3557,16 +3261,16 @@ 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 193, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable -## In state 198, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) -## In state 190, spurious reduction of production irrefutable -> tuple(sub_irrefutable) +## In state 357, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 362, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) +## In state 354, spurious reduction of production irrefutable -> tuple(sub_irrefutable) ## contract: Let LPAR WILD RPAR COLON Ident SEMI ## -## Ends in an error in state: 320. +## Ends in an error in state: 387. ## ## let_binding -> par(closed_irrefutable) option(type_annotation) . EQ expr [ SEMI ] ## @@ -3588,7 +3292,7 @@ contract: Let LPAR WILD RPAR COLON Ident SEMI contract: Let LPAR WILD RPAR EQ WILD ## -## Ends in an error in state: 321. +## Ends in an error in state: 388. ## ## let_binding -> par(closed_irrefutable) option(type_annotation) EQ . expr [ SEMI ] ## @@ -3600,7 +3304,7 @@ contract: Let LPAR WILD RPAR EQ WILD contract: Let LPAR WILD RPAR WILD ## -## Ends in an error in state: 319. +## Ends in an error in state: 386. ## ## let_binding -> par(closed_irrefutable) . option(type_annotation) EQ expr [ SEMI ] ## sub_irrefutable -> par(closed_irrefutable) . [ COMMA ] @@ -3613,7 +3317,7 @@ contract: Let LPAR WILD RPAR WILD contract: Let LPAR WILD WILD ## -## Ends in an error in state: 191. +## Ends in an error in state: 355. ## ## irrefutable -> sub_irrefutable . [ RPAR COLON ] ## tuple(sub_irrefutable) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR COLON ] @@ -3672,7 +3376,7 @@ contract: Let WILD COLON WILD contract: Let WILD COMMA Ident COLON Ident SEMI ## -## Ends in an error in state: 311. +## Ends in an error in state: 378. ## ## let_binding -> tuple(sub_irrefutable) option(type_annotation) . EQ expr [ SEMI ] ## @@ -3694,7 +3398,7 @@ contract: Let WILD COMMA Ident COLON Ident SEMI contract: Let WILD COMMA Ident EQ WILD ## -## Ends in an error in state: 312. +## Ends in an error in state: 379. ## ## let_binding -> tuple(sub_irrefutable) option(type_annotation) EQ . expr [ SEMI ] ## @@ -3706,7 +3410,7 @@ contract: Let WILD COMMA Ident EQ WILD contract: Let WILD COMMA Ident RPAR ## -## Ends in an error in state: 310. +## Ends in an error in state: 377. ## ## let_binding -> tuple(sub_irrefutable) . option(type_annotation) EQ expr [ SEMI ] ## @@ -3717,15 +3421,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 193, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable -## In state 198, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) +## In state 357, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 362, 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: 192. +## Ends in an error in state: 356. ## ## tuple(sub_irrefutable) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] ## @@ -3737,7 +3441,7 @@ contract: Let WILD COMMA VBAR contract: Let WILD COMMA WILD COMMA VBAR ## -## Ends in an error in state: 194. +## Ends in an error in state: 358. ## ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] ## @@ -3749,7 +3453,7 @@ contract: Let WILD COMMA WILD COMMA VBAR contract: Let WILD COMMA WILD WILD ## -## Ends in an error in state: 193. +## Ends in an error in state: 357. ## ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . [ RPAR EQ COLON ] ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] @@ -3762,7 +3466,7 @@ contract: Let WILD COMMA WILD WILD contract: Let WILD EQ Bytes VBAR ## -## Ends in an error in state: 548. +## Ends in an error in state: 527. ## ## declaration -> let_declaration . SEMI [ Type Let EOF Attr ] ## @@ -3773,21 +3477,21 @@ 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 233, spurious reduction of production call_expr_level_in -> core_expr -## In state 252, spurious reduction of production option(type_annotation_simple) -> -## In state 253, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 254, spurious reduction of production unary_expr_level -> call_expr_level +## In state 149, spurious reduction of production call_expr_level_in -> core_expr +## In state 167, spurious reduction of production option(type_annotation_simple) -> +## In state 168, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 169, spurious reduction of production unary_expr_level -> call_expr_level ## In state 122, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 230, spurious reduction of production add_expr_level -> mult_expr_level -## In state 262, spurious reduction of production cat_expr_level -> add_expr_level -## In state 283, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 290, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 297, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 244, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 301, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 302, spurious reduction of production expr -> base_cond__open(expr) -## In state 546, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr -## In state 547, spurious reduction of production let_declaration -> seq(Attr) Let let_binding +## In state 146, spurious reduction of production add_expr_level -> mult_expr_level +## In state 177, spurious reduction of production cat_expr_level -> add_expr_level +## In state 198, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 205, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 212, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 159, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 216, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 217, spurious reduction of production expr -> base_cond__open(expr) +## In state 525, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 526, spurious reduction of production let_declaration -> seq(Attr) Let let_binding ## @@ -3963,7 +3667,7 @@ contract: Type Ident EQ Ident RPAR contract: Type Ident EQ Ident SEMI WILD ## -## Ends in an error in state: 552. +## Ends in an error in state: 531. ## ## declarations -> declaration . [ EOF ] ## declarations -> declaration . declarations [ EOF ] From a0ffc441f34a030dd2fa2395c4e20a2b90bb8274 Mon Sep 17 00:00:00 2001 From: Sander Spies Date: Mon, 3 Feb 2020 11:25:13 +0100 Subject: [PATCH 2/4] Forgot to add these. --- .../docs/advanced/entrypoints-contracts.md | 3 +- src/test/contracts/negative/gitlab_111.religo | 58 +++++++++++++++++++ 2 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 src/test/contracts/negative/gitlab_111.religo diff --git a/gitlab-pages/docs/advanced/entrypoints-contracts.md b/gitlab-pages/docs/advanced/entrypoints-contracts.md index dff0a535a..13395d48d 100644 --- a/gitlab-pages/docs/advanced/entrypoints-contracts.md +++ b/gitlab-pages/docs/advanced/entrypoints-contracts.md @@ -298,10 +298,11 @@ type action = let dest: address = ("KT19wgxcuXG9VH4Af5Tpm1vqEKdaMFpznXT3": address); -let proxy = ((param, s): (action, unit)): (list(operation), unit) => +let proxy = ((param, s): (action, unit)): (list(operation), unit) => { let counter: contract(action) = Operation.get_contract(dest); let op: operation = Operation.transaction(param, 0mutez, counter); ([op], s); +}; ``` diff --git a/src/test/contracts/negative/gitlab_111.religo b/src/test/contracts/negative/gitlab_111.religo new file mode 100644 index 000000000..3103973fc --- /dev/null +++ b/src/test/contracts/negative/gitlab_111.religo @@ -0,0 +1,58 @@ +type fraction = +{ + num : int, + den : nat +}; + +type storage = fraction; +type parameter = unit; + + +let twopow_aux = (base : nat, accu : nat, n : nat) => + if (n > 0n) { + if (n mod 2n == 1n) { + continue((base * base, accu * base, n / 2n)); + } else { + continue((base * base, accu, n / 2n)); + }; + } else { + stop((base, accu, n)); + }; + +let twopow = (n : nat) : nat => { + let (_, x, _) = Loop.fold_while(twopow_aux, (2n, 1n, n)); + x +}; + +let tp = +let exp = (x : fraction) : fraction => { + let r : int = 1649 * x.num; + let s : nat = 1143n * x.den; + let ab = { + num: r / int(s), den: r mod s + }; + + let (i, f) = + if (2n * ab.den <= s) { + (ab.num, {num: ab.den, den: 1649n * x.den}); + } + else { + (ab.num + 1, {num: ab.den - s, den: 1649n * x.den}); + }; + let pow : nat = twopow(abs(i)); + let tp = if (i > 0) {{num:int(pow), den:1n};} else {{num:1, den:pow};}; + let num : int = (f.num * f.num + 6 * f.num * int(f.den) + int(12n * f.den * f.den)) * tp.num; + let den : int = (f.num * f.num - 6 * f.num * int(f.den) + int(12n * f.den * f.den)) * int(tp.den); + if (den < 0) + { + {num:-num, den:abs(den)}; + } else { + {num:num, den:den}; + }; +}; + +let main = (p : parameter, s : storage) => +{ + let r = exp(s); + ([]: list(operation), r) +}; From 98dab8d491b9124bf13fcdc9d8517d90083af6a3 Mon Sep 17 00:00:00 2001 From: Sander Spies Date: Mon, 3 Feb 2020 11:57:37 +0100 Subject: [PATCH 3/4] Extra line. --- src/bin/expect_tests/error_messages_tests.ml | 1 + 1 file changed, 1 insertion(+) diff --git a/src/bin/expect_tests/error_messages_tests.ml b/src/bin/expect_tests/error_messages_tests.ml index 4423cc919..0cd5e7833 100644 --- a/src/bin/expect_tests/error_messages_tests.ml +++ b/src/bin/expect_tests/error_messages_tests.ml @@ -12,6 +12,7 @@ let%expect_test _ = let func = (a: int, b: int) => a + b; {} + If you're not sure how to fix this error, you can do one of the following: From e92d16fd7932f91d77696b3ef6ad8ade7bc706a8 Mon Sep 17 00:00:00 2001 From: Sander Spies Date: Mon, 3 Feb 2020 14:03:47 +0100 Subject: [PATCH 4/4] Simplify error case. --- src/bin/expect_tests/error_messages_tests.ml | 2 +- src/test/contracts/negative/gitlab_111.religo | 60 +------------------ 2 files changed, 3 insertions(+), 59 deletions(-) diff --git a/src/bin/expect_tests/error_messages_tests.ml b/src/bin/expect_tests/error_messages_tests.ml index 0cd5e7833..cf800a6ac 100644 --- a/src/bin/expect_tests/error_messages_tests.ml +++ b/src/bin/expect_tests/error_messages_tests.ml @@ -3,7 +3,7 @@ open Cli_expect let%expect_test _ = run_ligo_bad [ "compile-contract" ; "../../test/contracts/negative/gitlab_111.religo" ; "main" ] ; [%expect {| - ligo: : Parse error in file "gitlab_111.religo", line 28, characters 0-3, after "=" and before "let": + ligo: : Parse error in file "gitlab_111.religo", line 2, characters 0-3, after "=" and before "let": This is an incorrect let binding. - Examples of correct let bindings: diff --git a/src/test/contracts/negative/gitlab_111.religo b/src/test/contracts/negative/gitlab_111.religo index 3103973fc..39cb5dceb 100644 --- a/src/test/contracts/negative/gitlab_111.religo +++ b/src/test/contracts/negative/gitlab_111.religo @@ -1,58 +1,2 @@ -type fraction = -{ - num : int, - den : nat -}; - -type storage = fraction; -type parameter = unit; - - -let twopow_aux = (base : nat, accu : nat, n : nat) => - if (n > 0n) { - if (n mod 2n == 1n) { - continue((base * base, accu * base, n / 2n)); - } else { - continue((base * base, accu, n / 2n)); - }; - } else { - stop((base, accu, n)); - }; - -let twopow = (n : nat) : nat => { - let (_, x, _) = Loop.fold_while(twopow_aux, (2n, 1n, n)); - x -}; - -let tp = -let exp = (x : fraction) : fraction => { - let r : int = 1649 * x.num; - let s : nat = 1143n * x.den; - let ab = { - num: r / int(s), den: r mod s - }; - - let (i, f) = - if (2n * ab.den <= s) { - (ab.num, {num: ab.den, den: 1649n * x.den}); - } - else { - (ab.num + 1, {num: ab.den - s, den: 1649n * x.den}); - }; - let pow : nat = twopow(abs(i)); - let tp = if (i > 0) {{num:int(pow), den:1n};} else {{num:1, den:pow};}; - let num : int = (f.num * f.num + 6 * f.num * int(f.den) + int(12n * f.den * f.den)) * tp.num; - let den : int = (f.num * f.num - 6 * f.num * int(f.den) + int(12n * f.den * f.den)) * int(tp.den); - if (den < 0) - { - {num:-num, den:abs(den)}; - } else { - {num:num, den:den}; - }; -}; - -let main = (p : parameter, s : storage) => -{ - let r = exp(s); - ([]: list(operation), r) -}; +let a = +let b = 2; \ No newline at end of file