diff --git a/ligo.opam b/ligo.opam index 167e004a8..f3815edc8 100644 --- a/ligo.opam +++ b/ligo.opam @@ -1,6 +1,6 @@ name: "ligo" opam-version: "2.0" -maintainer: "ligolang@gmail.com" +maintainer: "Galfour " authors: [ "Galfour" ] homepage: "https://gitlab.com/ligolang/tezos" bug-reports: "https://gitlab.com/ligolang/tezos/issues" diff --git a/src/passes/1-parser/cameligo.ml b/src/passes/1-parser/cameligo.ml index ce86f1413..f32c85084 100644 --- a/src/passes/1-parser/cameligo.ml +++ b/src/passes/1-parser/cameligo.ml @@ -131,12 +131,12 @@ let apply parser = (* Parsing a contract in a file *) -let parse_file source = apply (fun () -> Unit.parse_file source) +let parse_file source = apply (fun () -> Unit.contract_in_file source) (* Parsing a contract in a string *) -let parse_string source = apply (fun () -> Unit.parse_string source) +let parse_string source = apply (fun () -> Unit.contract_in_string source) (* Parsing an expression in a string *) -let parse_expression source = apply (fun () -> Unit.parse_expression source) +let parse_expression source = apply (fun () -> Unit.expr_in_string source) diff --git a/src/passes/1-parser/cameligo/.links b/src/passes/1-parser/cameligo/.links index 1ec7a1fe9..702a10aca 100644 --- a/src/passes/1-parser/cameligo/.links +++ b/src/passes/1-parser/cameligo/.links @@ -1,20 +1,5 @@ $HOME/git/OCaml-build/Makefile -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.ml -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.ml - -$HOME/git/ligo/vendors/Preprocessor/E_AST.ml -$HOME/git/ligo/vendors/Preprocessor/E_Lexer.mll -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.ml -$HOME/git/ligo/vendors/Preprocessor/Preproc.mli -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.mli -$HOME/git/ligo/vendors/Preprocessor/Preproc.mll -$HOME/git/ligo/vendors/Preprocessor/E_Lexer.mli -$HOME/git/ligo/vendors/Preprocessor/E_Parser.mly -$HOME/git/ligo/vendors/Preprocessor/.E_Parser.mly.tag - ../shared/Lexer.mli ../shared/Lexer.mll ../shared/EvalOpt.ml @@ -34,7 +19,4 @@ $HOME/git/ligo/vendors/Preprocessor/.E_Parser.mly.tag ../shared/ParserUnit.mli ../shared/ParserUnit.ml -Stubs/Simple_utils.ml -Stubs/Preprocessor.ml - $HOME/git/ligo/_build/default/src/passes/1-parser/cameligo/ParErr.ml \ No newline at end of file diff --git a/src/passes/1-parser/cameligo/AST.ml b/src/passes/1-parser/cameligo/AST.ml index 8cef386c2..c558eb72d 100644 --- a/src/passes/1-parser/cameligo/AST.ml +++ b/src/passes/1-parser/cameligo/AST.ml @@ -19,6 +19,8 @@ open Utils denoting the _region_ of the occurrence of the keyword "and". *) +module Region = Simple_utils.Region + type 'a reg = 'a Region.reg (* Keywords of OCaml *) diff --git a/src/passes/1-parser/cameligo/LexerMain.ml b/src/passes/1-parser/cameligo/LexerMain.ml index 830e574f8..2a281efd5 100644 --- a/src/passes/1-parser/cameligo/LexerMain.ml +++ b/src/passes/1-parser/cameligo/LexerMain.ml @@ -4,7 +4,7 @@ module Region = Simple_utils.Region module IO = struct - let options = EvalOpt.(read ~lang:CameLIGO ~ext:".mligo") + let options = EvalOpt.(read ~lang:`CameLIGO ~ext:".mligo") end module M = LexerUnit.Make (IO) (Lexer.Make (LexToken)) diff --git a/src/passes/1-parser/cameligo/Makefile.cfg b/src/passes/1-parser/cameligo/Makefile.cfg index 2f2a6b197..233407070 100644 --- a/src/passes/1-parser/cameligo/Makefile.cfg +++ b/src/passes/1-parser/cameligo/Makefile.cfg @@ -2,4 +2,4 @@ SHELL := dash BFLAGS := -strict-sequence -w +A-48-4 -g clean:: -> rm -f Parser.msg Parser.msg.map Parser.msg.states Version.ml +> \rm -f Parser.msg.map Parser.msg.states Version.ml diff --git a/src/passes/1-parser/cameligo/Parser.mly b/src/passes/1-parser/cameligo/Parser.mly index 237c08875..950423005 100644 --- a/src/passes/1-parser/cameligo/Parser.mly +++ b/src/passes/1-parser/cameligo/Parser.mly @@ -3,7 +3,7 @@ [@@@warning "-42"] -open Region +open Simple_utils.Region open AST (* END HEADER *) diff --git a/src/passes/1-parser/cameligo/Parser.msg b/src/passes/1-parser/cameligo/Parser.msg new file mode 100644 index 000000000..270e55960 --- /dev/null +++ b/src/passes/1-parser/cameligo/Parser.msg @@ -0,0 +1,3969 @@ +interactive_expr: Begin True RBRACKET +## +## Ends in an error in state: 218. +## +## sequence -> Begin option(sep_or_term_list(expr,SEMI)) . End [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Begin 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 243, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 221, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 217, spurious reduction of production option(sep_or_term_list(expr,SEMI)) -> sep_or_term_list(expr,SEMI) +## + + + +interactive_expr: Begin With +## +## Ends in an error in state: 201. +## +## sequence -> Begin . option(sep_or_term_list(expr,SEMI)) End [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Begin +## + + + +interactive_expr: C_None WILD +## +## Ends in an error in state: 222. +## +## add_expr_level -> mult_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## mult_expr_level +## + + + +interactive_expr: C_Some With +## +## Ends in an error in state: 202. +## +## constr_expr -> C_Some . core_expr [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## C_Some +## + + + +interactive_expr: Constr DOT Ident DOT With +## +## Ends in an error in state: 196. +## +## projection -> Constr DOT Ident DOT . nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Constr DOT Ident DOT +## + + + +interactive_expr: Constr DOT Ident WILD +## +## Ends in an error in state: 195. +## +## module_fun -> Ident . [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Constr DOT Ident +## + + + +interactive_expr: Constr DOT With +## +## Ends in an error in state: 193. +## +## module_field -> Constr DOT . module_fun [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Constr DOT +## + + + +interactive_expr: Constr WILD +## +## Ends in an error in state: 192. +## +## constr_expr -> Constr . core_expr [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## constr_expr -> Constr . [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## module_field -> Constr . DOT module_fun [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +interactive_expr: Fun WILD ARROW With +## +## Ends in an error in state: 190. +## +## fun_expr(expr) -> Fun nseq(irrefutable) ARROW . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Fun nseq(irrefutable) ARROW +## + + + +interactive_expr: Fun WILD RPAR +## +## Ends in an error in state: 308. +## +## nseq(irrefutable) -> irrefutable . seq(irrefutable) [ ARROW ] +## +## The known suffix of the stack is as follows: +## irrefutable +## +## 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 134, spurious reduction of production irrefutable -> sub_irrefutable +## + + + +interactive_expr: Fun WILD WILD RPAR +## +## Ends in an error in state: 310. +## +## seq(irrefutable) -> irrefutable . seq(irrefutable) [ ARROW ] +## +## The known suffix of the stack is as follows: +## irrefutable +## +## 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 134, spurious reduction of production irrefutable -> sub_irrefutable +## + + + +interactive_expr: Fun With +## +## Ends in an error in state: 188. +## +## fun_expr(expr) -> Fun . nseq(irrefutable) ARROW expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Fun +## + + + +interactive_expr: Ident DOT Int DOT With +## +## Ends in an error in state: 185. +## +## nsepseq(selection,DOT) -> selection DOT . nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## selection DOT +## + + + +interactive_expr: Ident DOT Int WILD +## +## Ends in an error in state: 184. +## +## nsepseq(selection,DOT) -> selection . [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## nsepseq(selection,DOT) -> selection . DOT nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## selection +## + + + +interactive_expr: Ident DOT With +## +## Ends in an error in state: 181. +## +## projection -> Ident DOT . nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Ident DOT +## + + + +interactive_expr: Ident WILD +## +## Ends in an error in state: 180. +## +## core_expr -> Ident . [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Ident . DOT nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: If True Then Fun WILD ARROW With +## +## Ends in an error in state: 426. +## +## fun_expr(closed_if) -> Fun nseq(irrefutable) ARROW . closed_if [ Else ] +## fun_expr(expr) -> Fun nseq(irrefutable) ARROW . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Fun nseq(irrefutable) ARROW +## + + + +interactive_expr: If True Then Fun With +## +## Ends in an error in state: 424. +## +## fun_expr(closed_if) -> Fun . nseq(irrefutable) ARROW closed_if [ Else ] +## fun_expr(expr) -> Fun . nseq(irrefutable) ARROW expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Fun +## + + + +interactive_expr: If True Then If True Then True Else With +## +## Ends in an error in state: 431. +## +## if_then_else(closed_if) -> If expr Then closed_if Else . closed_if [ Else ] +## if_then_else(expr) -> If expr Then closed_if Else . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If expr Then closed_if Else +## + + + +interactive_expr: If True Then If True Then With +## +## Ends in an error in state: 423. +## +## if_then(expr) -> If expr Then . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(closed_if) -> If expr Then . closed_if Else closed_if [ Else ] +## if_then_else(expr) -> If expr Then . closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If expr Then +## + + + +interactive_expr: If True Then If True With +## +## Ends in an error in state: 422. +## +## if_then(expr) -> If expr . Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(closed_if) -> If expr . Then closed_if Else closed_if [ Else ] +## if_then_else(expr) -> If expr . Then closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: If True Then If With +## +## Ends in an error in state: 421. +## +## if_then(expr) -> If . expr Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(closed_if) -> If . expr Then closed_if Else closed_if [ Else ] +## if_then_else(expr) -> If . expr Then closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: If True Then Let Rec WILD EQ Bytes Attr Type +## +## Ends in an error in state: 419. +## +## let_expr(closed_if) -> Let Rec let_binding seq(Attr) . In closed_if [ Else ] +## let_expr(expr) -> Let Rec let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: If True Then Let Rec WILD EQ Bytes In With +## +## Ends in an error in state: 420. +## +## let_expr(closed_if) -> Let Rec let_binding seq(Attr) In . closed_if [ Else ] +## let_expr(expr) -> Let Rec let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) In +## + + + +interactive_expr: If True Then Let Rec WILD EQ Bytes With +## +## Ends in an error in state: 418. +## +## let_expr(closed_if) -> Let Rec let_binding . seq(Attr) In closed_if [ Else ] +## let_expr(expr) -> Let Rec let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: If True Then Let Rec With +## +## Ends in an error in state: 417. +## +## let_expr(closed_if) -> Let Rec . let_binding seq(Attr) In closed_if [ Else ] +## let_expr(expr) -> Let Rec . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec +## + + + +interactive_expr: If True Then Let WILD EQ Bytes Attr Type +## +## Ends in an error in state: 435. +## +## let_expr(closed_if) -> Let let_binding seq(Attr) . In closed_if [ Else ] +## let_expr(expr) -> Let let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: If True Then Let WILD EQ Bytes In With +## +## Ends in an error in state: 436. +## +## let_expr(closed_if) -> Let let_binding seq(Attr) In . closed_if [ Else ] +## let_expr(expr) -> Let let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) In +## + + + +interactive_expr: If True Then Let WILD EQ Bytes With +## +## Ends in an error in state: 434. +## +## let_expr(closed_if) -> Let let_binding . seq(Attr) In closed_if [ Else ] +## let_expr(expr) -> Let let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: If True Then Let With +## +## Ends in an error in state: 416. +## +## let_expr(closed_if) -> Let . let_binding seq(Attr) In closed_if [ Else ] +## let_expr(closed_if) -> Let . Rec let_binding seq(Attr) In closed_if [ Else ] +## let_expr(expr) -> Let . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(expr) -> Let . Rec let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let +## + + + +interactive_expr: If True Then Match True Type +## +## Ends in an error in state: 315. +## +## match_expr(base_cond) -> Match expr . With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## match_expr(base_if_then_else) -> Match expr . With option(VBAR) cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: If True Then Match True With VBAR Begin +## +## Ends in an error in state: 318. +## +## match_expr(base_cond) -> Match expr With option(VBAR) . cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## match_expr(base_if_then_else) -> Match expr With option(VBAR) . cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match expr With option(VBAR) +## + + + +interactive_expr: If True Then Match True With WILD ARROW Bytes VBAR With +## +## Ends in an error in state: 345. +## +## cases(base_cond) -> cases(base_cond) VBAR . case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## cases(base_if_then_else) -> cases(base_cond) VBAR . case_clause(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## cases(base_cond) VBAR +## + + + +interactive_expr: If True Then Match True With WILD ARROW Fun WILD ARROW With +## +## Ends in an error in state: 398. +## +## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## fun_expr(base_if_then_else) -> Fun nseq(irrefutable) ARROW . base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Fun nseq(irrefutable) ARROW +## + + + +interactive_expr: If True Then Match True With WILD ARROW Fun With +## +## Ends in an error in state: 396. +## +## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## fun_expr(base_if_then_else) -> Fun . nseq(irrefutable) ARROW base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Fun +## + + + +interactive_expr: If True Then Match True With WILD ARROW If True Then True Else With +## +## Ends in an error in state: 395. +## +## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_if_then_else) -> If expr Then closed_if Else . base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## If expr Then closed_if Else +## + + + +interactive_expr: If True Then Match True With WILD ARROW If True Then With +## +## Ends in an error in state: 337. +## +## if_then(base_cond) -> If expr Then . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_if_then_else) -> If expr Then . closed_if Else base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## If expr Then +## + + + +interactive_expr: If True Then Match True With WILD ARROW If True With +## +## Ends in an error in state: 336. +## +## if_then(base_cond) -> If expr . Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_if_then_else) -> If expr . Then closed_if Else base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## If 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: If True Then Match True With WILD ARROW If With +## +## Ends in an error in state: 335. +## +## if_then(base_cond) -> If . expr Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_if_then_else) -> If . expr Then closed_if Else base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let Rec WILD EQ Bytes Attr Type +## +## Ends in an error in state: 333. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let Rec let_binding seq(Attr) . In base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let Rec WILD EQ Bytes In With +## +## Ends in an error in state: 334. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let Rec let_binding seq(Attr) In . base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) In +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let Rec WILD EQ Bytes With +## +## Ends in an error in state: 332. +## +## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let Rec let_binding . seq(Attr) In base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let Rec With +## +## Ends in an error in state: 331. +## +## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let Rec . let_binding seq(Attr) In base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let WILD EQ Bytes Attr Type +## +## Ends in an error in state: 410. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let let_binding seq(Attr) . In base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let WILD EQ Bytes In With +## +## Ends in an error in state: 411. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let let_binding seq(Attr) In . base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) In +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let WILD EQ Bytes With +## +## Ends in an error in state: 409. +## +## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let let_binding . seq(Attr) In base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: If True Then Match True With WILD ARROW Let With +## +## Ends in an error in state: 330. +## +## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_if_then_else) -> Let . let_binding seq(Attr) In base_if_then_else [ Else ] +## let_expr(base_if_then_else) -> Let . Rec let_binding seq(Attr) In base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## Let +## + + + +interactive_expr: If True Then Match True With WILD ARROW With +## +## Ends in an error in state: 329. +## +## case_clause(base_cond) -> pattern ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## case_clause(base_if_then_else) -> pattern ARROW . base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## pattern ARROW +## + + + +interactive_expr: If True Then Match True With WILD CONS Bytes SEMI +## +## Ends in an error in state: 328. +## +## case_clause(base_cond) -> pattern . ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## case_clause(base_if_then_else) -> pattern . ARROW base_if_then_else [ Else ] +## +## The known suffix of the stack is as follows: +## pattern +## +## 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 95, spurious reduction of production tail -> sub_pattern +## In state 322, spurious reduction of production pattern -> sub_pattern CONS tail +## + + + +interactive_expr: If True Then Match True With With +## +## Ends in an error in state: 316. +## +## match_expr(base_cond) -> Match expr With . option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## match_expr(base_if_then_else) -> Match expr With . option(VBAR) cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match expr With +## + + + +interactive_expr: If True Then Match With +## +## Ends in an error in state: 314. +## +## match_expr(base_cond) -> Match . expr With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## match_expr(base_if_then_else) -> Match . expr With option(VBAR) cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match +## + + + +interactive_expr: If True Then True COMMA Bytes VBAR +## +## Ends in an error in state: 427. +## +## base_expr(closed_if) -> tuple_expr . [ Else ] +## base_expr(expr) -> tuple_expr . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## tuple_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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 295, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level +## In state 294, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) +## In state 216, spurious reduction of production tuple_expr -> tuple(disj_expr_level) +## + + + +interactive_expr: If True Then True Else With +## +## Ends in an error in state: 439. +## +## if_then_else(expr) -> If expr Then closed_if Else . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If expr Then closed_if Else +## + + + +interactive_expr: If True Then True VBAR +## +## Ends in an error in state: 428. +## +## base_expr(closed_if) -> disj_expr_level . [ Else ] +## base_expr(expr) -> disj_expr_level . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ With Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR Attr ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ With Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR Attr ] +## tuple(disj_expr_level) -> disj_expr_level . COMMA nsepseq(disj_expr_level,COMMA) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End Else EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## + + + +interactive_expr: If True Then With +## +## Ends in an error in state: 313. +## +## if_then(expr) -> If expr Then . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(expr) -> If expr Then . closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If expr Then +## + + + +interactive_expr: If True With +## +## Ends in an error in state: 312. +## +## if_then(expr) -> If expr . Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(expr) -> If expr . Then closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: If With +## +## Ends in an error in state: 179. +## +## if_then(expr) -> If . expr Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(expr) -> If . expr Then closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: LBRACE Constr DOT Ident With +## +## Ends in an error in state: 443. +## +## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With ] +## +## The known suffix of the stack is as follows: +## Constr DOT Ident +## + + + +interactive_expr: LBRACE Constr DOT With +## +## Ends in an error in state: 442. +## +## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With ] +## +## The known suffix of the stack is as follows: +## Constr DOT +## + + + +interactive_expr: LBRACE Constr With +## +## Ends in an error in state: 441. +## +## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +interactive_expr: LBRACE Ident DOT Ident VBAR +## +## Ends in an error in state: 447. +## +## update_record -> LBRACE path . With sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LBRACE path +## +## 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 184, spurious reduction of production nsepseq(selection,DOT) -> selection +## In state 187, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) +## In state 446, spurious reduction of production path -> projection +## + + + +interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes SEMI With +## +## Ends in an error in state: 474. +## +## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_assignment SEMI +## + + + +interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes With +## +## Ends in an error in state: 473. +## +## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACE ] +## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_assignment,SEMI)) -> field_assignment . SEMI seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_assignment +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 440, spurious reduction of production field_assignment -> Ident EQ expr +## + + + +interactive_expr: LBRACE Ident EQ Bytes SEMI Ident With +## +## Ends in an error in state: 470. +## +## field_assignment -> Ident . EQ expr [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE Ident EQ Bytes SEMI With +## +## Ends in an error in state: 469. +## +## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_assignment SEMI +## + + + +interactive_expr: LBRACE Ident EQ Bytes With +## +## Ends in an error in state: 468. +## +## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACE ] +## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_assignment,SEMI)) -> field_assignment . SEMI seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_assignment +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 440, spurious reduction of production field_assignment -> Ident EQ expr +## + + + +interactive_expr: LBRACE Ident EQ With +## +## Ends in an error in state: 177. +## +## field_assignment -> Ident EQ . expr [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Ident EQ +## + + + +interactive_expr: LBRACE Ident WILD +## +## Ends in an error in state: 176. +## +## field_assignment -> Ident . EQ expr [ SEMI RBRACE ] +## path -> Ident . [ With ] +## projection -> Ident . DOT nsepseq(selection,DOT) [ With ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE Ident With Ident DOT With +## +## Ends in an error in state: 450. +## +## nsepseq(field_name,DOT) -> Ident DOT . nsepseq(field_name,DOT) [ EQ ] +## +## The known suffix of the stack is as follows: +## Ident DOT +## + + + +interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes SEMI With +## +## Ends in an error in state: 464. +## +## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_path_assignment SEMI +## + + + +interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes With +## +## Ends in an error in state: 463. +## +## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACE ] +## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment . SEMI seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_path_assignment +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 458, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) EQ expr +## + + + +interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI With +## +## Ends in an error in state: 460. +## +## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_path_assignment SEMI +## + + + +interactive_expr: LBRACE Ident With Ident EQ Bytes With +## +## Ends in an error in state: 459. +## +## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACE ] +## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment . SEMI seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_path_assignment +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 458, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) EQ expr +## + + + +interactive_expr: LBRACE Ident With Ident EQ With +## +## Ends in an error in state: 457. +## +## field_path_assignment -> nsepseq(field_name,DOT) EQ . expr [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## nsepseq(field_name,DOT) EQ +## + + + +interactive_expr: LBRACE Ident With Ident With +## +## Ends in an error in state: 449. +## +## nsepseq(field_name,DOT) -> Ident . [ EQ ] +## nsepseq(field_name,DOT) -> Ident . DOT nsepseq(field_name,DOT) [ EQ ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE Ident With With +## +## Ends in an error in state: 448. +## +## update_record -> LBRACE path With . sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LBRACE path With +## + + + +interactive_expr: LBRACE With +## +## Ends in an error in state: 175. +## +## record_expr -> LBRACE . sep_or_term_list(field_assignment,SEMI) RBRACE [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## update_record -> LBRACE . path With sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +interactive_expr: LBRACKET True End +## +## Ends in an error in state: 479. +## +## list__(expr) -> LBRACKET option(sep_or_term_list(expr,SEMI)) . RBRACKET [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 243, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 221, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 217, spurious reduction of production option(sep_or_term_list(expr,SEMI)) -> sep_or_term_list(expr,SEMI) +## + + + +interactive_expr: LBRACKET True SEMI True SEMI With +## +## Ends in an error in state: 248. +## +## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET End ] +## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] +## +## The known suffix of the stack is as follows: +## expr SEMI +## + + + +interactive_expr: LBRACKET True SEMI True With +## +## Ends in an error in state: 247. +## +## nsepseq(expr,SEMI) -> expr . [ RBRACKET End ] +## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET End ] +## seq(__anonymous_0(expr,SEMI)) -> expr . SEMI seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: LBRACKET True SEMI With +## +## Ends in an error in state: 244. +## +## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET End ] +## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] +## +## The known suffix of the stack is as follows: +## expr SEMI +## + + + +interactive_expr: LBRACKET True With +## +## Ends in an error in state: 243. +## +## nsepseq(expr,SEMI) -> expr . [ RBRACKET End ] +## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET End ] +## nseq(__anonymous_0(expr,SEMI)) -> expr . SEMI seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: LBRACKET With +## +## Ends in an error in state: 167. +## +## list__(expr) -> LBRACKET . option(sep_or_term_list(expr,SEMI)) RBRACKET [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LBRACKET +## + + + +interactive_expr: LPAR True COLON Ident VBAR +## +## Ends in an error in state: 510. +## +## par(__anonymous_1) -> LPAR expr COLON type_expr . RPAR [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LPAR expr COLON type_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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## + + + +interactive_expr: LPAR True COLON With +## +## Ends in an error in state: 509. +## +## par(__anonymous_1) -> LPAR expr COLON . type_expr RPAR [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LPAR expr COLON +## + + + +interactive_expr: LPAR True With +## +## Ends in an error in state: 507. +## +## par(__anonymous_1) -> LPAR expr . COLON type_expr RPAR [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## par(expr) -> LPAR expr . RPAR [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LPAR 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: LPAR With +## +## Ends in an error in state: 164. +## +## par(__anonymous_1) -> LPAR . expr COLON type_expr RPAR [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## par(expr) -> LPAR . expr RPAR [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## unit -> LPAR . RPAR [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +interactive_expr: Let Rec WILD EQ Bytes Attr Type +## +## Ends in an error in state: 173. +## +## let_expr(expr) -> Let Rec let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Let Rec WILD EQ Bytes In With +## +## Ends in an error in state: 174. +## +## let_expr(expr) -> Let Rec let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) In +## + + + +interactive_expr: Let Rec WILD EQ Bytes With +## +## Ends in an error in state: 170. +## +## let_expr(expr) -> Let Rec let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Let Rec With +## +## Ends in an error in state: 169. +## +## let_expr(expr) -> Let Rec . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec +## + + + +interactive_expr: Let WILD EQ Bytes Attr Type +## +## Ends in an error in state: 477. +## +## let_expr(expr) -> Let let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Let WILD EQ Bytes In With +## +## Ends in an error in state: 478. +## +## let_expr(expr) -> Let let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) In +## + + + +interactive_expr: Let WILD EQ Bytes With +## +## Ends in an error in state: 476. +## +## let_expr(expr) -> Let let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Let With +## +## Ends in an error in state: 168. +## +## let_expr(expr) -> Let . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(expr) -> Let . Rec let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let +## + + + +interactive_expr: MINUS With +## +## Ends in an error in state: 166. +## +## unary_expr_level -> MINUS . call_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## MINUS +## + + + +interactive_expr: Match True Type +## +## Ends in an error in state: 482. +## +## match_expr(base_cond) -> Match expr . With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Match 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Match True With LPAR Bytes RPAR With +## +## Ends in an error in state: 320. +## +## pattern -> sub_pattern . CONS tail [ ARROW ] +## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern +## + + + +interactive_expr: Match True With VBAR Begin +## +## Ends in an error in state: 484. +## +## match_expr(base_cond) -> Match expr With option(VBAR) . cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Match expr With option(VBAR) +## + + + +interactive_expr: Match True With WILD ARROW Bytes VBAR With +## +## Ends in an error in state: 506. +## +## cases(base_cond) -> cases(base_cond) VBAR . case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## cases(base_cond) VBAR +## + + + +interactive_expr: Match True With WILD ARROW Fun WILD ARROW With +## +## Ends in an error in state: 499. +## +## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Fun nseq(irrefutable) ARROW +## + + + +interactive_expr: Match True With WILD ARROW Fun With +## +## Ends in an error in state: 497. +## +## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Fun +## + + + +interactive_expr: Match True With WILD ARROW If True Then Fun WILD ARROW With +## +## Ends in an error in state: 360. +## +## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## fun_expr(closed_if) -> Fun nseq(irrefutable) ARROW . closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Fun nseq(irrefutable) ARROW +## + + + +interactive_expr: Match True With WILD ARROW If True Then Fun With +## +## Ends in an error in state: 358. +## +## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## fun_expr(closed_if) -> Fun . nseq(irrefutable) ARROW closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Fun +## + + + +interactive_expr: Match True With WILD ARROW If True Then If True Then True Else With +## +## Ends in an error in state: 379. +## +## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(closed_if) -> If expr Then closed_if Else . closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## If expr Then closed_if Else +## + + + +interactive_expr: Match True With WILD ARROW If True Then If True Then With +## +## Ends in an error in state: 357. +## +## if_then(base_cond) -> If expr Then . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(closed_if) -> If expr Then . closed_if Else closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## If expr Then +## + + + +interactive_expr: Match True With WILD ARROW If True Then If True With +## +## Ends in an error in state: 356. +## +## if_then(base_cond) -> If expr . Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(closed_if) -> If expr . Then closed_if Else closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## If 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Match True With WILD ARROW If True Then If With +## +## Ends in an error in state: 355. +## +## if_then(base_cond) -> If . expr Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(closed_if) -> If . expr Then closed_if Else closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let Rec WILD EQ Bytes Attr Type +## +## Ends in an error in state: 353. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let Rec let_binding seq(Attr) . In closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let Rec WILD EQ Bytes In With +## +## Ends in an error in state: 354. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let Rec let_binding seq(Attr) In . closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) In +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let Rec WILD EQ Bytes With +## +## Ends in an error in state: 352. +## +## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let Rec let_binding . seq(Attr) In closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let Rec With +## +## Ends in an error in state: 351. +## +## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let Rec . let_binding seq(Attr) In closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Let Rec +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let WILD EQ Bytes Attr Type +## +## Ends in an error in state: 390. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let let_binding seq(Attr) . In closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let WILD EQ Bytes In With +## +## Ends in an error in state: 391. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let let_binding seq(Attr) In . closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) In +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let WILD EQ Bytes With +## +## Ends in an error in state: 389. +## +## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let let_binding . seq(Attr) In closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Match True With WILD ARROW If True Then Let With +## +## Ends in an error in state: 350. +## +## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(closed_if) -> Let . let_binding seq(Attr) In closed_if [ Else ] +## let_expr(closed_if) -> Let . Rec let_binding seq(Attr) In closed_if [ Else ] +## +## The known suffix of the stack is as follows: +## Let +## + + + +interactive_expr: Match True With WILD ARROW If True Then Match True Type +## +## Ends in an error in state: 339. +## +## match_expr(base_if_then_else) -> Match expr . With option(VBAR) cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Match True With WILD ARROW If True Then Match True With VBAR Begin +## +## Ends in an error in state: 341. +## +## match_expr(base_if_then_else) -> Match expr With option(VBAR) . cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match expr With option(VBAR) +## + + + +interactive_expr: Match True With WILD ARROW If True Then Match True With WILD ARROW Bytes With +## +## Ends in an error in state: 344. +## +## cases(base_cond) -> cases(base_cond) . VBAR case_clause(base_cond) [ VBAR ] +## cases(base_if_then_else) -> cases(base_cond) . VBAR case_clause(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## cases(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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 403, spurious reduction of production base_expr(base_cond) -> disj_expr_level +## In state 375, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 376, spurious reduction of production base_cond -> base_cond__open(base_cond) +## In state 414, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond +## In state 349, spurious reduction of production cases(base_cond) -> case_clause(base_cond) +## + + + +interactive_expr: Match True With WILD ARROW If True Then Match True With With +## +## Ends in an error in state: 340. +## +## match_expr(base_if_then_else) -> Match expr With . option(VBAR) cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match expr With +## + + + +interactive_expr: Match True With WILD ARROW If True Then Match With +## +## Ends in an error in state: 338. +## +## match_expr(base_if_then_else) -> Match . expr With option(VBAR) cases(base_if_then_else) [ Else ] +## +## The known suffix of the stack is as follows: +## Match +## + + + +interactive_expr: Match True With WILD ARROW If True Then True Else With +## +## Ends in an error in state: 496. +## +## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If expr Then closed_if Else +## + + + +interactive_expr: Match True With WILD ARROW If True Then With +## +## Ends in an error in state: 494. +## +## if_then(base_cond) -> If expr Then . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If expr Then +## + + + +interactive_expr: Match True With WILD ARROW If True With +## +## Ends in an error in state: 493. +## +## if_then(base_cond) -> If expr . Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Match True With WILD ARROW If With +## +## Ends in an error in state: 492. +## +## if_then(base_cond) -> If . expr Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: Match True With WILD ARROW Let Rec WILD EQ Bytes Attr Type +## +## Ends in an error in state: 490. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Match True With WILD ARROW Let Rec WILD EQ Bytes In With +## +## Ends in an error in state: 491. +## +## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec let_binding seq(Attr) In +## + + + +interactive_expr: Match True With WILD ARROW Let Rec WILD EQ Bytes With +## +## Ends in an error in state: 489. +## +## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Match True With WILD ARROW Let Rec With +## +## Ends in an error in state: 488. +## +## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let Rec +## + + + +interactive_expr: Match True With WILD ARROW Let WILD EQ Bytes Attr Type +## +## Ends in an error in state: 503. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) +## +## 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 171, spurious reduction of production seq(Attr) -> +## In state 172, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## + + + +interactive_expr: Match True With WILD ARROW Let WILD EQ Bytes In With +## +## Ends in an error in state: 504. +## +## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let let_binding seq(Attr) In +## + + + +interactive_expr: Match True With WILD ARROW Let WILD EQ Bytes With +## +## Ends in an error in state: 502. +## +## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +interactive_expr: Match True With WILD ARROW Let With +## +## Ends in an error in state: 487. +## +## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Let +## + + + +interactive_expr: Match True With WILD ARROW True COMMA Bytes Else +## +## Ends in an error in state: 505. +## +## cases(base_cond) -> cases(base_cond) . VBAR case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## match_expr(base_cond) -> Match expr With option(VBAR) cases(base_cond) . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Match expr With option(VBAR) cases(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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 295, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level +## In state 294, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) +## In state 216, spurious reduction of production tuple_expr -> tuple(disj_expr_level) +## In state 500, spurious reduction of production base_expr(base_cond) -> tuple_expr +## In state 375, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 376, spurious reduction of production base_cond -> base_cond__open(base_cond) +## In state 414, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond +## In state 349, spurious reduction of production cases(base_cond) -> case_clause(base_cond) +## + + + +interactive_expr: Match True With WILD ARROW True Else +## +## Ends in an error in state: 501. +## +## base_expr(base_cond) -> disj_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End EOF COMMA COLON BOOL_OR Attr ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End EOF COMMA COLON BOOL_OR Attr ] +## tuple(disj_expr_level) -> disj_expr_level . COMMA nsepseq(disj_expr_level,COMMA) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## + + + +interactive_expr: Match True With WILD ARROW With +## +## Ends in an error in state: 486. +## +## case_clause(base_cond) -> pattern ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## pattern ARROW +## + + + +interactive_expr: Match True With WILD COMMA WILD COMMA With +## +## Ends in an error in state: 325. +## +## nsepseq(sub_pattern,COMMA) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern COMMA +## + + + +interactive_expr: Match True With WILD COMMA WILD With +## +## Ends in an error in state: 324. +## +## nsepseq(sub_pattern,COMMA) -> sub_pattern . [ ARROW ] +## nsepseq(sub_pattern,COMMA) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern +## + + + +interactive_expr: Match True With WILD COMMA With +## +## Ends in an error in state: 323. +## +## tuple(sub_pattern) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern COMMA +## + + + +interactive_expr: Match True With WILD CONS Bytes SEMI +## +## Ends in an error in state: 485. +## +## case_clause(base_cond) -> pattern . ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## pattern +## +## 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 95, spurious reduction of production tail -> sub_pattern +## In state 322, spurious reduction of production pattern -> sub_pattern CONS tail +## + + + +interactive_expr: Match True With WILD CONS With +## +## Ends in an error in state: 321. +## +## pattern -> sub_pattern CONS . tail [ ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern CONS +## + + + +interactive_expr: Match True With WILD With +## +## Ends in an error in state: 342. +## +## pattern -> core_pattern . [ ARROW ] +## sub_pattern -> core_pattern . [ CONS COMMA ] +## +## The known suffix of the stack is as follows: +## core_pattern +## + + + +interactive_expr: Match True With With +## +## Ends in an error in state: 483. +## +## match_expr(base_cond) -> Match expr With . option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Match expr With +## + + + +interactive_expr: Match With +## +## Ends in an error in state: 165. +## +## match_expr(base_cond) -> Match . expr With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## Match +## + + + +interactive_expr: Not With +## +## Ends in an error in state: 161. +## +## unary_expr_level -> Not . call_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Not +## + + + +interactive_expr: True BOOL_AND With +## +## Ends in an error in state: 270. +## +## bin_op(conj_expr_level,BOOL_AND,comp_expr_level) -> conj_expr_level BOOL_AND . comp_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## conj_expr_level BOOL_AND +## + + + +interactive_expr: True BOOL_OR With +## +## Ends in an error in state: 301. +## +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level BOOL_OR . conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level BOOL_OR +## + + + +interactive_expr: True CAT With +## +## Ends in an error in state: 253. +## +## bin_op(cons_expr_level,CAT,cat_expr_level) -> cons_expr_level CAT . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## cons_expr_level CAT +## + + + +interactive_expr: True COMMA True COMMA With +## +## Ends in an error in state: 296. +## +## nsepseq(disj_expr_level,COMMA) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End Else EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level COMMA +## + + + +interactive_expr: True COMMA With +## +## Ends in an error in state: 293. +## +## tuple(disj_expr_level) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In End Else EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level COMMA +## + + + +interactive_expr: True CONS With +## +## Ends in an error in state: 267. +## +## bin_op(add_expr_level,CONS,cons_expr_level) -> add_expr_level CONS . cons_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## add_expr_level CONS +## + + + +interactive_expr: True Constr With +## +## Ends in an error in state: 199. +## +## module_field -> Constr . DOT module_fun [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +interactive_expr: True EQ With +## +## Ends in an error in state: 282. +## +## bin_op(comp_expr_level,EQ,cat_expr_level) -> comp_expr_level EQ . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## comp_expr_level EQ +## + + + +interactive_expr: True GE With +## +## Ends in an error in state: 280. +## +## bin_op(comp_expr_level,GE,cat_expr_level) -> comp_expr_level GE . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## comp_expr_level GE +## + + + +interactive_expr: True GT With +## +## Ends in an error in state: 278. +## +## bin_op(comp_expr_level,GT,cat_expr_level) -> comp_expr_level GT . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## comp_expr_level GT +## + + + +interactive_expr: True LE With +## +## Ends in an error in state: 276. +## +## bin_op(comp_expr_level,LE,cat_expr_level) -> comp_expr_level LE . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## comp_expr_level LE +## + + + +interactive_expr: True LT With +## +## Ends in an error in state: 274. +## +## bin_op(comp_expr_level,LT,cat_expr_level) -> comp_expr_level LT . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## comp_expr_level LT +## + + + +interactive_expr: True MINUS C_None WILD +## +## Ends in an error in state: 266. +## +## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS mult_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## add_expr_level MINUS mult_expr_level +## + + + +interactive_expr: True MINUS With +## +## Ends in an error in state: 265. +## +## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS . mult_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## add_expr_level MINUS +## + + + +interactive_expr: True Mod With +## +## Ends in an error in state: 236. +## +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level Mod . unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## mult_expr_level Mod +## + + + +interactive_expr: True NE With +## +## Ends in an error in state: 272. +## +## bin_op(comp_expr_level,NE,cat_expr_level) -> comp_expr_level NE . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## comp_expr_level NE +## + + + +interactive_expr: True Or With +## +## Ends in an error in state: 251. +## +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level Or . conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level Or +## + + + +interactive_expr: True PLUS C_None WILD +## +## Ends in an error in state: 264. +## +## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS mult_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## add_expr_level PLUS mult_expr_level +## + + + +interactive_expr: True PLUS With +## +## Ends in an error in state: 263. +## +## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS . mult_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## add_expr_level PLUS +## + + + +interactive_expr: True SLASH With +## +## Ends in an error in state: 234. +## +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level SLASH . unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## mult_expr_level SLASH +## + + + +interactive_expr: True TIMES With +## +## Ends in an error in state: 223. +## +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level TIMES . unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## mult_expr_level TIMES +## + + + +interactive_expr: True True True WILD +## +## Ends in an error in state: 229. +## +## seq(core_expr) -> core_expr . seq(core_expr) [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## core_expr +## + + + +interactive_expr: True True WILD +## +## Ends in an error in state: 227. +## +## nseq(core_expr) -> core_expr . seq(core_expr) [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## core_expr +## + + + +interactive_expr: True VBAR +## +## Ends in an error in state: 250. +## +## base_expr(expr) -> disj_expr_level . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ With Type Then SEMI RPAR RBRACKET RBRACE Or Let In End EOF COMMA COLON BOOL_OR Attr ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ With Type Then SEMI RPAR RBRACKET RBRACE Or Let In End EOF COMMA COLON BOOL_OR Attr ] +## tuple(disj_expr_level) -> disj_expr_level . COMMA nsepseq(disj_expr_level,COMMA) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In End EOF COLON Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## + + + +interactive_expr: True WILD +## +## Ends in an error in state: 225. +## +## call_expr -> core_expr . nseq(core_expr) [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## call_expr_level -> core_expr . [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## core_expr +## + + + +interactive_expr: True With +## +## Ends in an error in state: 527. +## +## interactive_expr -> expr . EOF [ # ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: With +## +## Ends in an error in state: 525. +## +## interactive_expr' -> . interactive_expr [ # ] +## +## The known suffix of the stack is as follows: +## +## + + + +contract: Let Ident WILD COLON Ident VBAR +## +## Ends in an error in state: 157. +## +## let_binding -> Ident nseq(sub_irrefutable) option(type_annotation) . EQ expr [ Type Let In EOF Attr ] +## +## The known suffix of the stack is as follows: +## Ident nseq(sub_irrefutable) option(type_annotation) +## +## 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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## In state 155, spurious reduction of production type_annotation -> COLON type_expr +## In state 156, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let Ident WILD EQ With +## +## Ends in an error in state: 158. +## +## let_binding -> Ident nseq(sub_irrefutable) option(type_annotation) EQ . expr [ Type Let In EOF Attr ] +## +## The known suffix of the stack is as follows: +## Ident nseq(sub_irrefutable) option(type_annotation) EQ +## + + + +contract: Let Ident WILD WILD With +## +## Ends in an error in state: 150. +## +## seq(sub_irrefutable) -> sub_irrefutable . seq(sub_irrefutable) [ EQ COLON ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable +## + + + +contract: Let Ident WILD With +## +## Ends in an error in state: 149. +## +## nseq(sub_irrefutable) -> sub_irrefutable . seq(sub_irrefutable) [ EQ COLON ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable +## + + + +contract: Let Ident With +## +## Ends in an error in state: 148. +## +## let_binding -> Ident . nseq(sub_irrefutable) option(type_annotation) EQ expr [ Type Let In EOF Attr ] +## sub_irrefutable -> Ident . [ EQ COMMA COLON ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Let LBRACE Ident EQ Bytes SEMI Ident EQ Bytes SEMI With +## +## Ends in an error in state: 126. +## +## nsepseq(field_pattern,SEMI) -> field_pattern SEMI . nsepseq(field_pattern,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_pattern,SEMI)) -> field_pattern SEMI . seq(__anonymous_0(field_pattern,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_pattern SEMI +## + + + +contract: Let LBRACE Ident EQ Bytes SEMI Ident EQ Bytes With +## +## Ends in an error in state: 125. +## +## nsepseq(field_pattern,SEMI) -> field_pattern . [ RBRACE ] +## nsepseq(field_pattern,SEMI) -> field_pattern . SEMI nsepseq(field_pattern,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_pattern,SEMI)) -> field_pattern . SEMI seq(__anonymous_0(field_pattern,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_pattern +## + + + +contract: Let LBRACE Ident EQ Bytes SEMI With +## +## Ends in an error in state: 122. +## +## nsepseq(field_pattern,SEMI) -> field_pattern SEMI . nsepseq(field_pattern,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_pattern,SEMI)) -> field_pattern SEMI . seq(__anonymous_0(field_pattern,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_pattern SEMI +## + + + +contract: Let LBRACE Ident EQ Bytes With +## +## Ends in an error in state: 121. +## +## nsepseq(field_pattern,SEMI) -> field_pattern . [ RBRACE ] +## nsepseq(field_pattern,SEMI) -> field_pattern . SEMI nsepseq(field_pattern,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_pattern,SEMI)) -> field_pattern . SEMI seq(__anonymous_0(field_pattern,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_pattern +## + + + +contract: Let LBRACE Ident EQ With +## +## Ends in an error in state: 68. +## +## field_pattern -> Ident EQ . sub_pattern [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Ident EQ +## + + + +contract: Let LBRACE Ident With +## +## Ends in an error in state: 67. +## +## field_pattern -> Ident . EQ sub_pattern [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Let LBRACE With +## +## Ends in an error in state: 66. +## +## record_pattern -> LBRACE . sep_or_term_list(field_pattern,SEMI) RBRACE [ WILD SEMI RPAR RBRACKET RBRACE LPAR LBRACE Ident EQ Constr CONS COMMA COLON ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +contract: Let LPAR Constr C_Some With +## +## Ends in an error in state: 79. +## +## constr_pattern -> C_Some . sub_pattern [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## C_Some +## + + + +contract: Let LPAR Constr Constr With +## +## Ends in an error in state: 78. +## +## constr_pattern -> Constr . [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## constr_pattern -> Constr . sub_pattern [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Let LPAR Constr LBRACKET WILD RPAR +## +## Ends in an error in state: 91. +## +## nsepseq(tail,SEMI) -> tail . [ RBRACKET ] +## nsepseq(tail,SEMI) -> tail . SEMI nsepseq(tail,SEMI) [ RBRACKET ] +## nseq(__anonymous_0(tail,SEMI)) -> tail . SEMI seq(__anonymous_0(tail,SEMI)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## tail +## +## 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 95, spurious reduction of production tail -> sub_pattern +## + + + +contract: Let LPAR Constr LBRACKET WILD SEMI WILD RPAR +## +## Ends in an error in state: 93. +## +## nsepseq(tail,SEMI) -> tail . [ RBRACKET ] +## nsepseq(tail,SEMI) -> tail . SEMI nsepseq(tail,SEMI) [ RBRACKET ] +## seq(__anonymous_0(tail,SEMI)) -> tail . SEMI seq(__anonymous_0(tail,SEMI)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## tail +## +## 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 95, spurious reduction of production tail -> sub_pattern +## + + + +contract: Let LPAR Constr LBRACKET WILD SEMI WILD SEMI With +## +## Ends in an error in state: 94. +## +## nsepseq(tail,SEMI) -> tail SEMI . nsepseq(tail,SEMI) [ RBRACKET ] +## seq(__anonymous_0(tail,SEMI)) -> tail SEMI . seq(__anonymous_0(tail,SEMI)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## tail SEMI +## + + + +contract: Let LPAR Constr LBRACKET WILD SEMI With +## +## Ends in an error in state: 92. +## +## nsepseq(tail,SEMI) -> tail SEMI . nsepseq(tail,SEMI) [ RBRACKET ] +## nseq(__anonymous_0(tail,SEMI)) -> tail SEMI . seq(__anonymous_0(tail,SEMI)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## tail SEMI +## + + + +contract: Let LPAR Constr LBRACKET With +## +## Ends in an error in state: 74. +## +## list__(tail) -> LBRACKET . option(sep_or_term_list(tail,SEMI)) RBRACKET [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET +## + + + +contract: Let LPAR Constr LPAR WILD COMMA WILD COMMA With +## +## Ends in an error in state: 111. +## +## nsepseq(tail,COMMA) -> tail COMMA . nsepseq(tail,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## tail COMMA +## + + + +contract: Let LPAR Constr LPAR WILD COMMA WILD SEMI +## +## Ends in an error in state: 110. +## +## nsepseq(tail,COMMA) -> tail . [ RPAR ] +## nsepseq(tail,COMMA) -> tail . COMMA nsepseq(tail,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## tail +## +## 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 95, spurious reduction of production tail -> sub_pattern +## + + + +contract: Let LPAR Constr LPAR WILD COMMA With +## +## Ends in an error in state: 109. +## +## tuple(tail) -> tail COMMA . nsepseq(tail,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## tail COMMA +## + + + +contract: Let LPAR Constr LPAR WILD CONS With +## +## Ends in an error in state: 96. +## +## tail -> sub_pattern CONS . tail [ SEMI RPAR RBRACKET COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern CONS +## + + + +contract: Let LPAR Constr LPAR WILD SEMI +## +## Ends in an error in state: 107. +## +## par(tail) -> LPAR tail . RPAR [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## tuple(tail) -> tail . COMMA nsepseq(tail,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## LPAR tail +## +## 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 95, spurious reduction of production tail -> sub_pattern +## + + + +contract: Let LPAR Constr LPAR WILD With +## +## Ends in an error in state: 95. +## +## tail -> sub_pattern . [ SEMI RPAR RBRACKET COMMA ARROW ] +## tail -> sub_pattern . CONS tail [ SEMI RPAR RBRACKET COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern +## + + + +contract: Let LPAR Constr LPAR With +## +## Ends in an error in state: 73. +## +## par(ptuple) -> LPAR . ptuple RPAR [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## par(tail) -> LPAR . tail RPAR [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## unit -> LPAR . RPAR [ SEMI RPAR RBRACKET RBRACE CONS COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Let LPAR Constr WILD With +## +## Ends in an error in state: 146. +## +## par(closed_irrefutable) -> LPAR closed_irrefutable . RPAR [ WILD RPAR LPAR LBRACE Ident EQ Constr COMMA COLON ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR closed_irrefutable +## + + + +contract: Let LPAR Constr With +## +## Ends in an error in state: 129. +## +## closed_irrefutable -> Constr . sub_pattern [ RPAR ] +## sub_irrefutable -> Constr . [ RPAR COMMA COLON ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Let LPAR WILD COLON With +## +## Ends in an error in state: 144. +## +## typed_pattern -> irrefutable COLON . type_expr [ RPAR ] +## +## The known suffix of the stack is as follows: +## irrefutable COLON +## + + + +contract: Let LPAR WILD WILD +## +## Ends in an error in state: 143. +## +## closed_irrefutable -> irrefutable . [ RPAR ] +## typed_pattern -> irrefutable . COLON type_expr [ RPAR ] +## +## The known suffix of the stack is as follows: +## irrefutable +## +## 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 134, spurious reduction of production irrefutable -> sub_irrefutable +## + + + +contract: Let LPAR With +## +## Ends in an error in state: 64. +## +## par(closed_irrefutable) -> LPAR . closed_irrefutable RPAR [ WILD RPAR LPAR LBRACE Ident EQ Constr COMMA COLON ARROW ] +## unit -> LPAR . RPAR [ WILD RPAR LPAR LBRACE Ident EQ Constr COMMA COLON ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Let Rec WILD EQ Bytes With +## +## Ends in an error in state: 514. +## +## let_declaration -> Let Rec let_binding . seq(Attr) [ Type Let EOF ] +## +## The known suffix of the stack is as follows: +## Let Rec 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +contract: Let Rec With +## +## Ends in an error in state: 63. +## +## let_declaration -> Let Rec . let_binding seq(Attr) [ Type Let EOF ] +## +## The known suffix of the stack is as follows: +## Let Rec +## + + + +contract: Let WILD COLON Ident VBAR +## +## Ends in an error in state: 386. +## +## let_binding -> irrefutable option(type_annotation) . EQ expr [ Type Let In EOF Attr ] +## +## The known suffix of the stack is as follows: +## irrefutable option(type_annotation) +## +## 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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## In state 155, spurious reduction of production type_annotation -> COLON type_expr +## In state 156, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let WILD COLON With +## +## Ends in an error in state: 154. +## +## type_annotation -> COLON . type_expr [ EQ ] +## +## The known suffix of the stack is as follows: +## COLON +## + + + +contract: Let WILD COMMA WILD COMMA With +## +## Ends in an error in state: 138. +## +## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ WILD RPAR LPAR LBRACE Ident EQ Constr COLON ARROW ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable COMMA +## + + + +contract: Let WILD COMMA WILD With +## +## Ends in an error in state: 137. +## +## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . [ WILD RPAR LPAR LBRACE Ident EQ Constr COLON ARROW ] +## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ WILD RPAR LPAR LBRACE Ident EQ Constr COLON ARROW ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable +## + + + +contract: Let WILD COMMA With +## +## Ends in an error in state: 135. +## +## tuple(sub_irrefutable) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ WILD RPAR LPAR LBRACE Ident EQ Constr COLON ARROW ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable COMMA +## + + + +contract: Let WILD EQ Bytes Attr With +## +## Ends in an error in state: 171. +## +## seq(Attr) -> Attr . seq(Attr) [ Type Let In EOF ] +## +## The known suffix of the stack is as follows: +## Attr +## + + + +contract: Let WILD EQ Bytes With +## +## Ends in an error in state: 516. +## +## let_declaration -> Let let_binding . seq(Attr) [ Type Let EOF ] +## +## The known suffix of the stack is as follows: +## 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 225, spurious reduction of production call_expr_level -> core_expr +## In state 232, spurious reduction of production unary_expr_level -> call_expr_level +## In state 214, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 222, spurious reduction of production add_expr_level -> mult_expr_level +## In state 262, spurious reduction of production cons_expr_level -> add_expr_level +## In state 252, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 284, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 291, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 298, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 250, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 304, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 305, spurious reduction of production expr -> base_cond__open(expr) +## In state 388, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## + + + +contract: Let WILD EQ With +## +## Ends in an error in state: 387. +## +## let_binding -> irrefutable option(type_annotation) EQ . expr [ Type Let In EOF Attr ] +## +## The known suffix of the stack is as follows: +## irrefutable option(type_annotation) EQ +## + + + +contract: Let WILD WILD +## +## Ends in an error in state: 385. +## +## let_binding -> irrefutable . option(type_annotation) EQ expr [ Type Let In EOF Attr ] +## +## The known suffix of the stack is as follows: +## irrefutable +## +## 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 134, spurious reduction of production irrefutable -> sub_irrefutable +## + + + +contract: Let WILD With +## +## Ends in an error in state: 134. +## +## irrefutable -> sub_irrefutable . [ WILD RPAR LPAR LBRACE Ident EQ Constr COLON ARROW ] +## tuple(sub_irrefutable) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ WILD RPAR LPAR LBRACE Ident EQ Constr COLON ARROW ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable +## + + + +contract: Let With +## +## Ends in an error in state: 61. +## +## let_declaration -> Let . let_binding seq(Attr) [ Type Let EOF ] +## let_declaration -> Let . Rec let_binding seq(Attr) [ Type Let EOF ] +## +## The known suffix of the stack is as follows: +## Let +## + + + +contract: Type Ident EQ Constr DOT With +## +## Ends in an error in state: 13. +## +## core_type -> Constr DOT . Ident [ VBAR Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## Constr DOT +## + + + +contract: Type Ident EQ Constr Of With +## +## Ends in an error in state: 6. +## +## variant -> Constr Of . fun_type [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## +## The known suffix of the stack is as follows: +## Constr Of +## + + + +contract: Type Ident EQ Constr VBAR With +## +## Ends in an error in state: 16. +## +## nsepseq(variant,VBAR) -> variant VBAR . nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## +## The known suffix of the stack is as follows: +## variant VBAR +## + + + +contract: Type Ident EQ Constr With +## +## Ends in an error in state: 12. +## +## core_type -> Constr . DOT Ident [ Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## variant -> Constr . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## variant -> Constr . Of fun_type [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Type Ident EQ Ident ARROW With +## +## Ends in an error in state: 36. +## +## fun_type -> cartesian ARROW . fun_type [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## +## The known suffix of the stack is as follows: +## cartesian ARROW +## + + + +contract: Type Ident EQ Ident TIMES Constr With +## +## Ends in an error in state: 29. +## +## core_type -> Constr . DOT Ident [ VBAR Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Type Ident EQ Ident TIMES Ident TIMES With +## +## Ends in an error in state: 32. +## +## nsepseq(core_type,TIMES) -> core_type TIMES . nsepseq(core_type,TIMES) [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## core_type TIMES +## + + + +contract: Type Ident EQ Ident TIMES Ident With +## +## Ends in an error in state: 31. +## +## core_type -> core_type . Ident [ VBAR Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## nsepseq(core_type,TIMES) -> core_type . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ARROW ] +## nsepseq(core_type,TIMES) -> core_type . TIMES nsepseq(core_type,TIMES) [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## core_type +## + + + +contract: Type Ident EQ Ident TIMES With +## +## Ends in an error in state: 28. +## +## cartesian -> core_type TIMES . nsepseq(core_type,TIMES) [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## core_type TIMES +## + + + +contract: Type Ident EQ Ident VBAR +## +## Ends in an error in state: 522. +## +## declarations -> declaration . [ EOF ] +## declarations -> declaration . declarations [ EOF ] +## +## The known suffix of the stack is as follows: +## declaration +## +## 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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## In state 60, spurious reduction of production type_decl -> Type Ident EQ type_expr +## In state 518, spurious reduction of production declaration -> type_decl +## + + + +contract: Type Ident EQ Ident With +## +## Ends in an error in state: 27. +## +## cartesian -> core_type . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ARROW ] +## cartesian -> core_type . TIMES nsepseq(core_type,TIMES) [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ARROW ] +## core_type -> core_type . Ident [ VBAR Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## core_type +## + + + +contract: Type Ident EQ LBRACE Ident COLON Constr SEMI Ident COLON Constr SEMI With +## +## Ends in an error in state: 47. +## +## nsepseq(field_decl,SEMI) -> field_decl SEMI . nsepseq(field_decl,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_decl,SEMI)) -> field_decl SEMI . seq(__anonymous_0(field_decl,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl SEMI +## + + + +contract: Type Ident EQ LBRACE Ident COLON Constr SEMI Ident COLON Ident VBAR +## +## Ends in an error in state: 46. +## +## nsepseq(field_decl,SEMI) -> field_decl . [ RBRACE ] +## nsepseq(field_decl,SEMI) -> field_decl . SEMI nsepseq(field_decl,SEMI) [ RBRACE ] +## seq(__anonymous_0(field_decl,SEMI)) -> field_decl . SEMI seq(__anonymous_0(field_decl,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl +## +## 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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## In state 20, spurious reduction of production field_decl -> Ident COLON type_expr +## + + + +contract: Type Ident EQ LBRACE Ident COLON Constr SEMI With +## +## Ends in an error in state: 43. +## +## nsepseq(field_decl,SEMI) -> field_decl SEMI . nsepseq(field_decl,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_decl,SEMI)) -> field_decl SEMI . seq(__anonymous_0(field_decl,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl SEMI +## + + + +contract: Type Ident EQ LBRACE Ident COLON Ident VBAR +## +## Ends in an error in state: 42. +## +## nsepseq(field_decl,SEMI) -> field_decl . [ RBRACE ] +## nsepseq(field_decl,SEMI) -> field_decl . SEMI nsepseq(field_decl,SEMI) [ RBRACE ] +## nseq(__anonymous_0(field_decl,SEMI)) -> field_decl . SEMI seq(__anonymous_0(field_decl,SEMI)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl +## +## 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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## In state 20, spurious reduction of production field_decl -> Ident COLON type_expr +## + + + +contract: Type Ident EQ LBRACE Ident COLON With +## +## Ends in an error in state: 10. +## +## field_decl -> Ident COLON . type_expr [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Ident COLON +## + + + +contract: Type Ident EQ LBRACE Ident With +## +## Ends in an error in state: 9. +## +## field_decl -> Ident . COLON type_expr [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Type Ident EQ LBRACE With +## +## Ends in an error in state: 8. +## +## record_type -> LBRACE . sep_or_term_list(field_decl,SEMI) RBRACE [ Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +contract: Type Ident EQ LPAR Ident COMMA Constr RPAR With +## +## Ends in an error in state: 18. +## +## core_type -> type_tuple . Ident [ VBAR Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## type_tuple +## + + + +contract: Type Ident EQ LPAR Ident COMMA Ident COMMA With +## +## Ends in an error in state: 53. +## +## nsepseq(type_expr,COMMA) -> type_expr COMMA . nsepseq(type_expr,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## type_expr COMMA +## + + + +contract: Type Ident EQ LPAR Ident COMMA Ident VBAR +## +## Ends in an error in state: 52. +## +## nsepseq(type_expr,COMMA) -> type_expr . [ RPAR ] +## nsepseq(type_expr,COMMA) -> type_expr . COMMA nsepseq(type_expr,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## type_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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## + + + +contract: Type Ident EQ LPAR Ident COMMA With +## +## Ends in an error in state: 51. +## +## tuple(type_expr) -> type_expr COMMA . nsepseq(type_expr,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## type_expr COMMA +## + + + +contract: Type Ident EQ LPAR Ident VBAR +## +## Ends in an error in state: 49. +## +## par(type_expr) -> LPAR type_expr . RPAR [ VBAR Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## tuple(type_expr) -> type_expr . COMMA nsepseq(type_expr,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## LPAR type_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 27, spurious reduction of production cartesian -> core_type +## In state 35, spurious reduction of production fun_type -> cartesian +## In state 26, spurious reduction of production type_expr -> fun_type +## + + + +contract: Type Ident EQ LPAR With +## +## Ends in an error in state: 7. +## +## par(tuple(type_expr)) -> LPAR . tuple(type_expr) RPAR [ Ident ] +## par(type_expr) -> LPAR . type_expr RPAR [ VBAR Type TIMES SEMI RPAR RBRACE Let Ident EQ EOF COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Type Ident EQ VBAR Constr With +## +## Ends in an error in state: 5. +## +## variant -> Constr . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## variant -> Constr . Of fun_type [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Type Ident EQ VBAR With +## +## Ends in an error in state: 4. +## +## sum_type -> VBAR . nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA ] +## +## The known suffix of the stack is as follows: +## VBAR +## + + + +contract: Type Ident EQ With +## +## Ends in an error in state: 3. +## +## type_decl -> Type Ident EQ . type_expr [ Type Let EOF ] +## +## The known suffix of the stack is as follows: +## Type Ident EQ +## + + + +contract: Type Ident With +## +## Ends in an error in state: 2. +## +## type_decl -> Type Ident . EQ type_expr [ Type Let EOF ] +## +## The known suffix of the stack is as follows: +## Type Ident +## + + + +contract: Type With +## +## Ends in an error in state: 1. +## +## type_decl -> Type . Ident EQ type_expr [ Type Let EOF ] +## +## The known suffix of the stack is as follows: +## Type +## + + + +contract: With +## +## Ends in an error in state: 0. +## +## contract' -> . contract [ # ] +## +## The known suffix of the stack is as follows: +## +## + + + diff --git a/src/passes/1-parser/cameligo/ParserLog.ml b/src/passes/1-parser/cameligo/ParserLog.ml index 6bf9dcc36..4791ff6dc 100644 --- a/src/passes/1-parser/cameligo/ParserLog.ml +++ b/src/passes/1-parser/cameligo/ParserLog.ml @@ -2,6 +2,7 @@ [@@@coverage exclude_file] open AST +module Region = Simple_utils.Region open! Region let sprintf = Printf.sprintf @@ -866,7 +867,7 @@ and pp_let_in state node = let fields = if lhs_type = None then 3 else 4 in let fields = if kwd_rec = None then fields else fields+1 in let fields = if attributes = [] then fields else fields+1 in - let arity = + let arity = match kwd_rec with None -> 0 | Some (_) -> diff --git a/src/passes/1-parser/cameligo/ParserMain.ml b/src/passes/1-parser/cameligo/ParserMain.ml index 89c5a002c..d2908a362 100644 --- a/src/passes/1-parser/cameligo/ParserMain.ml +++ b/src/passes/1-parser/cameligo/ParserMain.ml @@ -1,8 +1,47 @@ -(** Driver for the CameLIGO parser *) +(* Driver for the CameLIGO parser *) + +module Region = Simple_utils.Region +module SSet = Set.Make (String) module IO = struct - let options = EvalOpt.(read ~lang:CameLIGO ~ext:".mligo") + let options = EvalOpt.(read ~lang:`CameLIGO ~ext:".mligo") + end + +module SubIO = + struct + type options = < + libs : string list; + verbose : SSet.t; + offsets : bool; + lang : EvalOpt.language; + ext : string; + mode : [`Byte | `Point]; + cmd : EvalOpt.command; + mono : bool + > + + let options : options = + object + method libs = IO.options#libs + method verbose = IO.options#verbose + method offsets = IO.options#offsets + method lang = IO.options#lang + method ext = IO.options#ext + method mode = IO.options#mode + method cmd = IO.options#cmd + method mono = IO.options#mono + end + + let make = + EvalOpt.make ~libs:options#libs + ~verbose:options#verbose + ~offsets:options#offsets + ~lang:options#lang + ~ext:options#ext + ~mode:options#mode + ~cmd:options#cmd + ~mono:options#mono end module Parser = @@ -22,118 +61,18 @@ module ParserLog = module Lexer = Lexer.Make (LexToken) module Unit = - ParserUnit.Make (Lexer)(AST)(Parser)(ParErr)(ParserLog)(IO) + ParserUnit.Make (Lexer)(AST)(Parser)(ParErr)(ParserLog)(SubIO) (* Main *) -let issue_error error : ('a, string Region.reg) Stdlib.result = - Stdlib.Error (Unit.format_error ~offsets:IO.options#offsets - IO.options#mode error) - -let parse parser : ('a, string Region.reg) Stdlib.result = - try parser () with - (* Scoping errors *) - - | Scoping.Error (Scoping.Reserved_name name) -> - let token = - Lexer.Token.mk_ident name.Region.value name.Region.region in - (match token with - (* Cannot fail because [name] is a not a - reserved name for the lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - issue_error - ("Reserved name.\nHint: Change the name.\n", None, invalid)) - - | Scoping.Error (Scoping.Duplicate_variant name) -> - let token = - Lexer.Token.mk_constr name.Region.value name.Region.region in - let point = "Duplicate constructor in this sum type declaration.\n\ - Hint: Change the constructor.\n", - None, token - in issue_error point - - | Scoping.Error (Scoping.Non_linear_pattern var) -> - let token = - Lexer.Token.mk_ident var.Region.value var.Region.region in - (match token with - (* Cannot fail because [var] is a not a - reserved name for the lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - let point = "Repeated variable in this pattern.\n\ - Hint: Change the name.\n", - None, invalid - in issue_error point) - - | Scoping.Error (Scoping.Duplicate_field name) -> - let token = - Lexer.Token.mk_ident name.Region.value name.Region.region in - (match token with - (* Cannot fail because [name] is a not a - reserved name for the lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - let point = "Duplicate field name in this record declaration.\n\ - Hint: Change the name.\n", - None, invalid - in issue_error point) - -(* Preprocessing the input source with CPP *) - -module SSet = Utils.String.Set -let sprintf = Printf.sprintf - -(* Path for CPP inclusions (#include) *) - -let lib_path = - match IO.options#libs with - [] -> "" - | libs -> let mk_I dir path = sprintf " -I %s%s" dir path - in List.fold_right mk_I libs "" - -let prefix = - match IO.options#input with - None | Some "-" -> "temp" - | Some file -> Filename.(file |> basename |> remove_extension) - -let suffix = ".pp" ^ IO.options#ext - -let pp_input = - if SSet.mem "cpp" IO.options#verbose - then prefix ^ suffix - else let pp_input, pp_out = - Filename.open_temp_file prefix suffix - in close_out pp_out; pp_input - -let cpp_cmd = - match IO.options#input with - None | Some "-" -> - sprintf "cpp -traditional-cpp%s - > %s" - lib_path pp_input - | Some file -> - sprintf "cpp -traditional-cpp%s %s > %s" - lib_path file pp_input +let wrap = function + Stdlib.Ok _ -> flush_all () +| Error msg -> + (flush_all (); Printf.eprintf "\027[31m%s\027[0m%!" msg.Region.value) let () = - if Sys.command cpp_cmd <> 0 then - Printf.eprintf "External error: \"%s\" failed." cpp_cmd - -(* Instantiating the lexer and calling the parser *) - -let lexer_inst = - match Lexer.open_token_stream (Lexer.File pp_input) with - Ok instance -> - if IO.options#expr - then - match parse (fun () -> Unit.apply instance Unit.parse_expr) with - Stdlib.Ok _ -> () - | Error Region.{value; _} -> - Printf.eprintf "\027[31m%s\027[0m%!" value - else - (match parse (fun () -> Unit.apply instance Unit.parse_contract) with - Stdlib.Ok _ -> () - | Error Region.{value; _} -> - Printf.eprintf "\027[31m%s\027[0m%!" value) - | Stdlib.Error (Lexer.File_opening msg) -> - Printf.eprintf "\027[31m%s\027[0m%!" msg + match IO.options#input with + Some "-" | None -> + Unit.contract_in_stdin () |> wrap + | Some file_path -> + Unit.contract_in_file file_path |> wrap diff --git a/src/passes/1-parser/cameligo/Scoping.ml b/src/passes/1-parser/cameligo/Scoping.ml index 483262deb..4b44a0189 100644 --- a/src/passes/1-parser/cameligo/Scoping.ml +++ b/src/passes/1-parser/cameligo/Scoping.ml @@ -1,5 +1,6 @@ [@@@warning "-42"] +module Region = Simple_utils.Region type t = Reserved_name of AST.variable diff --git a/src/passes/1-parser/cameligo/Scoping.mli b/src/passes/1-parser/cameligo/Scoping.mli index 61ca10f02..dd886f9a8 100644 --- a/src/passes/1-parser/cameligo/Scoping.mli +++ b/src/passes/1-parser/cameligo/Scoping.mli @@ -1,5 +1,7 @@ (* This module exports checks on scoping, called from the parser. *) +module Region = Simple_utils.Region + type t = Reserved_name of AST.variable | Duplicate_variant of AST.variable diff --git a/src/passes/1-parser/cameligo/Stubs/Simple_utils.ml b/src/passes/1-parser/cameligo/Stubs/Simple_utils.ml deleted file mode 100644 index 0360af1b5..000000000 --- a/src/passes/1-parser/cameligo/Stubs/Simple_utils.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Region = Region -module Pos = Pos diff --git a/src/passes/1-parser/pascaligo.ml b/src/passes/1-parser/pascaligo.ml index bb679c6a3..8b282e6c5 100644 --- a/src/passes/1-parser/pascaligo.ml +++ b/src/passes/1-parser/pascaligo.ml @@ -143,12 +143,12 @@ let apply parser = (* Parsing a contract in a file *) -let parse_file source = apply (fun () -> Unit.parse_file source) +let parse_file source = apply (fun () -> Unit.contract_in_file source) (* Parsing a contract in a string *) -let parse_string source = apply (fun () -> Unit.parse_string source) +let parse_string source = apply (fun () -> Unit.contract_in_string source) (* Parsing an expression in a string *) -let parse_expression source = apply (fun () -> Unit.parse_expression source) +let parse_expression source = apply (fun () -> Unit.expr_in_string source) diff --git a/src/passes/1-parser/pascaligo/.links b/src/passes/1-parser/pascaligo/.links index 98bcabc90..0b836a2d9 100644 --- a/src/passes/1-parser/pascaligo/.links +++ b/src/passes/1-parser/pascaligo/.links @@ -1,22 +1,5 @@ $HOME/git/OCaml-build/Makefile -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.ml -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.ml - -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.mli PP_EvalOpt.mli -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.ml PP_EvalOpt.ml -$HOME/git/ligo/vendors/Preprocessor/E_AST.ml -$HOME/git/ligo/vendors/Preprocessor/E_Lexer.mll -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.ml -$HOME/git/ligo/vendors/Preprocessor/Preproc.mli -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.mli -$HOME/git/ligo/vendors/Preprocessor/Preproc.mll -$HOME/git/ligo/vendors/Preprocessor/E_Lexer.mli -$HOME/git/ligo/vendors/Preprocessor/E_Parser.mly -$HOME/git/ligo/vendors/Preprocessor/.E_Parser.mly.tag - ../shared/Lexer.mli ../shared/Lexer.mll ../shared/EvalOpt.ml @@ -36,7 +19,4 @@ $HOME/git/ligo/vendors/Preprocessor/.E_Parser.mly.tag ../shared/ParserUnit.mli ../shared/ParserUnit.ml -Stubs/Simple_utils.ml -Stubs/Preprocessor.ml - $HOME/git/ligo/_build/default/src/passes/1-parser/pascaligo/ParErr.ml diff --git a/src/passes/1-parser/pascaligo/AST.ml b/src/passes/1-parser/pascaligo/AST.ml index b78eefd02..0d3a2b050 100644 --- a/src/passes/1-parser/pascaligo/AST.ml +++ b/src/passes/1-parser/pascaligo/AST.ml @@ -19,6 +19,8 @@ open Utils denoting the _region_ of the occurrence of the keyword "and". *) +module Region = Simple_utils.Region + type 'a reg = 'a Region.reg (* Keywords of LIGO *) diff --git a/src/passes/1-parser/pascaligo/Makefile.cfg b/src/passes/1-parser/pascaligo/Makefile.cfg index 2f2a6b197..233407070 100644 --- a/src/passes/1-parser/pascaligo/Makefile.cfg +++ b/src/passes/1-parser/pascaligo/Makefile.cfg @@ -2,4 +2,4 @@ SHELL := dash BFLAGS := -strict-sequence -w +A-48-4 -g clean:: -> rm -f Parser.msg Parser.msg.map Parser.msg.states Version.ml +> \rm -f Parser.msg.map Parser.msg.states Version.ml diff --git a/src/passes/1-parser/pascaligo/Parser.mly b/src/passes/1-parser/pascaligo/Parser.mly index 502ea5fb2..eeaf1211f 100644 --- a/src/passes/1-parser/pascaligo/Parser.mly +++ b/src/passes/1-parser/pascaligo/Parser.mly @@ -3,7 +3,7 @@ [@@@warning "-42"] -open Region +open Simple_utils.Region open AST (* END HEADER *) diff --git a/src/passes/1-parser/pascaligo/ParserLog.ml b/src/passes/1-parser/pascaligo/ParserLog.ml index ccca02968..ce543ce8f 100644 --- a/src/passes/1-parser/pascaligo/ParserLog.ml +++ b/src/passes/1-parser/pascaligo/ParserLog.ml @@ -2,6 +2,8 @@ [@@@coverage exclude_file] open AST + +module Region = Simple_utils.Region open! Region let sprintf = Printf.sprintf diff --git a/src/passes/1-parser/pascaligo/ParserMain.ml b/src/passes/1-parser/pascaligo/ParserMain.ml index aa26d78ea..a607dd3ba 100644 --- a/src/passes/1-parser/pascaligo/ParserMain.ml +++ b/src/passes/1-parser/pascaligo/ParserMain.ml @@ -1,10 +1,49 @@ (* Driver for the PascaLIGO parser *) +module Region = Simple_utils.Region +module SSet = Set.Make (String) + module IO = struct let options = EvalOpt.(read ~lang:`PascaLIGO ~ext:".ligo") end +module SubIO = + struct + type options = < + libs : string list; + verbose : SSet.t; + offsets : bool; + lang : EvalOpt.language; + ext : string; + mode : [`Byte | `Point]; + cmd : EvalOpt.command; + mono : bool + > + + let options : options = + object + method libs = IO.options#libs + method verbose = IO.options#verbose + method offsets = IO.options#offsets + method lang = IO.options#lang + method ext = IO.options#ext + method mode = IO.options#mode + method cmd = IO.options#cmd + method mono = IO.options#mono + end + + let make = + EvalOpt.make ~libs:options#libs + ~verbose:options#verbose + ~offsets:options#offsets + ~lang:options#lang + ~ext:options#ext + ~mode:options#mode + ~cmd:options#cmd + ~mono:options#mono + end + module Parser = struct type ast = AST.t @@ -22,119 +61,18 @@ module ParserLog = module Lexer = Lexer.Make (LexToken) module Unit = - ParserUnit.Make (Lexer)(AST)(Parser)(ParErr)(ParserLog)(IO) - -module SSet = Set.Make (String) + ParserUnit.Make (Lexer)(AST)(Parser)(ParErr)(ParserLog)(SubIO) (* Main *) -let issue_error error : ('a, string Region.reg) Stdlib.result = - Stdlib.Error (Unit.format_error ~offsets:IO.options#offsets - IO.options#mode error) - -let parse parser : ('a, string Region.reg) Stdlib.result = - try parser () with - (* Scoping errors *) - - | Scoping.Error (Scoping.Duplicate_parameter name) -> - let token = - Lexer.Token.mk_ident name.Region.value name.Region.region in - (match token with - (* Cannot fail because [name] is not a reserved name for the - lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - issue_error ("Duplicate parameter.\nHint: Change the name.\n", - None, invalid)) - - | Scoping.Error (Scoping.Reserved_name name) -> - let token = - Lexer.Token.mk_ident name.Region.value name.Region.region in - (match token with - (* Cannot fail because [name] is not a reserved name for the - lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - issue_error - ("Reserved name.\nHint: Change the name.\n", None, invalid)) - - | Scoping.Error (Scoping.Duplicate_variant name) -> - let token = - Lexer.Token.mk_constr name.Region.value name.Region.region in - let point = "Duplicate constructor in this sum type declaration.\n\ - Hint: Change the constructor.\n", - None, token - in issue_error point - - | Scoping.Error (Scoping.Non_linear_pattern var) -> - let token = - Lexer.Token.mk_ident var.Region.value var.Region.region in - (match token with - (* Cannot fail because [var] is not a reserved name for the - lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - let point = "Repeated variable in this pattern.\n\ - Hint: Change the name.\n", - None, invalid - in issue_error point) - - | Scoping.Error (Scoping.Duplicate_field name) -> - let token = - Lexer.Token.mk_ident name.Region.value name.Region.region in - (match token with - (* Cannot fail because [name] is a not a - reserved name for the lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - let point = - "Duplicate field name in this record declaration.\n\ - Hint: Change the name.\n", - None, invalid - in issue_error point) - -(* Preprocessing the input source *) - -let preproc cin : unit = - let close () = flush_all (); close_in cin in - let buffer = Lexing.from_channel cin in - let open Lexing in - let () = - match IO.options#input with - None | Some "-" -> () - | Some pos_fname -> - buffer.lex_curr_p <- {buffer.lex_curr_p with pos_fname} in - match Preproc.lex IO.options buffer with - Stdlib.Error (pp_buffer, err) -> - if SSet.mem "preproc" IO.options#verbose then - Printf.printf "%s\n%!" (Buffer.contents pp_buffer); - let Region.{value; _} = - Preproc.format ~offsets:IO.options#offsets ~file:true err - in close (); Printf.eprintf "\027[31m%s\027[0m%!" value - | Stdlib.Ok pp_buffer -> - (* Running the lexer and the parser on the preprocessed input *) - - let source = Lexer.String (Buffer.contents pp_buffer) in - match Lexer.open_token_stream source with - Stdlib.Ok instance -> - if IO.options#expr - then - match parse (fun () -> Unit.apply instance Unit.parse_expr) with - Stdlib.Ok _ -> () - | Error Region.{value; _} -> - close (); Printf.eprintf "\027[31m%s\027[0m%!" value - else - (match parse (fun () -> Unit.apply instance Unit.parse_contract) with - Stdlib.Ok _ -> () - | Error Region.{value; _} -> - close (); Printf.eprintf "\027[31m%s\027[0m%!" value) - | Stdlib.Error (Lexer.File_opening msg) -> - flush_all (); Printf.eprintf "\027[31m%s\027[0m%!" msg +let wrap = function + Stdlib.Ok _ -> flush_all () +| Error msg -> + (flush_all (); Printf.eprintf "\027[31m%s\027[0m%!" msg.Region.value) let () = match IO.options#input with - Some "-" | None -> preproc stdin - | Some file_path -> - try open_in file_path |> preproc with - Sys_error msg -> - (flush_all (); Printf.eprintf "\027[31m%s\027[0m%!" msg) + Some "-" | None -> + Unit.contract_in_stdin () |> wrap + | Some file_path -> + Unit.contract_in_file file_path |> wrap diff --git a/src/passes/1-parser/pascaligo/Scoping.ml b/src/passes/1-parser/pascaligo/Scoping.ml index 2ac52f8d1..64a8eea52 100644 --- a/src/passes/1-parser/pascaligo/Scoping.ml +++ b/src/passes/1-parser/pascaligo/Scoping.ml @@ -1,5 +1,6 @@ [@@@warning "-42"] +module Region = Simple_utils.Region type t = Reserved_name of AST.variable diff --git a/src/passes/1-parser/pascaligo/Scoping.mli b/src/passes/1-parser/pascaligo/Scoping.mli index 71f8c1244..bc4372979 100644 --- a/src/passes/1-parser/pascaligo/Scoping.mli +++ b/src/passes/1-parser/pascaligo/Scoping.mli @@ -1,5 +1,7 @@ (* This module exports checks on scoping, called from the parser. *) +module Region = Simple_utils.Region + type t = Reserved_name of AST.variable | Duplicate_parameter of AST.variable diff --git a/src/passes/1-parser/pascaligo/Stubs/Preprocessor.ml b/src/passes/1-parser/pascaligo/Stubs/Preprocessor.ml deleted file mode 100644 index c9a418bef..000000000 --- a/src/passes/1-parser/pascaligo/Stubs/Preprocessor.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Preproc = Preproc -module EvalOpt = PP_EvalOpt diff --git a/src/passes/1-parser/pascaligo/Stubs/Simple_utils.ml b/src/passes/1-parser/pascaligo/Stubs/Simple_utils.ml deleted file mode 100644 index 0360af1b5..000000000 --- a/src/passes/1-parser/pascaligo/Stubs/Simple_utils.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Region = Region -module Pos = Pos diff --git a/src/passes/1-parser/reasonligo.ml b/src/passes/1-parser/reasonligo.ml index dd902360b..50259d6a9 100644 --- a/src/passes/1-parser/reasonligo.ml +++ b/src/passes/1-parser/reasonligo.ml @@ -149,12 +149,12 @@ let apply parser = (* Parsing a contract in a file *) -let parse_file source = apply (fun () -> Unit.parse_file source) +let parse_file source = apply (fun () -> Unit.contract_in_file source) (* Parsing a contract in a string *) -let parse_string source = apply (fun () -> Unit.parse_string source) +let parse_string source = apply (fun () -> Unit.contract_in_string source) (* Parsing an expression in a string *) -let parse_expression source = apply (fun () -> Unit.parse_expression source) +let parse_expression source = apply (fun () -> Unit.expr_in_string source) diff --git a/src/passes/1-parser/reasonligo/.links b/src/passes/1-parser/reasonligo/.links index dd5eba1c3..2be7fda97 100644 --- a/src/passes/1-parser/reasonligo/.links +++ b/src/passes/1-parser/reasonligo/.links @@ -1,20 +1,5 @@ $HOME/git/OCaml-build/Makefile -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.ml -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.ml - -$HOME/git/ligo/vendors/Preprocessor/E_AST.ml -$HOME/git/ligo/vendors/Preprocessor/E_Lexer.mll -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.ml -$HOME/git/ligo/vendors/Preprocessor/Preproc.mli -$HOME/git/ligo/vendors/Preprocessor/EvalOpt.mli -$HOME/git/ligo/vendors/Preprocessor/Preproc.mll -$HOME/git/ligo/vendors/Preprocessor/E_Lexer.mli -$HOME/git/ligo/vendors/Preprocessor/E_Parser.mly -$HOME/git/ligo/vendors/Preprocessor/.E_Parser.mly.tag - ../shared/Lexer.mli ../shared/Lexer.mll ../shared/EvalOpt.ml @@ -34,9 +19,7 @@ $HOME/git/ligo/vendors/Preprocessor/.E_Parser.mly.tag ../shared/ParserUnit.mli ../shared/ParserUnit.ml -Stubs/Simple_utils.ml Stubs/Parser_cameligo.ml -Stubs/Preprocessor.ml ../cameligo/AST.ml ../cameligo/ParserLog.mli diff --git a/src/passes/1-parser/reasonligo/LexerMain.ml b/src/passes/1-parser/reasonligo/LexerMain.ml index 3ef81d69d..4f063582f 100644 --- a/src/passes/1-parser/reasonligo/LexerMain.ml +++ b/src/passes/1-parser/reasonligo/LexerMain.ml @@ -4,7 +4,7 @@ module Region = Simple_utils.Region module IO = struct - let options = EvalOpt.(read ~lang:ReasonLIGO ~ext:".religo") + let options = EvalOpt.(read ~lang:`ReasonLIGO ~ext:".religo") end module M = LexerUnit.Make (IO) (Lexer.Make (LexToken)) diff --git a/src/passes/1-parser/reasonligo/Makefile.cfg b/src/passes/1-parser/reasonligo/Makefile.cfg index 2f2a6b197..233407070 100644 --- a/src/passes/1-parser/reasonligo/Makefile.cfg +++ b/src/passes/1-parser/reasonligo/Makefile.cfg @@ -2,4 +2,4 @@ SHELL := dash BFLAGS := -strict-sequence -w +A-48-4 -g clean:: -> rm -f Parser.msg Parser.msg.map Parser.msg.states Version.ml +> \rm -f Parser.msg.map Parser.msg.states Version.ml diff --git a/src/passes/1-parser/reasonligo/Parser.mly b/src/passes/1-parser/reasonligo/Parser.mly index 5b6a09dfc..f36b2d64a 100644 --- a/src/passes/1-parser/reasonligo/Parser.mly +++ b/src/passes/1-parser/reasonligo/Parser.mly @@ -3,6 +3,7 @@ [@@@warning "-42"] +module Region = Simple_utils.Region open Region module AST = Parser_cameligo.AST open! AST @@ -541,7 +542,7 @@ fun_expr: in raise (Error (WrongFunctionArguments e)) in let binders = fun_args_to_pattern $1 in - let lhs_type = match $1 with + let lhs_type = match $1 with EAnnot {value = {inside = _ , _, t; _}; region = r} -> Some (r,t) | _ -> None in diff --git a/src/passes/1-parser/reasonligo/Parser.msg b/src/passes/1-parser/reasonligo/Parser.msg new file mode 100644 index 000000000..1999edfa1 --- /dev/null +++ b/src/passes/1-parser/reasonligo/Parser.msg @@ -0,0 +1,4148 @@ +interactive_expr: C_None WILD +## +## Ends in an error in state: 172. +## +## call_expr_level -> call_expr_level_in . option(type_annotation_simple) [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## call_expr_level_in +## + + + +interactive_expr: C_Some WILD +## +## Ends in an error in state: 124. +## +## constr_expr -> C_Some . core_expr [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## C_Some +## + + + +interactive_expr: Constr DOT Ident WILD +## +## Ends in an error in state: 110. +## +## module_fun -> Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr DOT Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Constr DOT Ident +## + + + +interactive_expr: Constr DOT WILD +## +## Ends in an error in state: 108. +## +## module_field -> Constr DOT . module_fun [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr DOT . Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Constr DOT +## + + + +interactive_expr: Constr WILD +## +## Ends in an error in state: 107. +## +## constr_expr -> Constr . core_expr [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## constr_expr -> Constr . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## module_field -> Constr . DOT module_fun [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr . DOT Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +interactive_expr: Ident DOT Ident WILD +## +## Ends in an error in state: 102. +## +## selection -> DOT Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> DOT Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## DOT Ident +## + + + +interactive_expr: Ident DOT WILD +## +## Ends in an error in state: 101. +## +## selection -> DOT . Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> DOT . Ident [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## DOT +## + + + +interactive_expr: Ident LBRACKET Int RBRACKET WILD +## +## Ends in an error in state: 100. +## +## selection -> LBRACKET Int RBRACKET . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> LBRACKET Int RBRACKET . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET Int RBRACKET +## + + + +interactive_expr: Ident LBRACKET Int WILD +## +## Ends in an error in state: 99. +## +## selection -> LBRACKET Int . RBRACKET selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> LBRACKET Int . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET Int +## + + + +interactive_expr: Ident LBRACKET WILD +## +## Ends in an error in state: 98. +## +## selection -> LBRACKET . Int RBRACKET selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## selection -> LBRACKET . Int RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET +## + + + +interactive_expr: Ident WILD +## +## Ends in an error in state: 97. +## +## common_expr -> Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: If LBRACE True VBAR +## +## Ends in an error in state: 227. +## +## parenthesized_expr -> LBRACE expr . RBRACE [ LBRACE ] +## +## The known suffix of the stack is as follows: +## LBRACE 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: If LBRACE WILD +## +## Ends in an error in state: 226. +## +## parenthesized_expr -> LBRACE . expr RBRACE [ LBRACE ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True ARROW Bytes VBAR +## +## Ends in an error in state: 407. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 215, spurious reduction of production fun_expr -> disj_expr_level ARROW expr +## In state 405, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 416, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 415, 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 RBRACE Else LBRACE True ARROW Bytes VBAR +## +## Ends in an error in state: 412. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if . option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 215, spurious reduction of production fun_expr -> disj_expr_level ARROW expr +## In state 405, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 416, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 415, 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 RBRACE Else LBRACE True SEMI PLUS +## +## Ends in an error in state: 413. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) . RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE WILD +## +## Ends in an error in state: 411. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE Else WILD +## +## Ends in an error in state: 410. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True RBRACE WILD +## +## Ends in an error in state: 409. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE True SEMI PLUS +## +## Ends in an error in state: 408. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD +## +## Ends in an error in state: 349. +## +## if_then_else(closed_if) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE If LPAR Bytes RPAR WILD +## +## Ends in an error in state: 348. +## +## if_then_else(closed_if) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr +## + + + +interactive_expr: If LPAR True RPAR LBRACE If WILD +## +## Ends in an error in state: 347. +## +## if_then_else(closed_if) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR VBAR +## +## Ends in an error in state: 274. +## +## case_clause(base_if_then_else) -> VBAR . pattern ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW Bytes SEMI WILD +## +## Ends in an error in state: 436. +## +## nseq(case_clause(base_if_then_else)) -> case_clause(base_if_then_else) . seq(case_clause(base_if_then_else)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## case_clause(base_if_then_else) +## + + + +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: 438. +## +## seq(case_clause(base_if_then_else)) -> case_clause(base_if_then_else) . seq(case_clause(base_if_then_else)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## case_clause(base_if_then_else) +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True ARROW Bytes VBAR +## +## Ends in an error in state: 417. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 215, spurious reduction of production fun_expr -> disj_expr_level ARROW expr +## In state 405, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 416, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 415, 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 RBRACE Else LBRACE True SEMI PLUS +## +## Ends in an error in state: 427. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) . RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE Else LBRACE True VBAR +## +## Ends in an error in state: 426. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else . option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 424, spurious reduction of production base_expr(base_if_then_else) -> disj_expr_level +## In state 429, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) +## In state 425, 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 RBRACE Else LBRACE WILD +## +## Ends in an error in state: 421. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE Else WILD +## +## Ends in an error in state: 420. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True RBRACE WILD +## +## Ends in an error in state: 419. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE True SEMI PLUS +## +## Ends in an error in state: 418. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) +## + + + +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: 346. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If LPAR Bytes RPAR WILD +## +## Ends in an error in state: 345. +## +## if_then_else(base_if_then_else) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW If WILD +## +## Ends in an error in state: 344. +## +## if_then_else(base_if_then_else) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD ARROW True ARROW Bytes Type +## +## Ends in an error in state: 430. +## +## case_clause(base_if_then_else) -> VBAR pattern ARROW base_if_then_else . option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR pattern ARROW base_if_then_else +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 215, spurious reduction of production fun_expr -> disj_expr_level ARROW expr +## In state 423, spurious reduction of production base_expr(base_if_then_else) -> fun_expr +## In state 429, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr(base_if_then_else) +## In state 425, 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 Type +## +## Ends in an error in state: 424. +## +## 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 ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ VBAR SEMI RBRACE Or BOOL_OR ARROW ] +## fun_expr -> disj_expr_level . ARROW expr [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, 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: 343. +## +## case_clause(base_if_then_else) -> VBAR pattern ARROW . base_if_then_else option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR pattern ARROW +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True LBRACE VBAR WILD COMMA Bytes RPAR +## +## Ends in an error in state: 342. +## +## case_clause(base_if_then_else) -> VBAR pattern . ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR pattern +## +## 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 328, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 331, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 340, 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: 273. +## +## switch_expr(base_if_then_else) -> Switch switch_expr_ LBRACE . cases(base_if_then_else) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Switch switch_expr_ LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch True WILD +## +## Ends in an error in state: 272. +## +## switch_expr(base_if_then_else) -> Switch switch_expr_ . LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Switch switch_expr_ +## + + + +interactive_expr: If LPAR True RPAR LBRACE Switch WILD +## +## Ends in an error in state: 231. +## +## switch_expr(base_if_then_else) -> Switch . switch_expr_ LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## Switch +## + + + +interactive_expr: If LPAR True RPAR LBRACE True ARROW Bytes VBAR +## +## Ends in an error in state: 444. +## +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 215, spurious reduction of production fun_expr -> disj_expr_level ARROW expr +## In state 405, spurious reduction of production base_expr(closed_if) -> fun_expr +## In state 416, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 415, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## + + + +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else LBRACE True SEMI PLUS +## +## Ends in an error in state: 450. +## +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) . RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) +## + + + +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else LBRACE True VBAR +## +## Ends in an error in state: 449. +## +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr . option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 399, spurious reduction of production expr_with_let_expr -> expr +## + + + +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else LBRACE WILD +## +## Ends in an error in state: 448. +## +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE True RBRACE Else WILD +## +## Ends in an error in state: 447. +## +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else +## + + + +interactive_expr: If LPAR True RPAR LBRACE True RBRACE WILD +## +## Ends in an error in state: 446. +## +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE +## + + + +interactive_expr: If LPAR True RPAR LBRACE True SEMI PLUS +## +## Ends in an error in state: 445. +## +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE closed_if option(SEMI) +## + + + +interactive_expr: If LPAR True RPAR LBRACE True VBAR +## +## Ends in an error in state: 406. +## +## 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 ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ SEMI RBRACE Or BOOL_OR ARROW ] +## fun_expr -> disj_expr_level . ARROW expr [ SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## + + + +interactive_expr: If LPAR True RPAR LBRACE WILD +## +## Ends in an error in state: 230. +## +## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr LBRACE +## + + + +interactive_expr: If LPAR True RPAR WILD +## +## Ends in an error in state: 229. +## +## if_then(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If parenthesized_expr +## + + + +interactive_expr: If LPAR True VBAR +## +## Ends in an error in state: 224. +## +## parenthesized_expr -> LPAR expr . RPAR [ LBRACE ] +## +## The known suffix of the stack is as follows: +## LPAR 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: If LPAR WILD +## +## Ends in an error in state: 96. +## +## parenthesized_expr -> LPAR . expr RPAR [ LBRACE ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +interactive_expr: If WILD +## +## Ends in an error in state: 95. +## +## if_then(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## if_then_else(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## If +## + + + +interactive_expr: LBRACE ELLIPSIS Constr DOT Ident WILD +## +## Ends in an error in state: 250. +## +## projection -> Constr DOT Ident . selection [ COMMA ] +## +## The known suffix of the stack is as follows: +## Constr DOT Ident +## + + + +interactive_expr: LBRACE ELLIPSIS Constr DOT WILD +## +## Ends in an error in state: 249. +## +## projection -> Constr DOT . Ident selection [ COMMA ] +## +## The known suffix of the stack is as follows: +## Constr DOT +## + + + +interactive_expr: LBRACE ELLIPSIS Constr WILD +## +## Ends in an error in state: 248. +## +## projection -> Constr . DOT Ident selection [ COMMA ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes VBAR +## +## 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 ] +## nseq(__anonymous_0(field_path_assignment,COMMA)) -> field_path_assignment . COMMA seq(__anonymous_0(field_path_assignment,COMMA)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_path_assignment +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 264, 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: 263. +## +## field_path_assignment -> nsepseq(field_name,DOT) COLON . expr [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## nsepseq(field_name,DOT) COLON +## + + + +interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA Ident COLON Bytes VBAR +## +## Ends in an error in state: 269. +## +## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . [ RBRACE ] +## 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 ] +## +## The known suffix of the stack is as follows: +## field_path_assignment +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 264, 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: 270. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## field_path_assignment COMMA +## + + + +interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA WILD +## +## Ends in an error in state: 266. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## field_path_assignment COMMA +## + + + +interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident DOT Ident WILD +## +## Ends in an error in state: 256. +## +## nsepseq(field_name,DOT) -> Ident . [ COLON ] +## nsepseq(field_name,DOT) -> Ident . DOT nsepseq(field_name,DOT) [ COLON ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident DOT WILD +## +## Ends in an error in state: 255. +## +## nsepseq(field_name,DOT) -> Ident DOT . nsepseq(field_name,DOT) [ COLON ] +## +## The known suffix of the stack is as follows: +## Ident DOT +## + + + +interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident WILD +## +## Ends in an error in state: 254. +## +## field_path_assignment -> Ident . [ RBRACE COMMA ] +## nsepseq(field_name,DOT) -> Ident . [ COLON ] +## nsepseq(field_name,DOT) -> Ident . DOT nsepseq(field_name,DOT) [ COLON ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE ELLIPSIS Ident COMMA WILD +## +## Ends in an error in state: 253. +## +## update_record -> LBRACE ELLIPSIS path COMMA . sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACE ELLIPSIS path COMMA +## + + + +interactive_expr: LBRACE ELLIPSIS Ident DOT Ident VBAR +## +## Ends in an error in state: 252. +## +## update_record -> LBRACE ELLIPSIS path . COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACE ELLIPSIS path +## +## 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 102, spurious reduction of production selection -> DOT Ident +## In state 105, spurious reduction of production projection -> Ident selection +## In state 251, spurious reduction of production path -> projection +## + + + +interactive_expr: LBRACE ELLIPSIS Ident WILD +## +## Ends in an error in state: 247. +## +## path -> Ident . [ COMMA ] +## projection -> Ident . selection [ COMMA ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE ELLIPSIS WILD +## +## Ends in an error in state: 246. +## +## update_record -> LBRACE ELLIPSIS . path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACE ELLIPSIS +## + + + +interactive_expr: LBRACE Ident COLON Bytes VBAR +## +## Ends in an error in state: 467. +## +## sequence_or_record_in -> field_assignment . COMMA sep_or_term_list(field_assignment,COMMA) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_assignment +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 464, spurious reduction of production field_assignment -> Ident COLON expr +## + + + +interactive_expr: LBRACE Ident COLON WILD +## +## Ends in an error in state: 463. +## +## field_assignment -> Ident COLON . expr [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## Ident COLON +## + + + +interactive_expr: LBRACE Ident COMMA Ident COLON Bytes VBAR +## +## Ends in an error in state: 473. +## +## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ] +## 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 ] +## +## The known suffix of the stack is as follows: +## field_assignment +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 464, 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: 477. +## +## nsepseq(field_assignment,COMMA) -> field_assignment . [ RBRACE ] +## 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 ] +## +## The known suffix of the stack is as follows: +## field_assignment +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 464, 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: 478. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## field_assignment COMMA +## + + + +interactive_expr: LBRACE Ident COMMA Ident COMMA WILD +## +## Ends in an error in state: 474. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## field_assignment COMMA +## + + + +interactive_expr: LBRACE Ident COMMA Ident WILD +## +## Ends in an error in state: 469. +## +## field_assignment -> Ident . [ RBRACE COMMA ] +## field_assignment -> Ident . COLON expr [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE Ident COMMA WILD +## +## Ends in an error in state: 468. +## +## sequence_or_record_in -> field_assignment COMMA . sep_or_term_list(field_assignment,COMMA) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_assignment COMMA +## + + + +interactive_expr: LBRACE Ident WILD +## +## Ends in an error in state: 462. +## +## 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 ] +## field_assignment -> Ident . COLON expr [ COMMA ] +## projection -> Ident . selection [ TIMES SLASH SEMI RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ COLON CAT BOOL_OR BOOL_AND ARROW ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: LBRACE True SEMI True SEMI True SEMI WILD +## +## Ends in an error in state: 490. +## +## 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 SEMI +## + + + +interactive_expr: LBRACE True SEMI True SEMI True VBAR +## +## Ends in an error in state: 489. +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 399, spurious reduction of production expr_with_let_expr -> expr +## + + + +interactive_expr: LBRACE True SEMI True SEMI WILD +## +## Ends in an error in state: 486. +## +## 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: 485. +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 399, spurious reduction of production expr_with_let_expr -> expr +## + + + +interactive_expr: LBRACE True SEMI WILD +## +## Ends in an error in state: 481. +## +## option(SEMI) -> 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_with_let_expr SEMI +## + + + +interactive_expr: LBRACE True VBAR +## +## Ends in an error in state: 480. +## +## 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_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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 399, spurious reduction of production expr_with_let_expr -> expr +## + + + +interactive_expr: LBRACE WILD +## +## Ends in an error in state: 92. +## +## sequence_or_record -> LBRACE . sequence_or_record_in RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## update_record -> LBRACE . ELLIPSIS path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +interactive_expr: LBRACKET True COMMA ELLIPSIS True VBAR +## +## Ends in an error in state: 499. +## +## list_or_spread -> LBRACKET expr COMMA ELLIPSIS expr . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET expr COMMA ELLIPSIS expr +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: LBRACKET True COMMA ELLIPSIS WILD +## +## Ends in an error in state: 498. +## +## list_or_spread -> LBRACKET expr COMMA ELLIPSIS . expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET expr COMMA ELLIPSIS +## + + + +interactive_expr: LBRACKET True COMMA True COMMA True COMMA WILD +## +## Ends in an error in state: 509. +## +## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] +## seq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## expr COMMA +## + + + +interactive_expr: LBRACKET True COMMA True COMMA True VBAR +## +## Ends in an error in state: 508. +## +## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] +## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] +## seq(__anonymous_0(expr,COMMA)) -> expr . COMMA seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: LBRACKET True COMMA True COMMA WILD +## +## Ends in an error in state: 506. +## +## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] +## nseq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## expr COMMA +## + + + +interactive_expr: LBRACKET True COMMA True VBAR +## +## Ends in an error in state: 505. +## +## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] +## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] +## nseq(__anonymous_0(expr,COMMA)) -> expr . COMMA seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: LBRACKET True COMMA WILD +## +## Ends in an error in state: 497. +## +## list_or_spread -> LBRACKET expr COMMA . sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET expr COMMA . ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET expr COMMA +## + + + +interactive_expr: LBRACKET True VBAR +## +## Ends in an error in state: 496. +## +## list_or_spread -> LBRACKET expr . COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET expr . COMMA ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## option(expr) -> expr . [ RBRACKET ] +## +## The known suffix of the stack is as follows: +## LBRACKET 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: LBRACKET WILD +## +## Ends in an error in state: 90. +## +## list_or_spread -> LBRACKET . expr COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET . expr COMMA ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## list_or_spread -> LBRACKET . option(expr) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET +## + + + +interactive_expr: LPAR True COMMA Bytes RPAR COLON Ident TIMES +## +## Ends in an error in state: 164. +## +## base_expr(expr) -> disj_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] +## fun_expr -> disj_expr_level . ARROW expr [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 132, spurious reduction of production option(type_expr_simple_args) -> +## In state 141, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 148, spurious reduction of production type_annotation_simple -> COLON type_expr_simple +## In state 149, spurious reduction of production option(type_annotation_simple) -> type_annotation_simple +## In state 150, 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: 129. +## +## disj_expr_level -> par(tuple(disj_expr_level)) . option(type_annotation_simple) [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] +## +## The known suffix of the stack is as follows: +## par(tuple(disj_expr_level)) +## + + + +interactive_expr: LPAR True COMMA True COMMA WILD +## +## Ends in an error in state: 460. +## +## nsepseq(disj_expr_level,COMMA) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## disj_expr_level COMMA +## + + + +interactive_expr: LPAR True COMMA True VBAR +## +## Ends in an error in state: 459. +## +## 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 ] +## nsepseq(disj_expr_level,COMMA) -> disj_expr_level . [ RPAR ] +## nsepseq(disj_expr_level,COMMA) -> disj_expr_level . COMMA nsepseq(disj_expr_level,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## + + + +interactive_expr: LPAR True COMMA WILD +## +## Ends in an error in state: 457. +## +## tuple(disj_expr_level) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## disj_expr_level COMMA +## + + + +interactive_expr: LPAR True VBAR +## +## Ends in an error in state: 456. +## +## 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 ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ RPAR Or COMMA BOOL_OR ARROW ] +## fun_expr -> disj_expr_level . ARROW expr [ RPAR ] +## tuple(disj_expr_level) -> disj_expr_level . COMMA nsepseq(disj_expr_level,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## + + + +interactive_expr: LPAR WILD +## +## Ends in an error in state: 93. +## +## par(expr) -> LPAR . expr RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## par(tuple(disj_expr_level)) -> LPAR . tuple(disj_expr_level) RPAR [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA COLON BOOL_OR Attr ARROW ] +## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +interactive_expr: Let Rec VBAR +## +## Ends in an error in state: 353. +## +## let_expr(expr_with_let_expr) -> seq(Attr) Let Rec . let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] +## +## The known suffix of the stack is as follows: +## seq(Attr) Let Rec +## + + + +interactive_expr: Let Rec WILD EQ Bytes SEMI WILD +## +## Ends in an error in state: 396. +## +## let_expr(expr_with_let_expr) -> seq(Attr) Let Rec let_binding SEMI . expr_with_let_expr [ SEMI RBRACE EOF ] +## +## The known suffix of the stack is as follows: +## seq(Attr) Let Rec let_binding SEMI +## + + + +interactive_expr: Let Rec WILD EQ Bytes VBAR +## +## Ends in an error in state: 395. +## +## let_expr(expr_with_let_expr) -> seq(Attr) Let Rec let_binding . SEMI expr_with_let_expr [ SEMI RBRACE EOF ] +## +## The known suffix of the stack is as follows: +## seq(Attr) Let Rec 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 531, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## + + + +interactive_expr: Let VBAR +## +## Ends in an error in state: 352. +## +## let_expr(expr_with_let_expr) -> seq(Attr) Let . let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] +## let_expr(expr_with_let_expr) -> seq(Attr) Let . Rec let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] +## +## The known suffix of the stack is as follows: +## seq(Attr) Let +## + + + +interactive_expr: Let WILD EQ Bytes SEMI WILD +## +## Ends in an error in state: 401. +## +## 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 +## + + + +interactive_expr: Let WILD EQ Bytes VBAR +## +## Ends in an error in state: 400. +## +## 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 +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 531, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## + + + +interactive_expr: MINUS WILD +## +## Ends in an error in state: 91. +## +## unary_expr_level -> MINUS . call_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## MINUS +## + + + +interactive_expr: NOT WILD +## +## Ends in an error in state: 89. +## +## unary_expr_level -> NOT . call_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## NOT +## + + + +interactive_expr: Switch Constr WILD +## +## Ends in an error in state: 113. +## +## module_field -> Constr . DOT module_fun [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## projection -> Constr . DOT Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +interactive_expr: Switch LBRACE WILD +## +## Ends in an error in state: 245. +## +## update_record -> LBRACE . ELLIPSIS path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ LBRACE ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +interactive_expr: Switch LBRACKET True SEMI True SEMI WILD +## +## Ends in an error in state: 243. +## +## 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 +## + + + +interactive_expr: Switch LBRACKET True SEMI True VBAR +## +## Ends in an error in state: 242. +## +## 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 +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Switch LBRACKET True SEMI WILD +## +## Ends in an error in state: 239. +## +## 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 +## + + + +interactive_expr: Switch LBRACKET True VBAR +## +## Ends in an error in state: 238. +## +## 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 +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Switch LBRACKET WILD +## +## Ends in an error in state: 232. +## +## list__(expr) -> LBRACKET . option(sep_or_term_list(expr,SEMI)) RBRACKET [ LBRACE ] +## +## The known suffix of the stack is as follows: +## LBRACKET +## + + + +interactive_expr: Switch LPAR True VBAR +## +## Ends in an error in state: 454. +## +## par(expr) -> LPAR expr . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR expr +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Switch LPAR WILD +## +## Ends in an error in state: 87. +## +## par(expr) -> LPAR . expr RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +interactive_expr: Switch True LBRACE VBAR LBRACKET VBAR +## +## Ends in an error in state: 334. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## LBRACKET +## + + + +interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS VBAR +## +## Ends in an error in state: 337. +## +## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS . sub_pattern RBRACKET [ ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET sub_pattern COMMA ELLIPSIS +## + + + +interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS WILD WILD +## +## Ends in an error in state: 338. +## +## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS sub_pattern . RBRACKET [ ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET sub_pattern COMMA ELLIPSIS sub_pattern +## + + + +interactive_expr: Switch True LBRACE VBAR LBRACKET WILD COMMA WILD +## +## Ends in an error in state: 336. +## +## pattern -> LBRACKET sub_pattern COMMA . ELLIPSIS sub_pattern RBRACKET [ ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET sub_pattern COMMA +## + + + +interactive_expr: Switch True LBRACE VBAR LBRACKET WILD WILD +## +## Ends in an error in state: 335. +## +## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] +## 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 ] +## pattern -> LBRACKET sub_pattern . COMMA ELLIPSIS sub_pattern RBRACKET [ ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET sub_pattern +## + + + +interactive_expr: Switch True LBRACE VBAR LPAR Bytes RPAR WILD +## +## Ends in an error in state: 341. +## +## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern +## + + + +interactive_expr: Switch True LBRACE VBAR VBAR +## +## Ends in an error in state: 514. +## +## case_clause(base_cond) -> VBAR . pattern ARROW base_cond option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR +## + + + +interactive_expr: Switch True LBRACE VBAR WILD ARROW Bytes SEMI WILD +## +## Ends in an error in state: 527. +## +## nseq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## case_clause(base_cond) +## + + + +interactive_expr: Switch True LBRACE VBAR WILD ARROW Bytes VBAR Bytes ARROW Bytes SEMI WILD +## +## Ends in an error in state: 529. +## +## seq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## case_clause(base_cond) +## + + + +interactive_expr: Switch True LBRACE VBAR WILD ARROW True ARROW Bytes Type +## +## Ends in an error in state: 522. +## +## case_clause(base_cond) -> VBAR pattern ARROW base_cond . option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR pattern ARROW 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 215, spurious reduction of production fun_expr -> disj_expr_level ARROW expr +## In state 517, spurious reduction of production base_expr(base_cond) -> fun_expr +## In state 520, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 521, spurious reduction of production base_cond -> base_cond__open(base_cond) +## + + + +interactive_expr: Switch True LBRACE VBAR WILD ARROW True Type +## +## Ends in an error in state: 518. +## +## 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 ] +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ VBAR SEMI RBRACE Or BOOL_OR ARROW ] +## fun_expr -> disj_expr_level . ARROW expr [ VBAR SEMI RBRACE ] +## +## The known suffix of the stack is as follows: +## disj_expr_level +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, 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: 516. +## +## case_clause(base_cond) -> VBAR pattern ARROW . base_cond option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR pattern ARROW +## + + + +interactive_expr: Switch True LBRACE VBAR WILD COMMA Bytes RPAR +## +## Ends in an error in state: 515. +## +## case_clause(base_cond) -> VBAR pattern . ARROW base_cond option(SEMI) [ VBAR RBRACE ] +## +## The known suffix of the stack is as follows: +## VBAR pattern +## +## 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 328, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 331, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 340, spurious reduction of production pattern -> tuple(sub_pattern) +## + + + +interactive_expr: Switch True LBRACE VBAR WILD COMMA VBAR +## +## Ends in an error in state: 327. +## +## tuple(sub_pattern) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern COMMA +## + + + +interactive_expr: Switch True LBRACE VBAR WILD COMMA WILD COMMA VBAR +## +## Ends in an error in state: 329. +## +## nsepseq(sub_pattern,COMMA) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern COMMA +## + + + +interactive_expr: Switch True LBRACE VBAR WILD COMMA WILD WILD +## +## Ends in an error in state: 328. +## +## nsepseq(sub_pattern,COMMA) -> sub_pattern . [ RPAR ARROW ] +## nsepseq(sub_pattern,COMMA) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] +## +## The known suffix of the stack is as follows: +## sub_pattern +## + + + +interactive_expr: Switch True LBRACE VBAR WILD WILD +## +## Ends in an error in state: 432. +## +## pattern -> core_pattern . [ ARROW ] +## sub_pattern -> core_pattern . [ COMMA ] +## +## The known suffix of the stack is as follows: +## core_pattern +## + + + +interactive_expr: Switch True LBRACE WILD +## +## Ends in an error in state: 513. +## +## switch_expr(base_cond) -> Switch switch_expr_ LBRACE . cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Switch switch_expr_ LBRACE +## + + + +interactive_expr: Switch True WILD +## +## Ends in an error in state: 512. +## +## switch_expr(base_cond) -> Switch switch_expr_ . LBRACE cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Switch switch_expr_ +## + + + +interactive_expr: Switch WILD +## +## Ends in an error in state: 83. +## +## switch_expr(base_cond) -> Switch . switch_expr_ LBRACE cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Switch +## + + + +interactive_expr: True ARROW WILD +## +## Ends in an error in state: 214. +## +## fun_expr -> disj_expr_level ARROW . expr [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## disj_expr_level ARROW +## + + + +interactive_expr: True BOOL_AND WILD +## +## Ends in an error in state: 168. +## +## bin_op(conj_expr_level,BOOL_AND,comp_expr_level) -> conj_expr_level BOOL_AND . comp_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## conj_expr_level BOOL_AND +## + + + +interactive_expr: True BOOL_OR WILD +## +## Ends in an error in state: 212. +## +## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level BOOL_OR . conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] +## +## The known suffix of the stack is as follows: +## disj_expr_level BOOL_OR +## + + + +interactive_expr: True CAT WILD +## +## Ends in an error in state: 191. +## +## bin_op(add_expr_level,CAT,cat_expr_level) -> add_expr_level CAT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## add_expr_level CAT +## + + + +interactive_expr: True COLON Ident LPAR Ident VBAR +## +## Ends in an error in state: 134. +## +## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] +## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## type_expr_simple +## +## 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 132, spurious reduction of production option(type_expr_simple_args) -> +## In state 141, 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: 133. +## +## par(nsepseq(type_expr_simple,COMMA)) -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +interactive_expr: True COLON Ident WILD +## +## Ends in an error in state: 132. +## +## type_expr_simple -> Ident . option(type_expr_simple_args) [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +interactive_expr: True COLON LPAR Ident ARROW Ident VBAR +## +## Ends in an error in state: 144. +## +## type_expr_simple -> LPAR type_expr_simple ARROW type_expr_simple . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR type_expr_simple ARROW type_expr_simple +## +## 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 132, spurious reduction of production option(type_expr_simple_args) -> +## In state 141, 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: 143. +## +## type_expr_simple -> LPAR type_expr_simple ARROW . type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR type_expr_simple ARROW +## + + + +interactive_expr: True COLON LPAR Ident COMMA WILD +## +## Ends in an error in state: 135. +## +## nsepseq(type_expr_simple,COMMA) -> type_expr_simple COMMA . nsepseq(type_expr_simple,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## type_expr_simple COMMA +## + + + +interactive_expr: True COLON LPAR Ident RPAR WILD +## +## Ends in an error in state: 151. +## +## add_expr_level -> mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## mult_expr_level +## + + + +interactive_expr: True COLON LPAR Ident VBAR +## +## Ends in an error in state: 142. +## +## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] +## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] +## type_expr_simple -> LPAR type_expr_simple . ARROW type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR type_expr_simple +## +## 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 132, spurious reduction of production option(type_expr_simple_args) -> +## In state 141, 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: 131. +## +## type_expr_simple -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## type_expr_simple -> LPAR . type_expr_simple ARROW type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +interactive_expr: True COLON WILD +## +## Ends in an error in state: 130. +## +## type_annotation_simple -> COLON . type_expr_simple [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## COLON +## + + + +interactive_expr: True EQEQ WILD +## +## Ends in an error in state: 201. +## +## bin_op(comp_expr_level,EQEQ,cat_expr_level) -> comp_expr_level EQEQ . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## comp_expr_level EQEQ +## + + + +interactive_expr: True GE WILD +## +## Ends in an error in state: 199. +## +## bin_op(comp_expr_level,GE,cat_expr_level) -> comp_expr_level GE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## comp_expr_level GE +## + + + +interactive_expr: True GT WILD +## +## Ends in an error in state: 197. +## +## bin_op(comp_expr_level,GT,cat_expr_level) -> comp_expr_level GT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## comp_expr_level GT +## + + + +interactive_expr: True LE WILD +## +## Ends in an error in state: 195. +## +## bin_op(comp_expr_level,LE,cat_expr_level) -> comp_expr_level LE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## comp_expr_level LE +## + + + +interactive_expr: True LPAR True COMMA WILD +## +## Ends in an error in state: 162. +## +## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## expr COMMA +## + + + +interactive_expr: True LPAR True VBAR +## +## Ends in an error in state: 161. +## +## nsepseq(expr,COMMA) -> expr . [ RPAR ] +## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: True LPAR WILD +## +## Ends in an error in state: 155. +## +## call_expr -> core_expr LPAR . nsepseq(expr,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## core_expr LPAR +## + + + +interactive_expr: True LT WILD +## +## Ends in an error in state: 193. +## +## bin_op(comp_expr_level,LT,cat_expr_level) -> comp_expr_level LT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## comp_expr_level LT +## + + + +interactive_expr: True MINUS True COLON LPAR Ident RPAR WILD +## +## Ends in an error in state: 190. +## +## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## add_expr_level MINUS mult_expr_level +## + + + +interactive_expr: True MINUS WILD +## +## Ends in an error in state: 189. +## +## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS . mult_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## add_expr_level MINUS +## + + + +interactive_expr: True Mod WILD +## +## Ends in an error in state: 187. +## +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level Mod . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## mult_expr_level Mod +## + + + +interactive_expr: True NE WILD +## +## Ends in an error in state: 170. +## +## bin_op(comp_expr_level,NE,cat_expr_level) -> comp_expr_level NE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## comp_expr_level NE +## + + + +interactive_expr: True Or WILD +## +## Ends in an error in state: 165. +## +## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level Or . conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] +## +## The known suffix of the stack is as follows: +## disj_expr_level Or +## + + + +interactive_expr: True PLUS True COLON LPAR Ident RPAR WILD +## +## Ends in an error in state: 184. +## +## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level . SLASH unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level . TIMES unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## add_expr_level PLUS mult_expr_level +## + + + +interactive_expr: True PLUS WILD +## +## Ends in an error in state: 183. +## +## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS . mult_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## add_expr_level PLUS +## + + + +interactive_expr: True SLASH WILD +## +## Ends in an error in state: 185. +## +## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level SLASH . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## mult_expr_level SLASH +## + + + +interactive_expr: True TIMES WILD +## +## Ends in an error in state: 152. +## +## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level TIMES . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## mult_expr_level TIMES +## + + + +interactive_expr: True VBAR +## +## Ends in an error in state: 544. +## +## interactive_expr -> expr_with_let_expr . EOF [ # ] +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 399, spurious reduction of production expr_with_let_expr -> expr +## + + + +interactive_expr: True WILD +## +## Ends in an error in state: 154. +## +## call_expr -> core_expr . LPAR nsepseq(expr,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## call_expr -> core_expr . unit [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## call_expr_level_in -> core_expr . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## core_expr +## + + + +interactive_expr: WILD +## +## Ends in an error in state: 542. +## +## interactive_expr' -> . interactive_expr [ # ] +## +## The known suffix of the stack is as follows: +## +## + + + +contract: Attr WILD +## +## Ends in an error in state: 69. +## +## seq(Attr) -> Attr . seq(Attr) [ Let ] +## +## The known suffix of the stack is as follows: +## Attr +## + + + +contract: Let Ident COLON Constr Type +## +## Ends in an error in state: 375. +## +## let_binding -> Ident option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## Ident option(type_annotation) +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 66, spurious reduction of production type_expr -> sum_type +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let Ident EQ WILD +## +## Ends in an error in state: 376. +## +## let_binding -> Ident option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## Ident option(type_annotation) EQ +## + + + +contract: Let Ident WILD +## +## Ends in an error in state: 374. +## +## let_binding -> Ident . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] +## sub_irrefutable -> Ident . [ COMMA ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes COMMA WILD +## +## Ends in an error in state: 310. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## field_pattern COMMA +## + + + +contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes WILD +## +## Ends in an error in state: 309. +## +## nsepseq(field_pattern,COMMA) -> field_pattern . [ RBRACE ] +## 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 ] +## +## The known suffix of the stack is as follows: +## field_pattern +## + + + +contract: Let LBRACE Ident EQ Bytes COMMA WILD +## +## Ends in an error in state: 306. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## field_pattern COMMA +## + + + +contract: Let LBRACE Ident EQ Bytes RBRACE COLON Constr Type +## +## Ends in an error in state: 388. +## +## let_binding -> record_pattern option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## record_pattern option(type_annotation) +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 66, spurious reduction of production type_expr -> sum_type +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let LBRACE Ident EQ Bytes RBRACE EQ WILD +## +## Ends in an error in state: 389. +## +## let_binding -> record_pattern option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## record_pattern option(type_annotation) EQ +## + + + +contract: Let LBRACE Ident EQ Bytes RBRACE WILD +## +## Ends in an error in state: 387. +## +## let_binding -> record_pattern . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] +## sub_irrefutable -> record_pattern . [ COMMA ] +## +## The known suffix of the stack is as follows: +## record_pattern +## + + + +contract: Let LBRACE Ident EQ Bytes WILD +## +## 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 ] +## nseq(__anonymous_0(field_pattern,COMMA)) -> field_pattern . COMMA seq(__anonymous_0(field_pattern,COMMA)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_pattern +## + + + +contract: Let LBRACE Ident EQ VBAR +## +## Ends in an error in state: 283. +## +## field_pattern -> Ident EQ . sub_pattern [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## Ident EQ +## + + + +contract: Let LBRACE Ident WILD +## +## Ends in an error in state: 282. +## +## field_pattern -> Ident . EQ sub_pattern [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Let LBRACE WILD +## +## Ends in an error in state: 281. +## +## record_pattern -> LBRACE . sep_or_term_list(field_pattern,COMMA) RBRACE [ SEMI RPAR RBRACKET RBRACE EQ COMMA COLON ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +contract: Let LPAR C_Some VBAR +## +## Ends in an error in state: 288. +## +## constr_pattern -> C_Some . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## C_Some +## + + + +contract: Let LPAR Constr LBRACKET VBAR +## +## Ends in an error in state: 280. +## +## list__(sub_pattern) -> LBRACKET . option(sep_or_term_list(sub_pattern,SEMI)) RBRACKET [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## LBRACKET +## + + + +contract: Let LPAR Constr LBRACKET WILD SEMI VBAR +## +## Ends in an error in state: 313. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## sub_pattern SEMI +## + + + +contract: Let LPAR Constr LBRACKET WILD SEMI WILD SEMI VBAR +## +## Ends in an error in state: 315. +## +## 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 ] +## +## The known suffix of the stack is as follows: +## sub_pattern SEMI +## + + + +contract: Let LPAR Constr LBRACKET WILD SEMI WILD WILD +## +## Ends in an error in state: 314. +## +## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] +## 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 ] +## +## The known suffix of the stack is as follows: +## sub_pattern +## + + + +contract: Let LPAR Constr LBRACKET WILD WILD +## +## Ends in an error in state: 312. +## +## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] +## 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 ] +## +## The known suffix of the stack is as follows: +## sub_pattern +## + + + +contract: Let LPAR Constr LPAR VBAR +## +## Ends in an error in state: 279. +## +## par(ptuple) -> LPAR . ptuple RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## par(sub_pattern) -> LPAR . sub_pattern RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## unit -> LPAR . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Let LPAR Constr LPAR WILD COMMA Bytes ARROW +## +## Ends in an error in state: 332. +## +## par(ptuple) -> LPAR ptuple . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## LPAR ptuple +## +## 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 328, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 331, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 324, spurious reduction of production ptuple -> tuple(sub_pattern) +## + + + +contract: Let LPAR Constr LPAR WILD WILD +## +## Ends in an error in state: 325. +## +## par(sub_pattern) -> LPAR sub_pattern . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## LPAR sub_pattern +## + + + +contract: Let LPAR Constr SEMI +## +## Ends in an error in state: 372. +## +## par(closed_irrefutable) -> LPAR closed_irrefutable . RPAR [ RPAR EQ COMMA COLON ] +## +## The known suffix of the stack is as follows: +## LPAR closed_irrefutable +## +## 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 287, spurious reduction of production constr_pattern -> Constr +## In state 371, spurious reduction of production closed_irrefutable -> constr_pattern +## + + + +contract: Let LPAR Constr VBAR +## +## Ends in an error in state: 287. +## +## constr_pattern -> Constr . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## constr_pattern -> Constr . [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Let LPAR RPAR COLON Constr Type +## +## Ends in an error in state: 379. +## +## let_binding -> unit option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## unit option(type_annotation) +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 66, spurious reduction of production type_expr -> sum_type +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let LPAR RPAR EQ WILD +## +## Ends in an error in state: 380. +## +## let_binding -> unit option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## unit option(type_annotation) EQ +## + + + +contract: Let LPAR RPAR WILD +## +## Ends in an error in state: 378. +## +## let_binding -> unit . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] +## sub_irrefutable -> unit . [ COMMA ] +## +## The known suffix of the stack is as follows: +## unit +## + + + +contract: Let LPAR VBAR +## +## Ends in an error in state: 354. +## +## par(closed_irrefutable) -> LPAR . closed_irrefutable RPAR [ RPAR EQ COMMA COLON ] +## unit -> LPAR . RPAR [ RPAR EQ COMMA COLON ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Let LPAR WILD COLON WILD +## +## Ends in an error in state: 369. +## +## typed_pattern -> irrefutable COLON . type_expr [ RPAR ] +## +## The known suffix of the stack is as follows: +## irrefutable COLON +## + + + +contract: Let LPAR WILD COMMA Ident EQ +## +## Ends in an error in state: 368. +## +## closed_irrefutable -> irrefutable . [ RPAR ] +## typed_pattern -> irrefutable . COLON type_expr [ RPAR ] +## +## The known suffix of the stack is as follows: +## irrefutable +## +## 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 362, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 367, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) +## In state 359, spurious reduction of production irrefutable -> tuple(sub_irrefutable) +## + + + +contract: Let LPAR WILD RPAR COLON Constr Type +## +## Ends in an error in state: 392. +## +## let_binding -> par(closed_irrefutable) option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## par(closed_irrefutable) option(type_annotation) +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 66, spurious reduction of production type_expr -> sum_type +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let LPAR WILD RPAR EQ WILD +## +## Ends in an error in state: 393. +## +## let_binding -> par(closed_irrefutable) option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## par(closed_irrefutable) option(type_annotation) EQ +## + + + +contract: Let LPAR WILD RPAR WILD +## +## Ends in an error in state: 391. +## +## let_binding -> par(closed_irrefutable) . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] +## sub_irrefutable -> par(closed_irrefutable) . [ COMMA ] +## +## The known suffix of the stack is as follows: +## par(closed_irrefutable) +## + + + +contract: Let LPAR WILD WILD +## +## Ends in an error in state: 360. +## +## irrefutable -> sub_irrefutable . [ RPAR COLON ] +## tuple(sub_irrefutable) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR COLON ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable +## + + + +contract: Let Rec VBAR +## +## Ends in an error in state: 532. +## +## let_declaration -> seq(Attr) Let Rec . let_binding [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## seq(Attr) Let Rec +## + + + +contract: Let VBAR +## +## Ends in an error in state: 75. +## +## let_declaration -> seq(Attr) Let . let_binding [ Type SEMI Let EOF Attr ] +## let_declaration -> seq(Attr) Let . Rec let_binding [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## seq(Attr) Let +## + + + +contract: Let WILD COLON Ident Type +## +## Ends in an error in state: 80. +## +## let_binding -> WILD option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## WILD option(type_annotation) +## +## 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 8, spurious reduction of production core_type -> Ident +## In state 23, spurious reduction of production fun_type -> core_type +## In state 68, spurious reduction of production type_expr -> fun_type +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let WILD COLON WILD +## +## Ends in an error in state: 77. +## +## type_annotation -> COLON . type_expr [ EQ ] +## +## The known suffix of the stack is as follows: +## COLON +## + + + +contract: Let WILD COMMA Ident COLON Constr Type +## +## Ends in an error in state: 383. +## +## let_binding -> tuple(sub_irrefutable) option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## tuple(sub_irrefutable) option(type_annotation) +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 66, spurious reduction of production type_expr -> sum_type +## In state 78, spurious reduction of production type_annotation -> COLON type_expr +## In state 79, spurious reduction of production option(type_annotation) -> type_annotation +## + + + +contract: Let WILD COMMA Ident EQ WILD +## +## Ends in an error in state: 384. +## +## let_binding -> tuple(sub_irrefutable) option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## tuple(sub_irrefutable) option(type_annotation) EQ +## + + + +contract: Let WILD COMMA Ident RPAR +## +## Ends in an error in state: 382. +## +## let_binding -> tuple(sub_irrefutable) . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## tuple(sub_irrefutable) +## +## 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 362, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 367, 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: 361. +## +## tuple(sub_irrefutable) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable COMMA +## + + + +contract: Let WILD COMMA WILD COMMA VBAR +## +## Ends in an error in state: 363. +## +## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable COMMA +## + + + +contract: Let WILD COMMA WILD WILD +## +## Ends in an error in state: 362. +## +## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . [ RPAR EQ COLON ] +## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] +## +## The known suffix of the stack is as follows: +## sub_irrefutable +## + + + +contract: Let WILD EQ Bytes VBAR +## +## Ends in an error in state: 535. +## +## declaration -> let_declaration . option(SEMI) [ Type Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## let_declaration +## +## 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 154, spurious reduction of production call_expr_level_in -> core_expr +## In state 172, spurious reduction of production option(type_annotation_simple) -> +## In state 173, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 174, spurious reduction of production unary_expr_level -> call_expr_level +## In state 127, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 151, spurious reduction of production add_expr_level -> mult_expr_level +## In state 182, spurious reduction of production cat_expr_level -> add_expr_level +## In state 203, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 210, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 217, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 164, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 221, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 222, spurious reduction of production expr -> base_cond__open(expr) +## In state 531, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 534, spurious reduction of production let_declaration -> seq(Attr) Let let_binding +## + + + +contract: Let WILD EQ WILD +## +## Ends in an error in state: 81. +## +## let_binding -> WILD option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## WILD option(type_annotation) EQ +## + + + +contract: Let WILD WILD +## +## Ends in an error in state: 76. +## +## let_binding -> WILD . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] +## sub_irrefutable -> WILD . [ COMMA ] +## +## The known suffix of the stack is as follows: +## WILD +## + + + +contract: Type Ident EQ Constr DOT WILD +## +## Ends in an error in state: 11. +## +## core_type -> Constr DOT . Ident [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Constr DOT +## + + + +contract: Type Ident EQ Constr LPAR Ident RPAR WILD +## +## Ends in an error in state: 37. +## +## nsepseq(variant,VBAR) -> variant . [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## nsepseq(variant,VBAR) -> variant . VBAR nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## variant +## + + + +contract: Type Ident EQ Constr LPAR Ident Type +## +## Ends in an error in state: 35. +## +## variant -> Constr LPAR fun_type . RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Constr LPAR fun_type +## +## 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 8, spurious reduction of production core_type -> Ident +## In state 23, spurious reduction of production fun_type -> core_type +## + + + +contract: Type Ident EQ Constr LPAR WILD +## +## Ends in an error in state: 6. +## +## variant -> Constr LPAR . fun_type RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Constr LPAR +## + + + +contract: Type Ident EQ Constr RPAR +## +## Ends in an error in state: 71. +## +## declaration -> type_decl . option(SEMI) [ Type Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## type_decl +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 66, spurious reduction of production type_expr -> sum_type +## In state 65, spurious reduction of production type_decl -> Type Ident EQ type_expr +## + + + +contract: Type Ident EQ Constr SEMI WILD +## +## Ends in an error in state: 539. +## +## declarations -> declaration . [ EOF ] +## declarations -> declaration . declarations [ EOF ] +## +## The known suffix of the stack is as follows: +## declaration +## + + + +contract: Type Ident EQ Constr VBAR WILD +## +## Ends in an error in state: 38. +## +## nsepseq(variant,VBAR) -> variant VBAR . nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## variant VBAR +## + + + +contract: Type Ident EQ Constr WILD +## +## Ends in an error in state: 48. +## +## core_type -> Constr . DOT Ident [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## variant -> Constr . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## variant -> Constr . LPAR fun_type RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Type Ident EQ Ident ARROW WILD +## +## Ends in an error in state: 24. +## +## fun_type -> Ident ARROW . fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Ident ARROW +## + + + +contract: Type Ident EQ Ident LPAR Ident Type +## +## Ends in an error in state: 17. +## +## tuple(fun_type) -> fun_type . COMMA nsepseq(fun_type,COMMA) [ RPAR ] +## type_args -> fun_type . [ RPAR ] +## +## The known suffix of the stack is as follows: +## fun_type +## +## 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 8, spurious reduction of production core_type -> Ident +## In state 23, spurious reduction of production fun_type -> core_type +## + + + +contract: Type Ident EQ Ident LPAR WILD +## +## Ends in an error in state: 9. +## +## par(type_args) -> LPAR . type_args RPAR [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Type Ident EQ Ident WILD +## +## Ends in an error in state: 8. +## +## core_type -> Ident . [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## core_type -> Ident . par(type_args) [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## fun_type -> Ident . ARROW fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Type Ident EQ LBRACE Ident COLON Constr Type +## +## Ends in an error in state: 58. +## +## nsepseq(field_decl,COMMA) -> field_decl . [ RBRACE ] +## nsepseq(field_decl,COMMA) -> field_decl . COMMA nsepseq(field_decl,COMMA) [ RBRACE ] +## nseq(__anonymous_0(field_decl,COMMA)) -> field_decl . COMMA seq(__anonymous_0(field_decl,COMMA)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 50, spurious reduction of production type_expr_field -> sum_type +## In state 49, spurious reduction of production field_decl -> Ident COLON type_expr_field +## + + + +contract: Type Ident EQ LBRACE Ident COLON Ident WILD +## +## Ends in an error in state: 47. +## +## core_type -> Ident . [ RBRACE COMMA ] +## core_type -> Ident . par(type_args) [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Type Ident EQ LBRACE Ident COLON LPAR Ident Type +## +## Ends in an error in state: 45. +## +## par(fun_type) -> LPAR fun_type . RPAR [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## LPAR fun_type +## +## 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 8, spurious reduction of production core_type -> Ident +## In state 23, spurious reduction of production fun_type -> core_type +## + + + +contract: Type Ident EQ LBRACE Ident COLON LPAR WILD +## +## Ends in an error in state: 44. +## +## par(fun_type) -> LPAR . fun_type RPAR [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Type Ident EQ LBRACE Ident COLON WILD +## +## Ends in an error in state: 43. +## +## field_decl -> Ident COLON . type_expr_field [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## Ident COLON +## + + + +contract: Type Ident EQ LBRACE Ident COMMA Ident COLON Constr Type +## +## Ends in an error in state: 62. +## +## nsepseq(field_decl,COMMA) -> field_decl . [ RBRACE ] +## nsepseq(field_decl,COMMA) -> field_decl . COMMA nsepseq(field_decl,COMMA) [ RBRACE ] +## seq(__anonymous_0(field_decl,COMMA)) -> field_decl . COMMA seq(__anonymous_0(field_decl,COMMA)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl +## +## 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 48, spurious reduction of production variant -> Constr +## In state 37, spurious reduction of production nsepseq(variant,VBAR) -> variant +## In state 52, spurious reduction of production sum_type -> nsepseq(variant,VBAR) +## In state 50, spurious reduction of production type_expr_field -> sum_type +## In state 49, spurious reduction of production field_decl -> Ident COLON type_expr_field +## + + + +contract: Type Ident EQ LBRACE Ident COMMA Ident COMMA WILD +## +## Ends in an error in state: 63. +## +## nsepseq(field_decl,COMMA) -> field_decl COMMA . nsepseq(field_decl,COMMA) [ RBRACE ] +## seq(__anonymous_0(field_decl,COMMA)) -> field_decl COMMA . seq(__anonymous_0(field_decl,COMMA)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl COMMA +## + + + +contract: Type Ident EQ LBRACE Ident COMMA WILD +## +## Ends in an error in state: 59. +## +## nsepseq(field_decl,COMMA) -> field_decl COMMA . nsepseq(field_decl,COMMA) [ RBRACE ] +## nseq(__anonymous_0(field_decl,COMMA)) -> field_decl COMMA . seq(__anonymous_0(field_decl,COMMA)) [ RBRACE ] +## +## The known suffix of the stack is as follows: +## field_decl COMMA +## + + + +contract: Type Ident EQ LBRACE Ident WILD +## +## Ends in an error in state: 42. +## +## field_decl -> Ident . [ RBRACE COMMA ] +## field_decl -> Ident . COLON type_expr_field [ RBRACE COMMA ] +## +## The known suffix of the stack is as follows: +## Ident +## + + + +contract: Type Ident EQ LBRACE WILD +## +## Ends in an error in state: 41. +## +## record_type -> LBRACE . sep_or_term_list(field_decl,COMMA) RBRACE [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## LBRACE +## + + + +contract: Type Ident EQ LPAR Constr WILD +## +## Ends in an error in state: 10. +## +## core_type -> Constr . DOT Ident [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Type Ident EQ LPAR Ident COMMA Ident COMMA WILD +## +## Ends in an error in state: 21. +## +## nsepseq(fun_type,COMMA) -> fun_type COMMA . nsepseq(fun_type,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## fun_type COMMA +## + + + +contract: Type Ident EQ LPAR Ident COMMA Ident RPAR ARROW WILD +## +## Ends in an error in state: 29. +## +## fun_type -> LPAR tuple(fun_type) RPAR ARROW . fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## LPAR tuple(fun_type) RPAR ARROW +## + + + +contract: Type Ident EQ LPAR Ident COMMA Ident RPAR WILD +## +## Ends in an error in state: 28. +## +## fun_type -> LPAR tuple(fun_type) RPAR . ARROW fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## fun_type -> LPAR tuple(fun_type) RPAR . [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## LPAR tuple(fun_type) RPAR +## + + + +contract: Type Ident EQ LPAR Ident COMMA Ident Type +## +## Ends in an error in state: 20. +## +## nsepseq(fun_type,COMMA) -> fun_type . [ RPAR ] +## nsepseq(fun_type,COMMA) -> fun_type . COMMA nsepseq(fun_type,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## fun_type +## +## 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 8, spurious reduction of production core_type -> Ident +## In state 23, spurious reduction of production fun_type -> core_type +## + + + +contract: Type Ident EQ LPAR Ident COMMA WILD +## +## Ends in an error in state: 18. +## +## tuple(fun_type) -> fun_type COMMA . nsepseq(fun_type,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## fun_type COMMA +## + + + +contract: Type Ident EQ LPAR Ident RPAR ARROW WILD +## +## Ends in an error in state: 33. +## +## fun_type -> LPAR fun_type RPAR ARROW . fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## LPAR fun_type RPAR ARROW +## + + + +contract: Type Ident EQ LPAR Ident RPAR WILD +## +## Ends in an error in state: 32. +## +## fun_type -> LPAR fun_type RPAR . ARROW fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## par(fun_type) -> LPAR fun_type RPAR . [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## LPAR fun_type RPAR +## + + + +contract: Type Ident EQ LPAR Ident Type +## +## Ends in an error in state: 31. +## +## fun_type -> LPAR fun_type . RPAR ARROW fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## par(fun_type) -> LPAR fun_type . RPAR [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## tuple(fun_type) -> fun_type . COMMA nsepseq(fun_type,COMMA) [ RPAR ] +## +## The known suffix of the stack is as follows: +## LPAR fun_type +## +## 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 8, spurious reduction of production core_type -> Ident +## In state 23, spurious reduction of production fun_type -> core_type +## + + + +contract: Type Ident EQ LPAR WILD +## +## Ends in an error in state: 7. +## +## fun_type -> LPAR . fun_type RPAR ARROW fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## fun_type -> LPAR . tuple(fun_type) RPAR ARROW fun_type [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## fun_type -> LPAR . tuple(fun_type) RPAR [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## par(fun_type) -> LPAR . fun_type RPAR [ Type SEMI RPAR Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## LPAR +## + + + +contract: Type Ident EQ VBAR Constr WILD +## +## Ends in an error in state: 5. +## +## variant -> Constr . [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## variant -> Constr . LPAR fun_type RPAR [ VBAR Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## Constr +## + + + +contract: Type Ident EQ VBAR WILD +## +## Ends in an error in state: 4. +## +## sum_type -> VBAR . nsepseq(variant,VBAR) [ Type SEMI RPAR RBRACE Let EQ EOF COMMA Attr ] +## +## The known suffix of the stack is as follows: +## VBAR +## + + + +contract: Type Ident EQ WILD +## +## Ends in an error in state: 3. +## +## type_decl -> Type Ident EQ . type_expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## Type Ident EQ +## + + + +contract: Type Ident WILD +## +## Ends in an error in state: 2. +## +## type_decl -> Type Ident . EQ type_expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## Type Ident +## + + + +contract: Type WILD +## +## Ends in an error in state: 1. +## +## type_decl -> Type . Ident EQ type_expr [ Type SEMI Let EOF Attr ] +## +## The known suffix of the stack is as follows: +## Type +## + + + +contract: WILD +## +## Ends in an error in state: 0. +## +## contract' -> . contract [ # ] +## +## The known suffix of the stack is as follows: +## +## + + + diff --git a/src/passes/1-parser/reasonligo/ParserMain.ml b/src/passes/1-parser/reasonligo/ParserMain.ml index ae036f336..72fb453ba 100644 --- a/src/passes/1-parser/reasonligo/ParserMain.ml +++ b/src/passes/1-parser/reasonligo/ParserMain.ml @@ -1,8 +1,47 @@ -(** Driver for the ReasonLIGO parser *) +(* Driver for the ReasonLIGO parser *) + +module Region = Simple_utils.Region +module SSet = Set.Make (String) module IO = struct - let options = EvalOpt.(read ~lang:ReasonLIGO ~ext:".religo") + let options = EvalOpt.(read ~lang:`ReasonLIGO ~ext:".religo") + end + +module SubIO = + struct + type options = < + libs : string list; + verbose : SSet.t; + offsets : bool; + lang : EvalOpt.language; + ext : string; + mode : [`Byte | `Point]; + cmd : EvalOpt.command; + mono : bool + > + + let options : options = + object + method libs = IO.options#libs + method verbose = IO.options#verbose + method offsets = IO.options#offsets + method lang = IO.options#lang + method ext = IO.options#ext + method mode = IO.options#mode + method cmd = IO.options#cmd + method mono = IO.options#mono + end + + let make = + EvalOpt.make ~libs:options#libs + ~verbose:options#verbose + ~offsets:options#offsets + ~lang:options#lang + ~ext:options#ext + ~mode:options#mode + ~cmd:options#cmd + ~mono:options#mono end module Parser = @@ -22,133 +61,18 @@ module ParserLog = module Lexer = Lexer.Make (LexToken) module Unit = - ParserUnit.Make (Lexer)(AST)(Parser)(ParErr)(ParserLog)(IO) + ParserUnit.Make (Lexer)(AST)(Parser)(ParErr)(ParserLog)(SubIO) (* Main *) -let issue_error error : ('a, string Region.reg) Stdlib.result = - Stdlib.Error (Unit.format_error ~offsets:IO.options#offsets - IO.options#mode error) - -let parse parser : ('a, string Region.reg) Stdlib.result = - try parser () with - (* Ad hoc errors from the parser *) - - SyntaxError.Error (SyntaxError.WrongFunctionArguments expr) -> - let msg = "It looks like you are defining a function, \ - however we do not\n\ - understand the parameters declaration.\n\ - Examples of valid functions:\n\ - let x = (a: string, b: int) : int => 3;\n\ - let x = (a: string) : string => \"Hello, \" ++ a;\n" - and region = AST.expr_to_region expr in - let error = Unit.short_error ~offsets:IO.options#offsets - IO.options#mode msg region - in Stdlib.Error Region.{value=error; region} - - (* Scoping errors *) - - | Scoping.Error (Scoping.Reserved_name name) -> - let token = - Lexer.Token.mk_ident name.Region.value name.Region.region in - (match token with - (* Cannot fail because [name] is a not a - reserved name for the lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - issue_error - ("Reserved name.\nHint: Change the name.\n", None, invalid)) - - | Scoping.Error (Scoping.Duplicate_variant name) -> - let token = - Lexer.Token.mk_constr name.Region.value name.Region.region in - let point = "Duplicate constructor in this sum type declaration.\n\ - Hint: Change the constructor.\n", - None, token - in issue_error point - - | Scoping.Error (Scoping.Non_linear_pattern var) -> - let token = - Lexer.Token.mk_ident var.Region.value var.Region.region in - (match token with - (* Cannot fail because [var] is a not a - reserved name for the lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - let point = "Repeated variable in this pattern.\n\ - Hint: Change the name.\n", - None, invalid - in issue_error point) - - | Scoping.Error (Scoping.Duplicate_field name) -> - let token = - Lexer.Token.mk_ident name.Region.value name.Region.region in - (match token with - (* Cannot fail because [name] is a not a - reserved name for the lexer. *) - Stdlib.Error _ -> assert false - | Ok invalid -> - let point = - "Duplicate field name in this record declaration.\n\ - Hint: Change the name.\n", - None, invalid - in issue_error point) - -(* Preprocessing the input source with CPP *) - -module SSet = Utils.String.Set -let sprintf = Printf.sprintf - -(* Path for CPP inclusions (#include) *) - -let lib_path = - match IO.options#libs with - [] -> "" - | libs -> let mk_I dir path = sprintf " -I %s%s" dir path - in List.fold_right mk_I libs "" - -let prefix = - match IO.options#input with - None | Some "-" -> "temp" - | Some file -> Filename.(file |> basename |> remove_extension) - -let suffix = ".pp" ^ IO.options#ext - -let pp_input = - if SSet.mem "cpp" IO.options#verbose - then prefix ^ suffix - else let pp_input, pp_out = - Filename.open_temp_file prefix suffix - in close_out pp_out; pp_input - -let cpp_cmd = - match IO.options#input with - None | Some "-" -> - sprintf "cpp -traditional-cpp%s - > %s" - lib_path pp_input - | Some file -> - sprintf "cpp -traditional-cpp%s %s > %s" - lib_path file pp_input +let wrap = function + Stdlib.Ok _ -> flush_all () +| Error msg -> + (flush_all (); Printf.eprintf "\027[31m%s\027[0m%!" msg.Region.value) let () = - if Sys.command cpp_cmd <> 0 then - Printf.eprintf "External error: \"%s\" failed." cpp_cmd - -(* Instantiating the lexer and calling the parser *) - -let lexer_inst = - match Lexer.open_token_stream (Lexer.File pp_input) with - Ok instance -> - if IO.options#expr - then - match parse (fun () -> Unit.apply instance Unit.parse_expr) with - Stdlib.Ok _ -> () - | Error Region.{value; _} -> - Printf.eprintf "\027[31m%s\027[0m%!" value - else - (match parse (fun () -> Unit.apply instance Unit.parse_contract) with - Stdlib.Ok _ -> () - | Error Region.{value; _} -> - Printf.eprintf "\027[31m%s\027[0m%!" value) - | Stdlib.Error (Lexer.File_opening msg) -> - Printf.eprintf "\027[31m%s\027[0m%!" msg + match IO.options#input with + Some "-" | None -> + Unit.contract_in_stdin () |> wrap + | Some file_path -> + Unit.contract_in_file file_path |> wrap diff --git a/src/passes/1-parser/reasonligo/Stubs/Preprocessor.ml b/src/passes/1-parser/reasonligo/Stubs/Preprocessor.ml deleted file mode 100644 index 7391fb5e8..000000000 --- a/src/passes/1-parser/reasonligo/Stubs/Preprocessor.ml +++ /dev/null @@ -1 +0,0 @@ -module Preproc = Preproc diff --git a/src/passes/1-parser/reasonligo/Stubs/Simple_utils.ml b/src/passes/1-parser/reasonligo/Stubs/Simple_utils.ml deleted file mode 100644 index 0360af1b5..000000000 --- a/src/passes/1-parser/reasonligo/Stubs/Simple_utils.ml +++ /dev/null @@ -1,2 +0,0 @@ -module Region = Region -module Pos = Pos diff --git a/src/passes/1-parser/shared/ParserUnit.ml b/src/passes/1-parser/shared/ParserUnit.ml index 89bb03a61..5c5609d44 100644 --- a/src/passes/1-parser/shared/ParserUnit.ml +++ b/src/passes/1-parser/shared/ParserUnit.ml @@ -241,20 +241,32 @@ module Make (Lexer: Lexer.S) (* Parsing a contract in a file *) - let parse_file (source : string) = + let contract_in_file (source : string) = let options = SubIO.make ~input:(Some source) ~expr:false in gen_parser options (Lexer.File source) parse_contract (* Parsing a contract in a string *) - let parse_string (source : string) = + let contract_in_string (source : string) = let options = SubIO.make ~input:None ~expr:false in gen_parser options (Lexer.String source) parse_contract + (* Parsing a contract in stdin *) + + let contract_in_stdin () = + let options = SubIO.make ~input:None ~expr:false in + gen_parser options Lexer.Stdin parse_contract + (* Parsing an expression in a string *) - let parse_expression (source : string) = + let expr_in_string (source : string) = let options = SubIO.make ~input:None ~expr:true in gen_parser options (Lexer.String source) parse_expr + (* Parsing an expression in stdin *) + + let expr_in_stdin () = + let options = SubIO.make ~input:None ~expr:true in + gen_parser options Lexer.Stdin parse_expr + end diff --git a/src/passes/1-parser/shared/ParserUnit.mli b/src/passes/1-parser/shared/ParserUnit.mli index 54cbc4847..5d9f592bc 100644 --- a/src/passes/1-parser/shared/ParserUnit.mli +++ b/src/passes/1-parser/shared/ParserUnit.mli @@ -65,12 +65,18 @@ module Make (Lexer : Lexer.S) (* Parsers *) - val parse_file : + val contract_in_file : string -> (AST.t, message Region.reg) Stdlib.result - val parse_string : + val contract_in_string : string -> (AST.t, message Region.reg) Stdlib.result - val parse_expression : + val contract_in_stdin : + unit -> (AST.t, message Region.reg) Stdlib.result + + val expr_in_string : string -> (AST.expr, message Region.reg) Stdlib.result - end + + val expr_in_stdin : + unit -> (AST.expr, message Region.reg) Stdlib.result +end diff --git a/vendors/Preprocessor/.links b/vendors/Preprocessor/.links index a79e26681..71ff816cb 100644 --- a/vendors/Preprocessor/.links +++ b/vendors/Preprocessor/.links @@ -1,5 +1 @@ $HOME/git/OCaml-build/Makefile -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/pos.ml -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.mli -$HOME/git/ligo/vendors/ligo-utils/simple-utils/region.ml diff --git a/vendors/Preprocessor/LICENSE b/vendors/Preprocessor/LICENSE index 33a225af0..8a89cd961 100644 --- a/vendors/Preprocessor/LICENSE +++ b/vendors/Preprocessor/LICENSE @@ -1,6 +1,7 @@ MIT License -Copyright (c) 2018 Christian Rinderknecht +Copyright (c) 2018, 2019, 2020 Christian Rinderknecht, + 2020 LigoLANG Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/vendors/Preprocessor/Makefile.cfg b/vendors/Preprocessor/Makefile.cfg index 13c016eb6..ba66d6b5f 100644 --- a/vendors/Preprocessor/Makefile.cfg +++ b/vendors/Preprocessor/Makefile.cfg @@ -1,4 +1,5 @@ SHELL := dash BFLAGS := -strict-sequence -w +A-48-4 -#OCAMLC := ocamlcp -#OCAMLOPT := ocamloptp + +clean:: +> \rm -f Version.ml diff --git a/vendors/Preprocessor/Preproc.mll b/vendors/Preprocessor/Preproc.mll index cb2779cc5..35e0a5cac 100644 --- a/vendors/Preprocessor/Preproc.mll +++ b/vendors/Preprocessor/Preproc.mll @@ -331,7 +331,7 @@ let expr state buffer : mode = let directives = [ "define"; "elif"; "else"; "endif"; "endregion"; "error"; - "if"; "include"; "line"; "region"; "undef" (* "warning" *) + "if"; "include"; (*"line";*) "region"; "undef" (* "; warning" *) ] (* END OF HEADER *) @@ -572,12 +572,13 @@ rule scan state = parse in expand_offset state; print state ("#" ^ space ^ "endregion" ^ msg ^ "\n"); scan (reduce_region state region) lexbuf +(* | "line" -> expand_offset state; print state ("#" ^ space ^ "line"); line_ind state lexbuf; scan {state with offset = Prefix 0} lexbuf -(* + | "warning" -> let start_p, end_p = region in let msg = message [] lexbuf in @@ -643,7 +644,7 @@ and symbol state = parse ident as id { id, mk_reg lexbuf } | _ { fail Invalid_symbol state lexbuf } - +(* (* Line indicator (#line) *) and line_ind state = parse @@ -674,6 +675,7 @@ and opt_line_com state = parse | eof { copy state lexbuf } | blank+ { copy state lexbuf; opt_line_com state lexbuf } | "//" { print state ("//" ^ message [] lexbuf) } + *) (* New lines and verbatim sequence of characters *) diff --git a/vendors/Preprocessor/Preprocessor.install b/vendors/Preprocessor/Preprocessor.install new file mode 100644 index 000000000..a4624cc33 --- /dev/null +++ b/vendors/Preprocessor/Preprocessor.install @@ -0,0 +1,35 @@ +lib: [ + "_build/install/default/lib/Preprocessor/META" + "_build/install/default/lib/Preprocessor/E_Lexer.mli" + "_build/install/default/lib/Preprocessor/E_Lexer.mll" + "_build/install/default/lib/Preprocessor/EvalOpt.mli" + "_build/install/default/lib/Preprocessor/EvalOpt.ml" + "_build/install/default/lib/Preprocessor/Preproc.mli" + "_build/install/default/lib/Preprocessor/Preproc.mll" + "_build/install/default/lib/Preprocessor/E_AST.ml" + "_build/install/default/lib/Preprocessor/Preprocessor.a" + "_build/install/default/lib/Preprocessor/Preprocessor.cma" + "_build/install/default/lib/Preprocessor/Preprocessor.cmxa" + "_build/install/default/lib/Preprocessor/Preprocessor.cmxs" + "_build/install/default/lib/Preprocessor/dune-package" + "_build/install/default/lib/Preprocessor/opam" + "_build/install/default/lib/Preprocessor/Preprocessor.cmi" + "_build/install/default/lib/Preprocessor/Preprocessor.cmt" + "_build/install/default/lib/Preprocessor/Preprocessor.cmx" + "_build/install/default/lib/Preprocessor/Preprocessor__E_Lexer.cmi" + "_build/install/default/lib/Preprocessor/Preprocessor__E_Lexer.cmt" + "_build/install/default/lib/Preprocessor/Preprocessor__E_Lexer.cmx" + "_build/install/default/lib/Preprocessor/Preprocessor__EvalOpt.cmi" + "_build/install/default/lib/Preprocessor/Preprocessor__EvalOpt.cmt" + "_build/install/default/lib/Preprocessor/Preprocessor__EvalOpt.cmx" + "_build/install/default/lib/Preprocessor/Preprocessor__Preproc.cmi" + "_build/install/default/lib/Preprocessor/Preprocessor__Preproc.cmt" + "_build/install/default/lib/Preprocessor/Preprocessor__Preproc.cmx" + "_build/install/default/lib/Preprocessor/Preprocessor__E_AST.cmi" + "_build/install/default/lib/Preprocessor/Preprocessor__E_AST.cmt" + "_build/install/default/lib/Preprocessor/Preprocessor__E_AST.cmx" +] +doc: [ + "_build/install/default/doc/Preprocessor/LICENSE" + "_build/install/default/doc/Preprocessor/README.md" +] diff --git a/src/passes/1-parser/cameligo/Stubs/Preprocessor.ml b/vendors/Preprocessor/Preprocessor.ml similarity index 50% rename from src/passes/1-parser/cameligo/Stubs/Preprocessor.ml rename to vendors/Preprocessor/Preprocessor.ml index 7391fb5e8..0977e8bd6 100644 --- a/src/passes/1-parser/cameligo/Stubs/Preprocessor.ml +++ b/vendors/Preprocessor/Preprocessor.ml @@ -1 +1,2 @@ module Preproc = Preproc +module EvalOpt = EvalOpt diff --git a/vendors/Preprocessor/Preprocessor.opam b/vendors/Preprocessor/Preprocessor.opam new file mode 100644 index 000000000..e7d47fcdc --- /dev/null +++ b/vendors/Preprocessor/Preprocessor.opam @@ -0,0 +1,15 @@ +opam-version : "2.0" +name : "Preprocessor" +version : "1.0" +synopsis : "A C#-like preprocessor for LIGO" +description : "The following preprocessing directives are supported: #define, #elif, #else, #endif, #endregion, #error, #if, #include, #region, #undef." +maintainer : "rinderknecht@free.fr" +authors : "Christian Rinderknecht" +license : "MIT" +homepage : "https://gitlab.com/ligolang/Preprocessor" +bug-reports : "https://gitlab.com/ligolang/ligo-utils/issues" +depends : ["dune" "base" "ocaml" "simple-utils"] +build : [ + [ "sh" "-c" "printf 'let version = \"%s\"' \"$(git describe --always --dirty --abbrev=0)\" > Version.ml" ] + [ "dune" "build" "-p" name "-j" jobs ] + ] diff --git a/vendors/Preprocessor/README.md b/vendors/Preprocessor/README.md new file mode 100644 index 000000000..5a70dd9a8 --- /dev/null +++ b/vendors/Preprocessor/README.md @@ -0,0 +1,21 @@ +# A preprocessor a la C# in OCaml + +The following preprocessing directives are supported + * #define + * #elif + * #else + * #endif + * #endregion + * #error + * #if + * #include + * #region + * #undef + +Note: Because it is meant for LIGO, there is no error raised for +invalid preprocessing directives, as the symbol `#` is valid in +PascaLIGO (cons operator for lists). Also, the preprocessor may report an error on some weird but valid PascaLIGO contracts, like + +const include : list (int) = list [1] +const l : list (int) = 0 +# include diff --git a/vendors/Preprocessor/dune b/vendors/Preprocessor/dune index 5ed61429d..a8636f4e4 100644 --- a/vendors/Preprocessor/dune +++ b/vendors/Preprocessor/dune @@ -1,19 +1,27 @@ +;; Building the preprocessor as a library + +(library + (name Preprocessor) + (public_name Preprocessor) + (wrapped true) + (libraries + getopt + simple-utils) + (modules EvalOpt E_Parser E_Lexer E_AST Preproc) + (preprocess + (pps bisect_ppx --conditional))) + +;; Building the lexers of the preprocessor + (ocamllex E_Lexer Preproc) +;; Building the parser of the preprocessor (for boolean expressions) + (menhir (modules E_Parser)) -(library - (name Preprocessor) - (public_name ligo.preproc) - (libraries - getopt - simple-utils) - (wrapped true) - (modules EvalOpt E_Parser E_Lexer E_AST Preproc) - (preprocess - (pps bisect_ppx --conditional))) +;; Building PreprocMain.exe for a standalone preprocessor (executable (name PreprocMain) @@ -22,6 +30,9 @@ (preprocess (pps bisect_ppx --conditional))) +;; Building E_LexerMain.exe for a standalone lexer of boolean +;; expressions + (executable (name E_LexerMain) (modules E_LexerMain) @@ -29,6 +40,9 @@ (preprocess (pps bisect_ppx --conditional))) +;; Building E_ParserMain.exe for a standalone parser of boolean +;; expressions + (executable (name E_ParserMain) (modules E_ParserMain) diff --git a/vendors/Preprocessor/dune-project b/vendors/Preprocessor/dune-project new file mode 100644 index 000000000..70db9f0d9 --- /dev/null +++ b/vendors/Preprocessor/dune-project @@ -0,0 +1,2 @@ +(lang dune 1.7) +(using menhir 2.0) diff --git a/vendors/UnionFind/UnionFind.opam b/vendors/UnionFind/UnionFind.opam index 58888bcee..dc48cd6c1 100644 --- a/vendors/UnionFind/UnionFind.opam +++ b/vendors/UnionFind/UnionFind.opam @@ -1,10 +1,12 @@ opam-version : "2.0" version : "1.0" -maintainer : "rinderknecht@free.fr" -authors : [ "Christian Rinderknecht" ] -homepage : "https://gitlab.com/rinderknecht/UnionFind" -bug-reports : "https://gitlab.com/rinderknecht/UnionFind/issues" -dev-repo : "git+https://gitlab.com/rinderknecht/UnionFind.git" +synopsis : "A Some implementations in OCaml of the Union/Find algorithm" +description : "All modules implementing Union/Find can be coerced by the same signature [Partition.S]. Note the function [alias] which is equivalent to [equiv], but not symmetric: [alias x y] means that [x] is an alias of y, which translates in the present context as [x] not being the representative of the equivalence class containing the equivalence between [x] and [y]. The function [alias] is useful when managing aliases during the static analyses of programming languages, so the representatives of the classes are always the original object." +maintainer : "Christian Rinderknecht " +authors : "Christian Rinderknecht" +homepage : "https://github.com/rinderknecht/UnionFind" +bug-reports : "https://github.com/rinderknecht/UnionFind/issues" +dev-repo : "git+https://github.com/rinderknecht/UnionFind.git" license : "MIT" depends : [ "dune" ] diff --git a/vendors/ligo-utils/memory-proto-alpha/tezos-memory-proto-alpha.opam b/vendors/ligo-utils/memory-proto-alpha/tezos-memory-proto-alpha.opam index e6ca037cc..a63c32e86 100644 --- a/vendors/ligo-utils/memory-proto-alpha/tezos-memory-proto-alpha.opam +++ b/vendors/ligo-utils/memory-proto-alpha/tezos-memory-proto-alpha.opam @@ -2,8 +2,8 @@ opam-version: "2.0" name: "memory-proto-alpha" version: "1.0" synopsis: "Tezos Protocol Alpha in memory" -maintainer: "Galfour " -authors: "Galfour " +maintainer: "Galfour " +authors: "Galfour " license: "MIT" homepage: "https://gitlab.com/ligolang/tezos" bug-reports: "https://gitlab.com/ligolang/tezos/issues" diff --git a/vendors/ligo-utils/proto-alpha-utils/proto-alpha-utils.opam b/vendors/ligo-utils/proto-alpha-utils/proto-alpha-utils.opam index d7c1638b6..f93da3576 100644 --- a/vendors/ligo-utils/proto-alpha-utils/proto-alpha-utils.opam +++ b/vendors/ligo-utils/proto-alpha-utils/proto-alpha-utils.opam @@ -2,8 +2,8 @@ opam-version: "2.0" name: "proto-alpha-utils" version: "dev" synopsis: "LIGO Proto Alpha-specific Utilities, to be used by other libraries" -maintainer: "Galfour " -authors: "Galfour " +maintainer: "Galfour " +authors: "Galfour " license: "MIT" homepage: "https://gitlab.com/ligolang/ligo-utils" bug-reports: "https://gitlab.com/ligolang/ligo-utils/issues" diff --git a/vendors/ligo-utils/simple-utils/messages.sh b/vendors/ligo-utils/simple-utils/messages.sh index c9e0034e7..418d09546 100755 --- a/vendors/ligo-utils/simple-utils/messages.sh +++ b/vendors/ligo-utils/simple-utils/messages.sh @@ -196,9 +196,13 @@ if test "$?" = "0"; then menhir --update-errors $msg.old \ $flags $mly > $msg 2> $err if test "$?" = "0"; then - printf "done:\n" - emphasise "Warning: The LR items may have changed." - emphasise "> Check your error messages again." + if $(diff $msg $msg.old 2>&1 > /dev/null); then + echo "done." + else + printf "done:\n" + emphasise "Warning: The LR items may have changed." + emphasise "> Check your error messages again." + fi rm -f $err else failed "." touch $err diff --git a/vendors/ligo-utils/simple-utils/simple-utils.opam b/vendors/ligo-utils/simple-utils/simple-utils.opam index abb4cf437..eeeaab8b0 100644 --- a/vendors/ligo-utils/simple-utils/simple-utils.opam +++ b/vendors/ligo-utils/simple-utils/simple-utils.opam @@ -1,10 +1,10 @@ -opam-version: "2.0" -name: "simple-utils" -version: "dev" -synopsis: "LIGO Utilities, to be used by other libraries" -maintainer: "Galfour " -authors: "Galfour " -license: "MIT" +opam-version : "2.0" +name : "simple-utils" +version : "dev" +synopsis : "LIGO utilities, to be used by other libraries" +maintainer : "Galfour " +authors : "Galfour" +license : "MIT" homepage: "https://gitlab.com/ligolang/ligo-utils" bug-reports: "https://gitlab.com/ligolang/ligo-utils/issues" depends: [ diff --git a/vendors/ligo-utils/tezos-utils/michelson-parser/michelson-parser.opam b/vendors/ligo-utils/tezos-utils/michelson-parser/michelson-parser.opam index 4b25b4456..8e4c2e564 100644 --- a/vendors/ligo-utils/tezos-utils/michelson-parser/michelson-parser.opam +++ b/vendors/ligo-utils/tezos-utils/michelson-parser/michelson-parser.opam @@ -1,6 +1,6 @@ name: "michelson-parser" opam-version: "2.0" -maintainer: "ligolang@gmail.com" +maintainer: "contact@ligolang.org" authors: [ "Galfour" ] homepage: "https://gitlab.com/ligolang/tezos" bug-reports: "https://gitlab.com/ligolang/tezos/issues" diff --git a/vendors/ligo-utils/tezos-utils/tezos-utils.opam b/vendors/ligo-utils/tezos-utils/tezos-utils.opam index 02a2074f2..1695cce8a 100644 --- a/vendors/ligo-utils/tezos-utils/tezos-utils.opam +++ b/vendors/ligo-utils/tezos-utils/tezos-utils.opam @@ -2,15 +2,14 @@ opam-version: "2.0" name: "tezos-utils" version: "dev" synopsis: "LIGO Tezos specific Utilities, to be used by other libraries" -maintainer: "Galfour " -authors: "Galfour " +maintainer: "Galfour " +authors: "Galfour " license: "MIT" homepage: "https://gitlab.com/ligolang/ligo-utils" bug-reports: "https://gitlab.com/ligolang/ligo-utils/issues" depends: [ "dune" "base" - "base" "bigstring" "calendar" "cohttp-lwt-unix"