diff --git a/lib/parser.mly b/lib/parser.mly index 2734839..0aa6855 100644 --- a/lib/parser.mly +++ b/lib/parser.mly @@ -47,6 +47,7 @@ %token Fmt %token Hbar %token Match +%token Matches %token Quote %token Type %token External @@ -73,12 +74,13 @@ %nonassoc Ctor +%left Matches %left And Or %left Eq_op %left Cmp_op %left Plus_op %left Mult_op -%left Dot Ampersand Exclamation +%left Dot %left Lcurly %left Lbrack %left Lpar @@ -286,6 +288,8 @@ expr_no_ident: | ident = infix { Var ($loc(ident), ident) } | lit = lit { Lit ($loc, lit) } | a = expr; bop = binop; b = expr { Bop ($loc, bop, a, b) } + /* | a = expr; Hbar; b = expr { Bop ($loc, And, a, b) } */ + | a = expr; Matches; pattern { Bop ($loc, And, a, Lit ($loc, Unit)) } | a = expr; infix = infix; b = expr { let a = {apass = Dnorm; aloc = $loc(a); aexpr = a} in let b = {apass = Dnorm; aloc = $loc(b); aexpr = b} in @@ -301,9 +305,6 @@ expr_no_ident: | aexpr = expr; Dot; Lpar; callee = expr; Rpar; args = parens(call_arg) { let arg = {apass = pass_attr_of_opt None; aexpr; aloc = $loc(aexpr)} in Pipe_head ($loc, arg, Pip_expr (App ($loc, callee, args)))} - | aexpr = expr; apass = decl_attr; callee = dot_callee; args = parens(call_arg) - { let arg = {apass; aexpr; aloc = $loc(aexpr)} in - Pipe_head ($loc, arg, Pip_expr (App ($loc, callee, args)))} | expr = expr; Dot; Fmt; args = parens(expr) { Fmt ($loc, expr :: args) } | expr = expr; Dot; ident = ident { Field ($loc, expr, snd ident) } @@ -320,7 +321,7 @@ expr_no_ident: | upcases = upcases { upcases } | Lcurly; record = expr; With; items = separated_nonempty_trailing_list(Comma, record_item, Rcurly) { Record_update ($loc, record, items) } - | Match; expr = passed(expr); Lcurly; option(Hbar); clauses = clauses; Rcurly + | Match; expr = passed(expr); Lcurly; clauses = clauses; Rcurly { Match (($startpos, $endpos(expr)), fst expr, snd expr, clauses) } | Ampersand; expr = expr; Equal; newval = expr; %prec Below_Ampersand { Set ($loc, ($loc(expr), expr), newval) } @@ -370,9 +371,7 @@ guard: clauses: | clause = clause { [ clause ] } - | clause = clause; Hbar; clauses = separated_nonempty_list(Hbar, clause) - { clause :: clauses } - | clause = clause; Semicolon; clauses = separated_nonempty_list(Semicolon, clause) + | clause = clause; Semicolon; clauses = clauses { clause :: clauses } special_builtins: diff --git a/lib/syntax_errors.messages b/lib/syntax_errors.messages index 997f764..a60608e 100644 --- a/lib/syntax_errors.messages +++ b/lib/syntax_errors.messages @@ -1,1188 +1,4402 @@ prog: With +## +## Ends in an error in state: 0. +## +## prog' -> . prog [ # ] +## +## The known suffix of the stack is as follows: +## +## prog: Use With +## +## Ends in an error in state: 1. +## +## stmt_no_ident -> Use . use_path [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Use +## prog: Use Path_id With +## +## Ends in an error in state: 2. +## +## use_path -> Path_id . use_path [ Semicolon Rpar Rcurly Lpar Lcurly Equal Eof Comma ] +## +## The known suffix of the stack is as follows: +## Path_id +## prog: Type With +## +## Ends in an error in state: 8. +## +## typedef -> Type . decl_typename Equal Lcurly separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) [ Semicolon Rcurly Eof ] +## typedef -> Type . decl_typename Equal type_spec [ Semicolon Rcurly Eof ] +## typedef -> Type . decl_typename Equal separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## typedef -> Type . decl_typename Equal Hbar separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Type +## prog: Type Ident With +## +## Ends in an error in state: 9. +## +## decl_typename -> Ident . [ Semicolon Rcurly Equal ] +## decl_typename -> Ident . Lbrack separated_nonempty_list(Comma,poly_id) Rbrack [ Semicolon Rcurly Equal ] +## +## The known suffix of the stack is as follows: +## Ident +## -Expecting square brackets for parameterized type + prog: Type Ident Lbrack With +## +## Ends in an error in state: 10. +## +## decl_typename -> Ident Lbrack . separated_nonempty_list(Comma,poly_id) Rbrack [ Semicolon Rcurly Equal ] +## +## The known suffix of the stack is as follows: +## Ident Lbrack +## prog: External Ident Colon Quote With +## +## Ends in an error in state: 11. +## +## poly_id -> Quote . Ident [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Quote +## prog: Type Ident Lbrack Quote Ident With +## +## Ends in an error in state: 15. +## +## separated_nonempty_list(Comma,poly_id) -> poly_id . [ Rbrack ] +## separated_nonempty_list(Comma,poly_id) -> poly_id . Comma separated_nonempty_list(Comma,poly_id) [ Rbrack ] +## +## The known suffix of the stack is as follows: +## poly_id +## prog: Type Ident Lbrack Quote Ident Comma With +## +## Ends in an error in state: 16. +## +## separated_nonempty_list(Comma,poly_id) -> poly_id Comma . separated_nonempty_list(Comma,poly_id) [ Rbrack ] +## +## The known suffix of the stack is as follows: +## poly_id Comma +## prog: Type Ident Semicolon +## +## Ends in an error in state: 18. +## +## typedef -> Type decl_typename . Equal Lcurly separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) [ Semicolon Rcurly Eof ] +## typedef -> Type decl_typename . Equal type_spec [ Semicolon Rcurly Eof ] +## typedef -> Type decl_typename . Equal separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## typedef -> Type decl_typename . Equal Hbar separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Type decl_typename +## +## 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 9, spurious reduction of production decl_typename -> Ident +## prog: Type Ident Equal With +## +## Ends in an error in state: 19. +## +## typedef -> Type decl_typename Equal . Lcurly separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) [ Semicolon Rcurly Eof ] +## typedef -> Type decl_typename Equal . type_spec [ Semicolon Rcurly Eof ] +## typedef -> Type decl_typename Equal . separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## typedef -> Type decl_typename Equal . Hbar separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Type decl_typename Equal +## prog: External Ident Colon Path_id With +## +## Ends in an error in state: 20. +## +## type_path -> Path_id . type_path_cont [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Path_id +## prog: External Ident Colon Path_id Path_id With +## +## Ends in an error in state: 21. +## +## type_path_cont -> Path_id . type_path_cont [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Path_id +## prog: External Ident Colon Lpar With +## +## Ends in an error in state: 25. +## +## type_spec -> Lpar . Rpar Right_arrow type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> Lpar . tup_or_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Lpar +## prog: External Ident Colon Lpar Rpar With +## +## Ends in an error in state: 26. +## +## type_spec -> Lpar Rpar . Right_arrow type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Lpar Rpar +## prog: External Ident Colon Lpar Rpar Right_arrow With +## +## Ends in an error in state: 27. +## +## type_spec -> Lpar Rpar Right_arrow . type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Lpar Rpar Right_arrow +## prog: External Ident Colon Ident With +## +## Ends in an error in state: 28. +## +## ident -> Ident . [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> Ident . Hash Int [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> Ident . Hash_quest [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Ident +## prog: External Ident Colon Ident Hash With +## +## Ends in an error in state: 30. +## +## type_spec -> Ident Hash . Int [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Ident Hash +## prog: External Ident Colon Lpar Rpar Right_arrow Quote Ident With +## +## Ends in an error in state: 32. +## +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> Lpar Rpar Right_arrow type_spec . [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Lpar Rpar Right_arrow type_spec +## prog: External Ident Colon Ident Lbrack With +## +## Ends in an error in state: 33. +## +## type_spec -> type_spec Lbrack . separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Lbrack +## prog: External Ident Colon Ident Lbrack Ident Semicolon +## +## Ends in an error in state: 34. +## +## separated_nonempty_list(Comma,type_spec) -> type_spec . [ Rpar Rbrack ] +## separated_nonempty_list(Comma,type_spec) -> type_spec . Comma separated_nonempty_list(Comma,type_spec) [ Rpar Rbrack ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rpar Rbrack Lbrack Comma ] +## +## The known suffix of the stack is as follows: +## type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: External Ident Colon Ident Lbrack Ident Comma With +## +## Ends in an error in state: 35. +## +## separated_nonempty_list(Comma,type_spec) -> type_spec Comma . separated_nonempty_list(Comma,type_spec) [ Rpar Rbrack ] +## +## The known suffix of the stack is as follows: +## type_spec Comma +## prog: External Ident Colon Ident Lbrack Ident Rpar +## +## Ends in an error in state: 40. +## +## type_spec -> type_spec Lbrack separated_nonempty_list(Comma,type_spec) . Rbrack [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Lbrack separated_nonempty_list(Comma,type_spec) +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## In state 34, spurious reduction of production separated_nonempty_list(Comma,type_spec) -> type_spec +## prog: External Ident Colon Lpar Ident Semicolon +## +## Ends in an error in state: 42. +## +## tup_or_fun -> type_spec . Rpar Right_arrow type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec . Ampersand continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec . Exclamation continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec . Comma type_spec Ampersand continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec . Comma type_spec Exclamation continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec . Comma type_spec continue_tup_or_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rpar Lbrack Exclamation Comma Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: External Ident Colon Lpar Ident Rpar With +## +## Ends in an error in state: 43. +## +## tup_or_fun -> type_spec Rpar . Right_arrow type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Rpar +## prog: External Ident Colon Lpar Ident Rpar Right_arrow With +## +## Ends in an error in state: 44. +## +## tup_or_fun -> type_spec Rpar Right_arrow . type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Rpar Right_arrow +## prog: External Ident Colon Lpar Ident Rpar Right_arrow Quote Ident With +## +## Ends in an error in state: 45. +## +## tup_or_fun -> type_spec Rpar Right_arrow type_spec . [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Rpar Right_arrow type_spec +## prog: External Ident Colon Lpar Ident Exclamation With +## +## Ends in an error in state: 46. +## +## tup_or_fun -> type_spec Exclamation . continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Exclamation +## prog: External Ident Colon Lpar Ident Ampersand Rpar With +## +## Ends in an error in state: 47. +## +## continue_fun -> Rpar . Right_arrow type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Rpar +## prog: External Ident Colon Lpar Ident Ampersand Rpar Right_arrow With +## +## Ends in an error in state: 48. +## +## continue_fun -> Rpar Right_arrow . type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Rpar Right_arrow +## prog: External Ident Colon Lpar Ident Ampersand Rpar Right_arrow Quote Ident With +## +## Ends in an error in state: 49. +## +## continue_fun -> Rpar Right_arrow type_spec . [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Rpar Right_arrow type_spec +## prog: External Ident Colon Lpar Ident Ampersand Comma With +## +## Ends in an error in state: 50. +## +## continue_fun -> Comma . type_spec option(decl_attr) continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Comma +## prog: External Ident Colon Lpar Ident Ampersand Comma Ident Semicolon +## +## Ends in an error in state: 51. +## +## continue_fun -> Comma type_spec . option(decl_attr) continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rpar Lbrack Exclamation Comma Ampersand ] +## +## The known suffix of the stack is as follows: +## Comma type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: External Ident Colon Lpar Ident Ampersand Comma Ident Ampersand With +## +## Ends in an error in state: 54. +## +## continue_fun -> Comma type_spec option(decl_attr) . continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Comma type_spec option(decl_attr) +## prog: External Ident Colon Lpar Ident Comma With +## +## Ends in an error in state: 57. +## +## tup_or_fun -> type_spec Comma . type_spec Ampersand continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec Comma . type_spec Exclamation continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec Comma . type_spec continue_tup_or_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Comma +## prog: External Ident Colon Lpar Ident Comma Ident Semicolon +## +## Ends in an error in state: 58. +## +## tup_or_fun -> type_spec Comma type_spec . Ampersand continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec Comma type_spec . Exclamation continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## tup_or_fun -> type_spec Comma type_spec . continue_tup_or_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rpar Lbrack Exclamation Comma Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Comma type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: External Ident Colon Lpar Ident Comma Ident Rpar With +## +## Ends in an error in state: 59. +## +## continue_tup_or_fun -> Rpar . [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## continue_tup_or_fun -> Rpar . Right_arrow type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Rpar +## prog: External Ident Colon Lpar Ident Comma Ident Rpar Right_arrow With +## +## Ends in an error in state: 60. +## +## continue_tup_or_fun -> Rpar Right_arrow . type_spec [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Rpar Right_arrow +## prog: External Ident Colon Lpar Ident Comma Ident Rpar Right_arrow Quote Ident With +## +## Ends in an error in state: 61. +## +## continue_tup_or_fun -> Rpar Right_arrow type_spec . [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Rpar Right_arrow type_spec +## prog: External Ident Colon Lpar Ident Comma Ident Exclamation With +## +## Ends in an error in state: 62. +## +## tup_or_fun -> type_spec Comma type_spec Exclamation . continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Comma type_spec Exclamation +## prog: External Ident Colon Lpar Ident Comma Ident Comma With +## +## Ends in an error in state: 64. +## +## continue_tup_or_fun -> Comma . type_spec continue_tup_or_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## continue_tup_or_fun -> Comma . type_spec Ampersand continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## continue_tup_or_fun -> Comma . type_spec Exclamation continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Comma +## prog: External Ident Colon Lpar Ident Comma Ident Comma Ident Semicolon +## +## Ends in an error in state: 65. +## +## continue_tup_or_fun -> Comma type_spec . continue_tup_or_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## continue_tup_or_fun -> Comma type_spec . Ampersand continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## continue_tup_or_fun -> Comma type_spec . Exclamation continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rpar Lbrack Exclamation Comma Ampersand ] +## +## The known suffix of the stack is as follows: +## Comma type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: External Ident Colon Lpar Ident Comma Ident Comma Ident Exclamation With +## +## Ends in an error in state: 66. +## +## continue_tup_or_fun -> Comma type_spec Exclamation . continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Comma type_spec Exclamation +## prog: External Ident Colon Lpar Ident Comma Ident Comma Ident Ampersand With +## +## Ends in an error in state: 68. +## +## continue_tup_or_fun -> Comma type_spec Ampersand . continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## Comma type_spec Ampersand +## prog: External Ident Colon Lpar Ident Comma Ident Ampersand With +## +## Ends in an error in state: 71. +## +## tup_or_fun -> type_spec Comma type_spec Ampersand . continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Comma type_spec Ampersand +## prog: External Ident Colon Lpar Ident Ampersand With +## +## Ends in an error in state: 74. +## +## tup_or_fun -> type_spec Ampersand . continue_fun [ Semicolon Rpar Rcurly Rbrack Lcurly Lbrack Exclamation Equal Eof Comma Colon Ampersand ] +## +## The known suffix of the stack is as follows: +## type_spec Ampersand +## prog: Type Ident Equal Lcurly With +## +## Ends in an error in state: 77. +## +## typedef -> Type decl_typename Equal Lcurly . separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Type decl_typename Equal Lcurly +## prog: Type Ident Equal Lcurly Ident With +## +## Ends in an error in state: 78. +## +## record_item_decl -> Ident . boption(Ampersand) Colon type_spec [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## Ident +## prog: Type Ident Equal Lcurly Ident Ampersand With +## +## Ends in an error in state: 80. +## +## record_item_decl -> Ident boption(Ampersand) . Colon type_spec [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## Ident boption(Ampersand) +## prog: Type Ident Equal Lcurly Ident Colon With +## +## Ends in an error in state: 81. +## +## record_item_decl -> Ident boption(Ampersand) Colon . type_spec [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## Ident boption(Ampersand) Colon +## prog: Type Ident Equal Lcurly Ident Colon Ident Semicolon +## +## Ends in an error in state: 82. +## +## record_item_decl -> Ident boption(Ampersand) Colon type_spec . [ Rcurly Comma ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rcurly Lbrack Comma ] +## +## The known suffix of the stack is as follows: +## Ident boption(Ampersand) Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## -Expecting square brackets for parameterized type + prog: Type Ident Equal Lcurly Ident Colon Ident Comma With +## +## Ends in an error in state: 85. +## +## option(Comma) -> Comma . [ Rcurly ] +## separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) -> record_item_decl Comma . separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## record_item_decl Comma +## prog: Type Ident Equal Hbar With +## +## Ends in an error in state: 89. +## +## typedef -> Type decl_typename Equal Hbar . separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Type decl_typename Equal Hbar +## prog: Type Ident Equal Ctor With +## +## Ends in an error in state: 90. +## +## ctor -> Ctor . [ Semicolon Rcurly Hbar Eof ] +## ctor -> Ctor . Lpar ctor_type_spec Rpar [ Semicolon Rcurly Hbar Eof ] +## ctor -> Ctor . Lpar Int Rpar [ Semicolon Rcurly Hbar Eof ] +## +## The known suffix of the stack is as follows: +## Ctor +## prog: Type Ident Equal Ctor Lpar With +## +## Ends in an error in state: 91. +## +## ctor -> Ctor Lpar . ctor_type_spec Rpar [ Semicolon Rcurly Hbar Eof ] +## ctor -> Ctor Lpar . Int Rpar [ Semicolon Rcurly Hbar Eof ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar +## prog: Type Ident Equal Ctor Lpar Int With +## +## Ends in an error in state: 92. +## +## ctor -> Ctor Lpar Int . Rpar [ Semicolon Rcurly Hbar Eof ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar Int +## prog: Type Ident Equal Ctor Lpar Ident Semicolon +## +## Ends in an error in state: 94. +## +## ctor_type_spec -> type_spec . [ Rpar ] +## ctor_type_spec -> type_spec . Comma separated_nonempty_list(Comma,type_spec) [ Rpar ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rpar Lbrack Comma ] +## +## The known suffix of the stack is as follows: +## type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Type Ident Equal Ctor Lpar Ident Comma With +## +## Ends in an error in state: 95. +## +## ctor_type_spec -> type_spec Comma . separated_nonempty_list(Comma,type_spec) [ Rpar ] +## +## The known suffix of the stack is as follows: +## type_spec Comma +## prog: Type Ident Equal Ctor Lpar Ident Comma Ident Rbrack +## +## Ends in an error in state: 97. +## +## ctor -> Ctor Lpar ctor_type_spec . Rpar [ Semicolon Rcurly Hbar Eof ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar ctor_type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## In state 34, spurious reduction of production separated_nonempty_list(Comma,type_spec) -> type_spec +## In state 96, spurious reduction of production ctor_type_spec -> type_spec Comma separated_nonempty_list(Comma,type_spec) +## prog: Type Ident Equal Ctor Lpar Ident Rpar With +## +## Ends in an error in state: 100. +## +## separated_nonempty_list(Hbar,ctor) -> ctor . [ Semicolon Rcurly Eof ] +## separated_nonempty_list(Hbar,ctor) -> ctor . Hbar separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## ctor +## prog: Type Ident Equal Ctor Hbar With +## +## Ends in an error in state: 101. +## +## separated_nonempty_list(Hbar,ctor) -> ctor Hbar . separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## ctor Hbar +## prog: Type Ident Equal Ident Rpar +## +## Ends in an error in state: 103. +## +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rcurly Lbrack Eof ] +## typedef -> Type decl_typename Equal type_spec . [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Type decl_typename Equal type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## -Expecting square brackets for parameterized type + prog: Signature With +## +## Ends in an error in state: 107. +## +## signature -> Signature . Lcurly sig_items Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Signature +## prog: Signature Lcurly With +## +## Ends in an error in state: 108. +## +## signature -> Signature Lcurly . sig_items Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Signature Lcurly +## prog: Signature Lcurly Val With +## +## Ends in an error in state: 109. +## +## sig_item -> Val . ident Colon type_spec [ Semicolon Rcurly ] +## sig_item -> Val . Eq_op Colon type_spec [ Semicolon Rcurly ] +## sig_item -> Val . Cmp_op Colon type_spec [ Semicolon Rcurly ] +## sig_item -> Val . Plus_op Colon type_spec [ Semicolon Rcurly ] +## sig_item -> Val . Mult_op Colon type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val +## prog: Signature Lcurly Val Plus_op With +## +## Ends in an error in state: 110. +## +## sig_item -> Val Plus_op . Colon type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Plus_op +## prog: Signature Lcurly Val Plus_op Colon With +## +## Ends in an error in state: 111. +## +## sig_item -> Val Plus_op Colon . type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Plus_op Colon +## prog: Signature Lcurly Val Plus_op Colon Ident Rpar +## +## Ends in an error in state: 112. +## +## sig_item -> Val Plus_op Colon type_spec . [ Semicolon Rcurly ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rcurly Lbrack ] +## +## The known suffix of the stack is as follows: +## Val Plus_op Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Signature Lcurly Val Mult_op With +## +## Ends in an error in state: 113. +## +## sig_item -> Val Mult_op . Colon type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Mult_op +## prog: Signature Lcurly Val Mult_op Colon With +## +## Ends in an error in state: 114. +## +## sig_item -> Val Mult_op Colon . type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Mult_op Colon +## prog: Signature Lcurly Val Mult_op Colon Ident Rpar +## +## Ends in an error in state: 115. +## +## sig_item -> Val Mult_op Colon type_spec . [ Semicolon Rcurly ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rcurly Lbrack ] +## +## The known suffix of the stack is as follows: +## Val Mult_op Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Signature Lcurly Val Eq_op With +## +## Ends in an error in state: 117. +## +## sig_item -> Val Eq_op . Colon type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Eq_op +## prog: Signature Lcurly Val Eq_op Colon With +## +## Ends in an error in state: 118. +## +## sig_item -> Val Eq_op Colon . type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Eq_op Colon +## prog: Signature Lcurly Val Eq_op Colon Ident Rpar +## +## Ends in an error in state: 119. +## +## sig_item -> Val Eq_op Colon type_spec . [ Semicolon Rcurly ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rcurly Lbrack ] +## +## The known suffix of the stack is as follows: +## Val Eq_op Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Signature Lcurly Val Cmp_op With +## +## Ends in an error in state: 120. +## +## sig_item -> Val Cmp_op . Colon type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Cmp_op +## prog: Signature Lcurly Val Cmp_op Colon With +## +## Ends in an error in state: 121. +## +## sig_item -> Val Cmp_op Colon . type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val Cmp_op Colon +## prog: Signature Lcurly Val Cmp_op Colon Ident Rpar +## +## Ends in an error in state: 122. +## +## sig_item -> Val Cmp_op Colon type_spec . [ Semicolon Rcurly ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rcurly Lbrack ] +## +## The known suffix of the stack is as follows: +## Val Cmp_op Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Signature Lcurly Val Ident With +## +## Ends in an error in state: 123. +## +## sig_item -> Val ident . Colon type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val ident +## prog: Signature Lcurly Val Ident Colon With +## +## Ends in an error in state: 124. +## +## sig_item -> Val ident Colon . type_spec [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Val ident Colon +## prog: Signature Lcurly Val Ident Colon Ident Rpar +## +## Ends in an error in state: 125. +## +## sig_item -> Val ident Colon type_spec . [ Semicolon Rcurly ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rcurly Lbrack ] +## +## The known suffix of the stack is as follows: +## Val ident Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Signature Lcurly Type With +## +## Ends in an error in state: 126. +## +## sig_item -> Type . decl_typename [ Semicolon Rcurly ] +## typedef -> Type . decl_typename Equal Lcurly separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) [ Semicolon Rcurly ] +## typedef -> Type . decl_typename Equal type_spec [ Semicolon Rcurly ] +## typedef -> Type . decl_typename Equal separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly ] +## typedef -> Type . decl_typename Equal Hbar separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Type +## prog: Signature Lcurly Type Ident Lbrack Quote Ident Rbrack With +## +## Ends in an error in state: 127. +## +## sig_item -> Type decl_typename . [ Semicolon Rcurly ] +## typedef -> Type decl_typename . Equal Lcurly separated_nonempty_trailing_list(Comma,record_item_decl,Rcurly) [ Semicolon Rcurly ] +## typedef -> Type decl_typename . Equal type_spec [ Semicolon Rcurly ] +## typedef -> Type decl_typename . Equal separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly ] +## typedef -> Type decl_typename . Equal Hbar separated_nonempty_list(Hbar,ctor) [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## Type decl_typename +## prog: Signature Lcurly Type Ident Equal Ctor Eof +## +## Ends in an error in state: 131. +## +## separated_nonempty_list(Semicolon,sig_item) -> sig_item . [ Rcurly ] +## separated_nonempty_list(Semicolon,sig_item) -> sig_item . Semicolon separated_nonempty_list(Semicolon,sig_item) [ Rcurly ] +## +## The known suffix of the stack is as follows: +## sig_item +## +## 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 90, spurious reduction of production ctor -> Ctor +## In state 100, spurious reduction of production separated_nonempty_list(Hbar,ctor) -> ctor +## In state 104, spurious reduction of production typedef -> Type decl_typename Equal separated_nonempty_list(Hbar,ctor) +## In state 128, spurious reduction of production sig_item -> typedef +## prog: Signature Lcurly Type Ident Semicolon With +## +## Ends in an error in state: 132. +## +## separated_nonempty_list(Semicolon,sig_item) -> sig_item Semicolon . separated_nonempty_list(Semicolon,sig_item) [ Rcurly ] +## +## The known suffix of the stack is as follows: +## sig_item Semicolon +## prog: Plus_op Wildcard +## +## Ends in an error in state: 135. +## +## expr_no_ident -> Plus_op . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> Plus_op . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Plus_op +## prog: Path_id With +## +## Ends in an error in state: 136. +## +## expr_no_ident -> Path_id . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Path_id +## prog: Match With +## +## Ends in an error in state: 138. +## +## expr_no_ident -> Match . passed(expr) Lcurly clauses Rcurly [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Match +## prog: Lpar With +## +## Ends in an error in state: 139. +## +## expr_no_ident -> Lpar . tuple Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> Lpar . expr Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lit -> Lpar . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar +## prog: Lcurly With +## +## Ends in an error in state: 141. +## +## expr_no_ident -> Lcurly . separated_nonempty_trailing_list(Comma,record_item,Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> Lcurly . stmt_no_ident block_cont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> Lcurly . expr With separated_nonempty_trailing_list(Comma,record_item,Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lcurly +## prog: Let With +## +## Ends in an error in state: 142. +## +## stmt_no_ident -> Let . let_decl Equal passed(expr) [ Semicolon Rcurly Eof ] +## stmt_no_ident -> Let . let_decl Equal Builtin_id [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Let +## -prog: Fun Wildcard With +prog: Fun Wildcard Wildcard +## +## Ends in an error in state: 143. +## +## basic_pattern -> Wildcard . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## basic_pattern -> Wildcard . Exclamation [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## basic_pattern -> Wildcard . Ampersand [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Wildcard +## prog: Let Lpar With +## +## Ends in an error in state: 149. +## +## pattern -> Lpar . pattern Hbar separated_nonempty_list(Hbar,pattern) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## tup_patterns -> Lpar . tup_tups(pattern) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## tup_patterns -> Lpar . tup_tups(pattern) Rpar Ampersand [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## tup_patterns -> Lpar . tup_tups(pattern) Rpar Exclamation [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar +## prog: Fun Lcurly With +## +## Ends in an error in state: 150. +## +## record_pattern(pattern) -> Lcurly . separated_nonempty_trailing_list(Comma,record_item_pattern(pattern),Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lcurly +## -prog: Fun Lcurly Ident Equal Cmp_op With +prog: Fun Lcurly Ident Equal Cmp_op Wildcard +## +## Ends in an error in state: 152. +## +## separated_nonempty_trailing_list(Comma,record_item_pattern(pattern),Rcurly) -> record_item_pattern(pattern) . option(Comma) Rcurly [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## separated_nonempty_trailing_list(Comma,record_item_pattern(pattern),Rcurly) -> record_item_pattern(pattern) . Comma separated_nonempty_trailing_list(Comma,record_item_pattern(pattern),Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## record_item_pattern(pattern) +## prog: Fun Lcurly Ident Comma With +## +## Ends in an error in state: 153. +## +## option(Comma) -> Comma . [ Rcurly ] +## separated_nonempty_trailing_list(Comma,record_item_pattern(pattern),Rcurly) -> record_item_pattern(pattern) Comma . separated_nonempty_trailing_list(Comma,record_item_pattern(pattern),Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## record_item_pattern(pattern) Comma +## prog: Fun Lcurly Ident With +## +## Ends in an error in state: 155. +## +## record_item_pattern(pattern) -> ident . Equal pattern [ Rcurly Comma ] +## record_item_pattern(pattern) -> ident . [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## ident +## prog: Fun Lcurly Ident Equal With +## +## Ends in an error in state: 156. +## +## record_item_pattern(pattern) -> ident Equal . pattern [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## ident Equal +## -prog: Fun Ctor With +prog: Fun Ctor Wildcard +## +## Ends in an error in state: 159. +## +## basic_pattern -> Ctor . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## basic_pattern -> Ctor . Lpar pattern Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## basic_pattern -> Ctor . Lpar inner_tup_pattern(pattern) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ctor +## prog: Fun Ctor Lpar With +## +## Ends in an error in state: 160. +## +## basic_pattern -> Ctor Lpar . pattern Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## basic_pattern -> Ctor Lpar . inner_tup_pattern(pattern) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar +## prog: Let Ident Comma With +## +## Ends in an error in state: 163. +## +## tup_tups(pattern) -> with_loc(pattern) Comma . separated_nonempty_list(Comma,with_loc(pattern)) [ Rpar Equal Colon ] +## +## The known suffix of the stack is as follows: +## with_loc(pattern) Comma +## -prog: Let Ident Comma Cmp_op With +prog: Let Ident Comma Cmp_op Wildcard +## +## Ends in an error in state: 164. +## +## separated_nonempty_list(Comma,with_loc(pattern)) -> with_loc(pattern) . [ Rpar Equal Colon ] +## separated_nonempty_list(Comma,with_loc(pattern)) -> with_loc(pattern) . Comma separated_nonempty_list(Comma,with_loc(pattern)) [ Rpar Equal Colon ] +## +## The known suffix of the stack is as follows: +## with_loc(pattern) +## prog: Let Ident Comma Ident Comma With +## +## Ends in an error in state: 165. +## +## separated_nonempty_list(Comma,with_loc(pattern)) -> with_loc(pattern) Comma . separated_nonempty_list(Comma,with_loc(pattern)) [ Rpar Equal Colon ] +## +## The known suffix of the stack is as follows: +## with_loc(pattern) Comma +## -prog: Let Ident With +prog: Let Ident Wildcard +## +## Ends in an error in state: 170. +## +## basic_pattern -> ident . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## basic_pattern -> ident . Ampersand [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## basic_pattern -> ident . Exclamation [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## ident +## -prog: Fun Ctor Lpar Cmp_op With +prog: Fun Ctor Lpar Cmp_op Wildcard +## +## Ends in an error in state: 176. +## +## basic_pattern -> Ctor Lpar pattern . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## with_loc(pattern) -> pattern . [ Comma ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar pattern +## prog: Fun Ctor Lpar Ident Comma Ident Equal +## +## Ends in an error in state: 178. +## +## basic_pattern -> Ctor Lpar inner_tup_pattern(pattern) . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Lbrack Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar inner_tup_pattern(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 170, spurious reduction of production basic_pattern -> ident +## In state 173, spurious reduction of production pattern -> basic_pattern +## In state 169, spurious reduction of production with_loc(pattern) -> pattern +## In state 164, spurious reduction of production separated_nonempty_list(Comma,with_loc(pattern)) -> with_loc(pattern) +## In state 174, spurious reduction of production tup_tups(pattern) -> with_loc(pattern) Comma separated_nonempty_list(Comma,with_loc(pattern)) +## In state 175, spurious reduction of production inner_tup_pattern(pattern) -> tup_tups(pattern) +## prog: Let Lpar Ident Comma Ident Equal - - - -prog: Let Lpar Ident Comma Ident Rpar With - - - -prog: Let Lpar Cmp_op With +## +## Ends in an error in state: 183. +## +## tup_patterns -> Lpar tup_tups(pattern) . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## tup_patterns -> Lpar tup_tups(pattern) . Rpar Ampersand [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## tup_patterns -> Lpar tup_tups(pattern) . Rpar Exclamation [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar tup_tups(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 170, spurious reduction of production basic_pattern -> ident +## In state 173, spurious reduction of production pattern -> basic_pattern +## In state 169, spurious reduction of production with_loc(pattern) -> pattern +## In state 164, spurious reduction of production separated_nonempty_list(Comma,with_loc(pattern)) -> with_loc(pattern) +## In state 174, spurious reduction of production tup_tups(pattern) -> with_loc(pattern) Comma separated_nonempty_list(Comma,with_loc(pattern)) +## + + + +prog: Let Lpar Ident Comma Ident Rpar Wildcard +## +## Ends in an error in state: 184. +## +## tup_patterns -> Lpar tup_tups(pattern) Rpar . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## tup_patterns -> Lpar tup_tups(pattern) Rpar . Ampersand [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## tup_patterns -> Lpar tup_tups(pattern) Rpar . Exclamation [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar tup_tups(pattern) Rpar +## + + + +prog: Let Lpar Cmp_op Wildcard +## +## Ends in an error in state: 187. +## +## pattern -> Lpar pattern . Hbar separated_nonempty_list(Hbar,pattern) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## with_loc(pattern) -> pattern . [ Comma ] +## +## The known suffix of the stack is as follows: +## Lpar pattern +## prog: Let Lpar Ident Hbar With +## +## Ends in an error in state: 188. +## +## pattern -> Lpar pattern Hbar . separated_nonempty_list(Hbar,pattern) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar pattern Hbar +## prog: Let Lpar Ident Hbar Ident Colon - - - -prog: Let Lpar Ident Hbar Cmp_op With +## +## Ends in an error in state: 189. +## +## pattern -> Lpar pattern Hbar separated_nonempty_list(Hbar,pattern) . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hbar Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar pattern Hbar separated_nonempty_list(Hbar,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 170, spurious reduction of production basic_pattern -> ident +## In state 173, spurious reduction of production pattern -> basic_pattern +## In state 191, spurious reduction of production separated_nonempty_list(Hbar,pattern) -> pattern +## + + + +prog: Let Lpar Ident Hbar Cmp_op Wildcard +## +## Ends in an error in state: 191. +## +## separated_nonempty_list(Hbar,pattern) -> pattern . [ Rpar Colon And ] +## separated_nonempty_list(Hbar,pattern) -> pattern . Hbar separated_nonempty_list(Hbar,pattern) [ Rpar Colon And ] +## +## The known suffix of the stack is as follows: +## pattern +## prog: Let Lpar Ident Hbar Ident Hbar With +## +## Ends in an error in state: 192. +## +## separated_nonempty_list(Hbar,pattern) -> pattern Hbar . separated_nonempty_list(Hbar,pattern) [ Rpar Colon And ] +## +## The known suffix of the stack is as follows: +## pattern Hbar +## -prog: Let Cmp_op With +prog: Let Cmp_op Wildcard +## +## Ends in an error in state: 195. +## +## let_pattern -> pattern . [ Equal Colon ] +## with_loc(pattern) -> pattern . [ Comma ] +## +## The known suffix of the stack is as follows: +## pattern +## prog: Let Ident Comma Ident Rpar +## +## Ends in an error in state: 196. +## +## let_decl -> let_pattern . [ Equal ] +## let_decl -> let_pattern . Colon type_spec [ Equal ] +## +## The known suffix of the stack is as follows: +## let_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 170, spurious reduction of production basic_pattern -> ident +## In state 173, spurious reduction of production pattern -> basic_pattern +## In state 169, spurious reduction of production with_loc(pattern) -> pattern +## In state 164, spurious reduction of production separated_nonempty_list(Comma,with_loc(pattern)) -> with_loc(pattern) +## In state 174, spurious reduction of production tup_tups(pattern) -> with_loc(pattern) Comma separated_nonempty_list(Comma,with_loc(pattern)) +## In state 194, spurious reduction of production let_pattern -> tup_tups(pattern) +## prog: Let Ident Colon With +## +## Ends in an error in state: 197. +## +## let_decl -> let_pattern Colon . type_spec [ Equal ] +## +## The known suffix of the stack is as follows: +## let_pattern Colon +## prog: Let Ident Colon Ident Semicolon +## +## Ends in an error in state: 198. +## +## let_decl -> let_pattern Colon type_spec . [ Equal ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Lbrack Equal ] +## +## The known suffix of the stack is as follows: +## let_pattern Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Let Ident Equal With +## +## Ends in an error in state: 200. +## +## stmt_no_ident -> Let let_decl Equal . passed(expr) [ Semicolon Rcurly Eof ] +## stmt_no_ident -> Let let_decl Equal . Builtin_id [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Let let_decl Equal +## prog: Lbrack With +## +## Ends in an error in state: 201. +## +## array_lit -> Lbrack . separated_trailing_list(Comma,expr,Rbrack) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lbrack +## prog: If With +## +## Ends in an error in state: 204. +## +## expr_no_ident -> If . expr block ifcont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## If +## prog: Hash With +## +## Ends in an error in state: 206. +## +## fixed_array_lit -> Hash . Lbrack separated_nonempty_trailing_list(Comma,expr,Rbrack) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## fixed_array_lit -> Hash . Int Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Hash +## prog: Hash Lbrack With +## +## Ends in an error in state: 207. +## +## fixed_array_lit -> Hash Lbrack . separated_nonempty_trailing_list(Comma,expr,Rbrack) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Hash Lbrack +## prog: Ampersand Fun With +## +## Ends in an error in state: 208. +## +## lambda -> Fun . parens(param_decl) loption(capture_copies) option(return_annot) block [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun . only_one_param loption(capture_copies) block [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun . parens(param_decl) loption(capture_copies) option(return_annot) Colon expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun . only_one_param loption(capture_copies) Colon expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun +## prog: Fun Lpar With +## +## Ends in an error in state: 209. +## +## parens(param_decl) -> Lpar . loption(separated_nonempty_list(Comma,param_decl)) Rpar [ Right_arrow Lcurly Lbrack Colon ] +## +## The known suffix of the stack is as follows: +## Lpar +## -prog: Fun Lpar Cmp_op With +prog: Fun Lpar Cmp_op Wildcard +## +## Ends in an error in state: 211. +## +## param_decl -> pattern . [ Rpar Comma ] +## param_decl -> pattern . Colon type_spec [ Rpar Comma ] +## +## The known suffix of the stack is as follows: +## pattern +## prog: Fun Lpar Ident Colon With +## +## Ends in an error in state: 212. +## +## param_decl -> pattern Colon . type_spec [ Rpar Comma ] +## +## The known suffix of the stack is as follows: +## pattern Colon +## prog: Fun Lpar Ident Colon Ident Semicolon +## +## Ends in an error in state: 213. +## +## param_decl -> pattern Colon type_spec . [ Rpar Comma ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Rpar Lbrack Comma ] +## +## The known suffix of the stack is as follows: +## pattern Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: Fun Lpar Ident Comma With +## +## Ends in an error in state: 215. +## +## separated_nonempty_list(Comma,param_decl) -> param_decl Comma . separated_nonempty_list(Comma,param_decl) [ Rpar ] +## +## The known suffix of the stack is as follows: +## param_decl Comma +## prog: Fun Lpar Rpar With +## +## Ends in an error in state: 219. +## +## lambda -> Fun parens(param_decl) . loption(capture_copies) option(return_annot) block [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun parens(param_decl) . loption(capture_copies) option(return_annot) Colon expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun parens(param_decl) +## prog: Fun Ident Lbrack With +## +## Ends in an error in state: 220. +## +## capture_copies -> Lbrack . separated_nonempty_list(Comma,ident) Rbrack [ Right_arrow Lcurly Colon ] +## +## The known suffix of the stack is as follows: +## Lbrack +## prog: Fun Ident Lbrack Ident With +## +## Ends in an error in state: 223. +## +## separated_nonempty_list(Comma,ident) -> ident . [ Rbrack ] +## separated_nonempty_list(Comma,ident) -> ident . Comma separated_nonempty_list(Comma,ident) [ Rbrack ] +## +## The known suffix of the stack is as follows: +## ident +## prog: Fun Ident Lbrack Ident Comma With +## +## Ends in an error in state: 224. +## +## separated_nonempty_list(Comma,ident) -> ident Comma . separated_nonempty_list(Comma,ident) [ Rbrack ] +## +## The known suffix of the stack is as follows: +## ident Comma +## prog: Fun Lpar Rpar Lbrack Ident Rbrack With +## +## Ends in an error in state: 226. +## +## lambda -> Fun parens(param_decl) loption(capture_copies) . option(return_annot) block [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun parens(param_decl) loption(capture_copies) . option(return_annot) Colon expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun parens(param_decl) loption(capture_copies) +## prog: Fun Lpar Rpar Right_arrow With +## +## Ends in an error in state: 227. +## +## return_annot -> Right_arrow . type_spec [ Lcurly Colon ] +## +## The known suffix of the stack is as follows: +## Right_arrow +## prog: Fun Lpar Rpar Right_arrow Ident Semicolon +## +## Ends in an error in state: 228. +## +## return_annot -> Right_arrow type_spec . [ Lcurly Colon ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Lcurly Lbrack Colon ] +## +## The known suffix of the stack is as follows: +## Right_arrow type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: If False Lcurly With +## +## Ends in an error in state: 231. +## +## block -> Lcurly . separated_nonempty_list(Semicolon,stmt) Rcurly [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Else Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lcurly +## prog: Fun With +## +## Ends in an error in state: 232. +## +## lambda -> Fun . parens(param_decl) loption(capture_copies) option(return_annot) block [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## lambda -> Fun . only_one_param loption(capture_copies) block [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## lambda -> Fun . parens(param_decl) loption(capture_copies) option(return_annot) Colon expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## lambda -> Fun . only_one_param loption(capture_copies) Colon expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## stmt_no_ident -> Fun . func [ Semicolon Rcurly Eof ] +## stmt_no_ident -> Fun . func_colon [ Semicolon Rcurly Eof ] +## stmt_no_ident -> Fun . Rec func [ Semicolon Rcurly Eof ] +## stmt_no_ident -> Fun . Rec func And separated_nonempty_list(And,func) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Fun +## prog: Fun Rec With +## +## Ends in an error in state: 233. +## +## stmt_no_ident -> Fun Rec . func [ Semicolon Rcurly Eof ] +## stmt_no_ident -> Fun Rec . func And separated_nonempty_list(And,func) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Fun Rec +## prog: Fun Rec Ident With +## +## Ends in an error in state: 239. +## +## func -> func_name . parens(param_decl) loption(capture_copies) option(return_annot) block [ Semicolon Rcurly Eof And ] +## +## The known suffix of the stack is as follows: +## func_name +## prog: Fun Rec Ident Lpar Rpar With +## +## Ends in an error in state: 240. +## +## func -> func_name parens(param_decl) . loption(capture_copies) option(return_annot) block [ Semicolon Rcurly Eof And ] +## +## The known suffix of the stack is as follows: +## func_name parens(param_decl) +## prog: Fun Rec Ident Lpar Rpar Lbrack Ident Rbrack With +## +## Ends in an error in state: 241. +## +## func -> func_name parens(param_decl) loption(capture_copies) . option(return_annot) block [ Semicolon Rcurly Eof And ] +## +## The known suffix of the stack is as follows: +## func_name parens(param_decl) loption(capture_copies) +## prog: Fun Rec Ident Lpar Rpar Right_arrow Ident Colon +## +## Ends in an error in state: 242. +## +## func -> func_name parens(param_decl) loption(capture_copies) option(return_annot) . block [ Semicolon Rcurly Eof And ] +## +## The known suffix of the stack is as follows: +## func_name parens(param_decl) loption(capture_copies) option(return_annot) +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## In state 228, spurious reduction of production return_annot -> Right_arrow type_spec +## In state 229, spurious reduction of production option(return_annot) -> return_annot +## prog: Fun Rec Ident Lpar Rpar Lcurly Ident Rcurly With +## +## Ends in an error in state: 245. +## +## stmt_no_ident -> Fun Rec func . [ Semicolon Rcurly Eof ] +## stmt_no_ident -> Fun Rec func . And separated_nonempty_list(And,func) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Fun Rec func +## prog: Fun Rec Ident Lpar Rpar Lcurly Ident Rcurly And With +## +## Ends in an error in state: 246. +## +## stmt_no_ident -> Fun Rec func And . separated_nonempty_list(And,func) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Fun Rec func And +## prog: Fun Rec Ident Lpar Rpar Lcurly Ident Rcurly And Ident Lpar Rpar Lcurly Ident Rcurly With +## +## Ends in an error in state: 248. +## +## separated_nonempty_list(And,func) -> func . [ Semicolon Rcurly Eof ] +## separated_nonempty_list(And,func) -> func . And separated_nonempty_list(And,func) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## func +## prog: Fun Rec Ident Lpar Rpar Lcurly Ident Rcurly And Ident Lpar Rpar Lcurly Ident Rcurly And With +## +## Ends in an error in state: 249. +## +## separated_nonempty_list(And,func) -> func And . separated_nonempty_list(And,func) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## func And +## prog: Fun Plus_op With +## +## Ends in an error in state: 251. +## +## basic_pattern -> Plus_op . [ Lcurly Lbrack Colon ] +## func_name -> Plus_op . [ Lpar ] +## +## The known suffix of the stack is as follows: +## Plus_op +## prog: Fun Mult_op With +## +## Ends in an error in state: 252. +## +## basic_pattern -> Mult_op . [ Lcurly Lbrack Colon ] +## func_name -> Mult_op . [ Lpar ] +## +## The known suffix of the stack is as follows: +## Mult_op +## prog: Fun Eq_op With +## +## Ends in an error in state: 253. +## +## basic_pattern -> Eq_op . [ Lcurly Lbrack Colon ] +## func_name -> Eq_op . [ Lpar ] +## +## The known suffix of the stack is as follows: +## Eq_op +## prog: Fun Cmp_op With +## +## Ends in an error in state: 254. +## +## basic_pattern -> Cmp_op . [ Lcurly Lbrack Colon ] +## func_name -> Cmp_op . [ Lpar ] +## +## The known suffix of the stack is as follows: +## Cmp_op +## -prog: Fun Int With +prog: Fun Int Wildcard +## +## Ends in an error in state: 255. +## +## lambda -> Fun only_one_param . loption(capture_copies) block [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun only_one_param . loption(capture_copies) Colon expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun only_one_param +## prog: Fun Ident Lbrack Ident Rbrack With +## +## Ends in an error in state: 256. +## +## lambda -> Fun only_one_param loption(capture_copies) . block [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun only_one_param loption(capture_copies) . Colon expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun only_one_param loption(capture_copies) +## prog: Fun Ident Colon With +## +## Ends in an error in state: 257. +## +## lambda -> Fun only_one_param loption(capture_copies) Colon . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun only_one_param loption(capture_copies) Colon +## prog: Fmt With +## +## Ends in an error in state: 258. +## +## expr_no_ident -> Fmt . parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fmt +## prog: Fmt Lpar With +## +## Ends in an error in state: 259. +## +## parens(expr) -> Lpar . loption(separated_nonempty_list(Comma,expr)) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar +## prog: Ctor Wildcard +## +## Ends in an error in state: 264. +## +## upcases -> Ctor . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## upcases -> Ctor . Lpar expr Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## upcases -> Ctor . Lpar tuple Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ctor +## prog: Ctor Lpar With +## +## Ends in an error in state: 265. +## +## upcases -> Ctor Lpar . expr Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## upcases -> Ctor Lpar . tuple Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar +## prog: Builtin_id With +## +## Ends in an error in state: 267. +## +## expr_no_ident -> Builtin_id . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Builtin_id +## prog: False Lpar With +## +## Ends in an error in state: 268. +## +## parens(call_arg) -> Lpar . loption(separated_nonempty_list(Comma,call_arg)) Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar +## prog: False Lpar Exclamation With +## +## Ends in an error in state: 269. +## +## call_arg -> Exclamation . expr [ Rpar Comma ] +## +## The known suffix of the stack is as follows: +## Exclamation +## prog: Ampersand With +## +## Ends in an error in state: 270. +## +## expr_no_ident -> Ampersand . expr Equal expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ampersand +## prog: Ampersand False Wildcard +## +## Ends in an error in state: 278. +## +## expr_no_ident -> expr . And expr [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## expr_no_ident -> Ampersand expr . Equal expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ampersand expr +## prog: False Plus_op With +## +## Ends in an error in state: 279. +## +## expr_no_ident -> expr Plus_op . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Plus_op +## prog: False Plus_op False Wildcard +## +## Ends in an error in state: 280. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Plus_op expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Plus_op expr +## prog: False Mult_op With +## +## Ends in an error in state: 281. +## +## expr_no_ident -> expr Mult_op . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Mult_op +## prog: False Mult_op False Wildcard +## +## Ends in an error in state: 282. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Mult_op expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Mult_op expr +## prog: False Hash With +## +## Ends in an error in state: 283. +## +## special_builtins -> expr Hash . Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Hash +## prog: False Hash Lbrack With +## +## Ends in an error in state: 284. +## +## special_builtins -> expr Hash Lbrack . expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Hash Lbrack +## prog: False Hash Lbrack False Wildcard +## +## Ends in an error in state: 285. +## +## expr_no_ident -> expr . And expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr Hash Lbrack expr . Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Hash Lbrack expr +## prog: False Or With +## +## Ends in an error in state: 287. +## +## expr_no_ident -> expr Or . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Or +## prog: False Or False Wildcard - - - -prog: False Exclamation With - - - -prog: False Ampersand Path_id With - - - -prog: False Exclamation Path_id Ident With - - - -prog: False Ampersand Path_id Wildcard - - - -prog: False Exclamation Ident With +## +## Ends in an error in state: 288. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Or expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Or expr +## prog: False Eq_op With +## +## Ends in an error in state: 289. +## +## expr_no_ident -> expr Eq_op . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Eq_op +## prog: False Eq_op False Wildcard +## +## Ends in an error in state: 290. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Eq_op expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Eq_op expr +## prog: False Dot With +## +## Ends in an error in state: 291. +## +## expr_no_ident -> expr Dot . ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Dot . path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Dot . Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Dot . Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Dot . ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr Dot . Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot +## + + + +prog: False Dot Path_id With +## +## Ends in an error in state: 292. +## +## nonempty_list(Path_id) -> Path_id . [ Wildcard U8 Plus_op Mult_op Lpar Lcurly Int Ident Eq_op Ctor Cmp_op ] +## nonempty_list(Path_id) -> Path_id . nonempty_list(Path_id) [ Wildcard U8 Plus_op Mult_op Lpar Lcurly Int Ident Eq_op Ctor Cmp_op ] +## +## The known suffix of the stack is as follows: +## Path_id +## prog: False Dot Lpar With +## +## Ends in an error in state: 294. +## +## expr_no_ident -> expr Dot Lpar . expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot Lpar +## prog: False Dot Lpar False Wildcard +## +## Ends in an error in state: 295. +## +## expr_no_ident -> expr . And expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr Dot Lpar expr . Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot Lpar expr +## prog: False Dot Lpar False Rpar With +## +## Ends in an error in state: 296. +## +## expr_no_ident -> expr Dot Lpar expr Rpar . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot Lpar expr Rpar +## -prog: False Cmp_op With +prog: False Matches With +## +## Ends in an error in state: 298. +## +## expr_no_ident -> expr Matches . pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Matches +## -prog: False Cmp_op False Wildcard - - - -prog: False Ampersand With - - - -prog: False Ampersand Path_id Ident With +prog: False Cmp_op With +## +## Ends in an error in state: 300. +## +## expr_no_ident -> expr Cmp_op . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Cmp_op +## -prog: False Ampersand Ident With +prog: False Cmp_op False Wildcard +## +## Ends in an error in state: 301. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Cmp_op expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Cmp_op expr +## prog: False And With +## +## Ends in an error in state: 305. +## +## expr_no_ident -> expr And . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr And +## prog: False And False Wildcard +## +## Ends in an error in state: 306. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr And expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr And expr +## prog: False Dot Lbrack With +## +## Ends in an error in state: 307. +## +## special_builtins -> expr Dot Lbrack . expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot Lbrack +## prog: False Dot Lbrack False Wildcard +## +## Ends in an error in state: 308. +## +## expr_no_ident -> expr . And expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr Dot Lbrack expr . Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot Lbrack expr +## prog: False Dot Fmt With +## +## Ends in an error in state: 310. +## +## expr_no_ident -> expr Dot Fmt . parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot Fmt +## prog: False Dot Path_id Ident With +## +## Ends in an error in state: 312. +## +## expr_no_ident -> expr Dot path_ident . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot path_ident +## + + + +prog: False Dot Path_id Wildcard +## +## Ends in an error in state: 314. +## +## path_ident -> nonempty_list(Path_id) . ident [ Lpar ] +## +## The known suffix of the stack is as follows: +## nonempty_list(Path_id) +## +## 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 292, spurious reduction of production nonempty_list(Path_id) -> Path_id +## prog: False Dot Ident Wildcard +## +## Ends in an error in state: 316. +## +## expr_no_ident -> expr Dot ident . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr Dot ident . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Dot ident +## prog: Ampersand False Equal With +## +## Ends in an error in state: 318. +## +## expr_no_ident -> Ampersand expr Equal . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ampersand expr Equal +## prog: Ampersand False Equal False Wildcard +## +## Ends in an error in state: 319. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> Ampersand expr Equal expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ampersand expr Equal expr +## prog: False Lpar Exclamation False Wildcard +## +## Ends in an error in state: 320. +## +## call_arg -> Exclamation expr . [ Rpar Comma ] +## expr_no_ident -> expr . And expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Exclamation expr +## prog: False Lpar Ampersand With +## +## Ends in an error in state: 321. +## +## call_arg -> Ampersand . expr [ Rpar Comma ] +## expr_no_ident -> Ampersand . expr Equal expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ampersand +## prog: False Lpar Ampersand False Wildcard +## +## Ends in an error in state: 322. +## +## call_arg -> Ampersand expr . [ Rpar Comma ] +## expr_no_ident -> expr . And expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> Ampersand expr . Equal expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Equal Eq_op Dot Comma Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ampersand expr +## prog: False Lpar False Wildcard +## +## Ends in an error in state: 326. +## +## call_arg -> expr . [ Rpar Comma ] +## expr_no_ident -> expr . And expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr +## prog: False Lpar False Comma With +## +## Ends in an error in state: 328. +## +## separated_nonempty_list(Comma,call_arg) -> call_arg Comma . separated_nonempty_list(Comma,call_arg) [ Rpar ] +## +## The known suffix of the stack is as follows: +## call_arg Comma +## prog: Ctor Lpar False Comma False Semicolon +## +## Ends in an error in state: 331. +## +## upcases -> Ctor Lpar tuple . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar tuple +## +## 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 337, spurious reduction of production separated_nonempty_list(Comma,expr) -> expr +## In state 336, spurious reduction of production tuple -> expr Comma separated_nonempty_list(Comma,expr) +## prog: Ctor Lpar False Wildcard +## +## Ends in an error in state: 333. +## +## expr_no_ident -> expr . And expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## tuple -> expr . Comma separated_nonempty_list(Comma,expr) [ Rpar ] +## upcases -> Ctor Lpar expr . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ctor Lpar expr +## prog: False Comma With +## +## Ends in an error in state: 335. +## +## tuple -> expr Comma . separated_nonempty_list(Comma,expr) [ Semicolon Rpar Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## expr Comma +## prog: False Comma False Wildcard +## +## Ends in an error in state: 337. +## +## expr_no_ident -> expr . And expr [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## separated_nonempty_list(Comma,expr) -> expr . [ Semicolon Rpar Rcurly Eof ] +## separated_nonempty_list(Comma,expr) -> expr . Comma separated_nonempty_list(Comma,expr) [ Semicolon Rpar Rcurly Eof ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Semicolon Rpar Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr +## prog: False Comma False Comma With +## +## Ends in an error in state: 338. +## +## separated_nonempty_list(Comma,expr) -> expr Comma . separated_nonempty_list(Comma,expr) [ Semicolon Rpar Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## expr Comma +## prog: Fmt Lpar False Semicolon +## +## Ends in an error in state: 341. +## +## parens(expr) -> Lpar loption(separated_nonempty_list(Comma,expr)) . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar loption(separated_nonempty_list(Comma,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 337, spurious reduction of production separated_nonempty_list(Comma,expr) -> expr +## In state 340, spurious reduction of production loption(separated_nonempty_list(Comma,expr)) -> separated_nonempty_list(Comma,expr) +## prog: Fun Ident Colon False Wildcard +## +## Ends in an error in state: 344. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun only_one_param loption(capture_copies) Colon expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun only_one_param loption(capture_copies) Colon expr +## prog: Fun Ident With +## +## Ends in an error in state: 346. +## +## basic_pattern -> ident . [ Lcurly Lbrack Colon ] +## basic_pattern -> ident . Ampersand [ Lcurly Lbrack Colon ] +## basic_pattern -> ident . Exclamation [ Lcurly Lbrack Colon ] +## func_name -> ident . [ Lpar ] +## +## The known suffix of the stack is as follows: +## ident +## prog: Fun Ident Lpar Rpar With +## +## Ends in an error in state: 348. +## +## func -> func_name parens(param_decl) . loption(capture_copies) option(return_annot) block [ Semicolon Rcurly Eof ] +## func_colon -> func_name parens(param_decl) . loption(capture_copies) option(return_annot) Colon expr [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## func_name parens(param_decl) +## prog: Fun Ident Lpar Rpar Lbrack Ident Rbrack With +## +## Ends in an error in state: 349. +## +## func -> func_name parens(param_decl) loption(capture_copies) . option(return_annot) block [ Semicolon Rcurly Eof ] +## func_colon -> func_name parens(param_decl) loption(capture_copies) . option(return_annot) Colon expr [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## func_name parens(param_decl) loption(capture_copies) +## prog: Fun Ident Lpar Rpar Colon With +## +## Ends in an error in state: 351. +## +## func_colon -> func_name parens(param_decl) loption(capture_copies) option(return_annot) Colon . expr [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## func_name parens(param_decl) loption(capture_copies) option(return_annot) Colon +## prog: Fun Ident Lpar Rpar Colon False Wildcard +## +## Ends in an error in state: 352. +## +## expr_no_ident -> expr . And expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## func_colon -> func_name parens(param_decl) loption(capture_copies) option(return_annot) Colon expr . [ Semicolon Rcurly Eof ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## func_name parens(param_decl) loption(capture_copies) option(return_annot) Colon expr +## prog: If False Lcurly Ident Eof +## +## Ends in an error in state: 358. +## +## separated_nonempty_list(Semicolon,stmt) -> stmt . [ Rcurly ] +## separated_nonempty_list(Semicolon,stmt) -> stmt . Semicolon separated_nonempty_list(Semicolon,stmt) [ Rcurly ] +## +## The known suffix of the stack is as follows: +## stmt +## +## 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 361, spurious reduction of production stmt -> ident +## prog: If False Lcurly Ident Semicolon With +## +## Ends in an error in state: 359. +## +## separated_nonempty_list(Semicolon,stmt) -> stmt Semicolon . separated_nonempty_list(Semicolon,stmt) [ Rcurly ] +## +## The known suffix of the stack is as follows: +## stmt Semicolon +## prog: Ident With +## +## Ends in an error in state: 361. +## +## expr -> ident . [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## stmt -> ident . [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## ident +## -prog: False Rpar +prog: False Wildcard +## +## Ends in an error in state: 362. +## +## expr -> expr_no_ident . [ With Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## stmt_no_ident -> expr_no_ident . [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## expr_no_ident +## prog: False With +## +## Ends in an error in state: 363. +## +## expr_no_ident -> expr . And expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Comma Cmp_op And ] +## tuple -> expr . Comma separated_nonempty_list(Comma,expr) [ Semicolon Rcurly 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 362, spurious reduction of production expr -> expr_no_ident +## prog: Fun Lpar Rpar Colon With +## +## Ends in an error in state: 366. +## +## lambda -> Fun parens(param_decl) loption(capture_copies) option(return_annot) Colon . expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun parens(param_decl) loption(capture_copies) option(return_annot) Colon +## prog: Fun Lpar Rpar Colon False Wildcard +## +## Ends in an error in state: 367. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## lambda -> Fun parens(param_decl) loption(capture_copies) option(return_annot) Colon expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Fun parens(param_decl) loption(capture_copies) option(return_annot) Colon expr +## prog: Lbrack False Wildcard +## +## Ends in an error in state: 370. +## +## expr_no_ident -> expr . And expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## separated_nonempty_trailing_list(Comma,expr,Rbrack) -> expr . option(Comma) Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## separated_nonempty_trailing_list(Comma,expr,Rbrack) -> expr . Comma separated_nonempty_trailing_list(Comma,expr,Rbrack) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr +## prog: Lbrack False Comma With +## +## Ends in an error in state: 371. +## +## option(Comma) -> Comma . [ Rbrack ] +## separated_nonempty_trailing_list(Comma,expr,Rbrack) -> expr Comma . separated_nonempty_trailing_list(Comma,expr,Rbrack) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr Comma +## prog: Hash Int With +## +## Ends in an error in state: 375. +## +## fixed_array_lit -> Hash Int . Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Hash Int +## prog: Hash Int Lbrack With +## +## Ends in an error in state: 376. +## +## fixed_array_lit -> Hash Int Lbrack . expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Hash Int Lbrack +## prog: Hash Int Lbrack False Wildcard +## +## Ends in an error in state: 377. +## +## expr_no_ident -> expr . And expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## fixed_array_lit -> Hash Int Lbrack expr . Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rbrack Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Hash Int Lbrack expr +## prog: If False Wildcard +## +## Ends in an error in state: 379. +## +## expr_no_ident -> expr . And expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> If expr . block ifcont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## If expr +## prog: If False Lcurly Ident Rcurly Wildcard +## +## Ends in an error in state: 380. +## +## expr_no_ident -> If expr block . ifcont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## If expr block +## prog: If False Lcurly Ident Rcurly Else With +## +## Ends in an error in state: 381. +## +## ifcont -> Else . block [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## ifcont -> Else . If expr block ifcont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Else +## prog: If False Lcurly Ident Rcurly Else If With +## +## Ends in an error in state: 382. +## +## ifcont -> Else If . expr block ifcont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Else If +## prog: If False Lcurly Ident Rcurly Else If False Wildcard +## +## Ends in an error in state: 383. +## +## expr_no_ident -> expr . And expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## ifcont -> Else If expr . block ifcont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Else If expr +## prog: If False Lcurly Ident Rcurly Else If False Lcurly Ident Rcurly Wildcard +## +## Ends in an error in state: 384. +## +## ifcont -> Else If expr block . ifcont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Else If expr block +## prog: Match Exclamation With +## +## Ends in an error in state: 390. +## +## passed(expr) -> Exclamation . expr [ Semicolon Rcurly Lcurly Eof ] +## +## The known suffix of the stack is as follows: +## Exclamation +## prog: Match Exclamation False Wildcard +## +## Ends in an error in state: 391. +## +## expr_no_ident -> expr . And expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## passed(expr) -> Exclamation expr . [ Semicolon Rcurly Lcurly Eof ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Exclamation expr +## prog: Let Ident Equal Builtin_id With +## +## Ends in an error in state: 392. +## +## expr_no_ident -> Builtin_id . parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Eof Dot Cmp_op And ] +## stmt_no_ident -> Let let_decl Equal Builtin_id . [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Let let_decl Equal Builtin_id +## prog: Match Ampersand With +## +## Ends in an error in state: 393. +## +## expr_no_ident -> Ampersand . expr Equal expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## passed(expr) -> Ampersand . expr [ Semicolon Rcurly Lcurly Eof ] +## +## The known suffix of the stack is as follows: +## Ampersand +## prog: Match Ampersand False Wildcard +## +## Ends in an error in state: 394. +## +## expr_no_ident -> expr . And expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> Ampersand expr . Equal expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## passed(expr) -> Ampersand expr . [ Semicolon Rcurly Lcurly Eof ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Ampersand expr +## prog: Match False Wildcard +## +## Ends in an error in state: 396. +## +## expr_no_ident -> expr . And expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## passed(expr) -> expr . [ Semicolon Rcurly Lcurly Eof ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Lcurly Hash Eq_op Eof Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## expr +## prog: Lcurly False Eof +## +## Ends in an error in state: 397. +## +## expr_no_ident -> Lcurly stmt_no_ident . block_cont [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lcurly stmt_no_ident +## +## 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 stmt_no_ident -> expr_no_ident +## prog: Lcurly False Semicolon With +## +## Ends in an error in state: 398. +## +## block_cont -> Semicolon . separated_nonempty_list(Semicolon,stmt) Rcurly [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Semicolon +## prog: Lcurly Ident Comma With +## +## Ends in an error in state: 405. +## +## option(Comma) -> Comma . [ Rcurly ] +## separated_nonempty_trailing_list(Comma,record_item,Rcurly) -> record_item Comma . separated_nonempty_trailing_list(Comma,record_item,Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## record_item Comma +## prog: Lcurly Ident With Ident With +## +## Ends in an error in state: 407. +## +## record_item -> ident . Equal expr [ Rcurly Comma ] +## record_item -> ident . [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## ident +## prog: Lcurly Ident Equal With +## +## Ends in an error in state: 408. +## +## record_item -> ident Equal . expr [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## ident Equal +## prog: Lcurly Ident Equal False Wildcard +## +## Ends in an error in state: 409. +## +## expr_no_ident -> expr . And expr [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## record_item -> ident Equal expr . [ Rcurly Comma ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## +## The known suffix of the stack is as follows: +## ident Equal expr +## prog: Lcurly Ident Wildcard +## +## Ends in an error in state: 412. +## +## expr -> ident . [ With Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## record_item -> ident . Equal expr [ Rcurly Comma ] +## record_item -> ident . [ Rcurly Comma ] +## +## The known suffix of the stack is as follows: +## ident +## prog: Lcurly False Comma +## +## Ends in an error in state: 413. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> Lcurly expr . With separated_nonempty_trailing_list(Comma,record_item,Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lcurly 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 362, spurious reduction of production expr -> expr_no_ident +## prog: Lcurly Ident With With +## +## Ends in an error in state: 414. +## +## expr_no_ident -> Lcurly expr With . separated_nonempty_trailing_list(Comma,record_item,Rcurly) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lcurly expr With +## prog: Lpar False Comma False Semicolon +## +## Ends in an error in state: 416. +## +## expr_no_ident -> Lpar tuple . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Lpar tuple +## +## 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 337, spurious reduction of production separated_nonempty_list(Comma,expr) -> expr +## In state 336, spurious reduction of production tuple -> expr Comma separated_nonempty_list(Comma,expr) +## prog: Lpar False Wildcard +## +## Ends in an error in state: 418. +## +## expr_no_ident -> expr . And expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## expr_no_ident -> Lpar expr . Rpar [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Rpar Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Comma Cmp_op And ] +## tuple -> expr . Comma separated_nonempty_list(Comma,expr) [ Rpar ] +## +## The known suffix of the stack is as follows: +## Lpar expr +## prog: Match False Semicolon +## +## Ends in an error in state: 420. +## +## expr_no_ident -> Match passed(expr) . Lcurly clauses Rcurly [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Match passed(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 396, spurious reduction of production passed(expr) -> expr +## prog: Match False Lcurly With +## +## Ends in an error in state: 421. +## +## expr_no_ident -> Match passed(expr) Lcurly . clauses Rcurly [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Match passed(expr) Lcurly +## -prog: Match False Lcurly Hbar With - - - -prog: Match False Lcurly Cmp_op With +prog: Match False Lcurly Cmp_op Wildcard +## +## Ends in an error in state: 423. +## +## match_pattern -> pattern . [ Colon And ] +## match_pattern -> pattern . Hbar separated_nonempty_list(Hbar,pattern) [ Colon And ] +## +## The known suffix of the stack is as follows: +## pattern +## prog: Match False Lcurly Ident Hbar With +## +## Ends in an error in state: 424. +## +## match_pattern -> pattern Hbar . separated_nonempty_list(Hbar,pattern) [ Colon And ] +## +## The known suffix of the stack is as follows: +## pattern Hbar +## prog: Match False Lcurly Ident Hbar Ident Rpar +## +## Ends in an error in state: 426. +## +## clause -> option(clause_path) match_pattern . option(guard) Colon expr [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## option(clause_path) match_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 170, spurious reduction of production basic_pattern -> ident +## In state 173, spurious reduction of production pattern -> basic_pattern +## In state 191, spurious reduction of production separated_nonempty_list(Hbar,pattern) -> pattern +## In state 425, spurious reduction of production match_pattern -> pattern Hbar separated_nonempty_list(Hbar,pattern) +## prog: Match False Lcurly Ident And With +## +## Ends in an error in state: 427. +## +## guard -> And . expr [ Colon ] +## +## The known suffix of the stack is as follows: +## And +## prog: Match False Lcurly Ident And False Wildcard +## +## Ends in an error in state: 428. +## +## expr_no_ident -> expr . And expr [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## guard -> And expr . [ Colon ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## And expr +## prog: Match False Lcurly Ident Colon With +## +## Ends in an error in state: 430. +## +## clause -> option(clause_path) match_pattern option(guard) Colon . expr [ Semicolon Rcurly ] +## +## The known suffix of the stack is as follows: +## option(clause_path) match_pattern option(guard) Colon +## prog: Match False Lcurly Ident Colon False Wildcard +## +## Ends in an error in state: 431. +## +## clause -> option(clause_path) match_pattern option(guard) Colon expr . [ Semicolon Rcurly ] +## expr_no_ident -> expr . And expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Or expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ Semicolon Rcurly Plus_op Or Mult_op Matches Lpar Hash Eq_op Dot Cmp_op And ] +## +## The known suffix of the stack is as follows: +## option(clause_path) match_pattern option(guard) Colon expr +## prog: Match False Lcurly Ident Colon False Semicolon With - - - -prog: Match False Lcurly Ident Colon False Semicolon Ident Colon False Hbar - - - -prog: Match False Lcurly Ident Colon False Semicolon Ident Colon False Semicolon With - - - -prog: Match False Lcurly Ident Colon False Hbar With - - - -prog: Match False Lcurly Ident Colon False Hbar Ident Colon False Semicolon - - - -prog: Match False Lcurly Ident Colon False Hbar Ident Colon False Hbar With +## +## Ends in an error in state: 438. +## +## clauses -> clause Semicolon . clauses [ Rcurly ] +## +## The known suffix of the stack is as follows: +## clause Semicolon +## prog: Plus_op False Wildcard +## +## Ends in an error in state: 441. +## +## expr_no_ident -> expr . And expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Or expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Matches pattern [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Eq_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Cmp_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Plus_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Mult_op expr [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> Plus_op expr . [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot path_ident parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Lpar expr Rpar parens(call_arg) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot Fmt parens(expr) [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## expr_no_ident -> expr . Dot ident [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Dot Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## special_builtins -> expr . Hash Lbrack expr Rbrack [ With Semicolon Rpar Rcurly Rbrack Plus_op Or Mult_op Matches Lpar Lcurly Hash Equal Eq_op Eof Dot Comma Colon Cmp_op And ] +## +## The known suffix of the stack is as follows: +## Plus_op expr +## prog: Module With +## +## Ends in an error in state: 442. +## +## modtype -> Module . Type ident Lcurly sig_items Rcurly [ Semicolon Rcurly Eof ] +## modul -> Module . module_decl Lcurly separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## modul -> Module . module_decl Equal path_with_loc [ Semicolon Rcurly Eof ] +## modul -> Module . module_decl Equal module_application [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module +## prog: Module Type With +## +## Ends in an error in state: 443. +## +## modtype -> Module Type . ident Lcurly sig_items Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module Type +## prog: Module Type Ident With +## +## Ends in an error in state: 444. +## +## modtype -> Module Type ident . Lcurly sig_items Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module Type ident +## prog: Module Type Ident Lcurly With +## +## Ends in an error in state: 445. +## +## modtype -> Module Type ident Lcurly . sig_items Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module Type ident Lcurly +## prog: Module Ident Lpar +## +## Ends in an error in state: 448. +## +## modul -> Module module_decl . Lcurly separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## modul -> Module module_decl . Equal path_with_loc [ Semicolon Rcurly Eof ] +## modul -> Module module_decl . Equal module_application [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module module_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 483, spurious reduction of production module_decl -> ident +## prog: Module Ident Lcurly With +## +## Ends in an error in state: 449. +## +## modul -> Module module_decl Lcurly . separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module module_decl Lcurly +## prog: Import With +## +## Ends in an error in state: 450. +## +## top_item -> Import . Ident [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Import +## prog: Functor With +## +## Ends in an error in state: 452. +## +## functor_ -> Functor . module_decl Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar Lcurly separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Functor +## prog: Functor Ident Lcurly +## +## Ends in an error in state: 453. +## +## functor_ -> Functor module_decl . Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar Lcurly separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Functor module_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 483, spurious reduction of production module_decl -> ident +## prog: Functor Ident Lpar With +## +## Ends in an error in state: 454. +## +## functor_ -> Functor module_decl Lpar . loption(separated_nonempty_list(Comma,functor_param)) Rpar Lcurly separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Functor module_decl Lpar +## prog: Functor Ident Lpar Rpar With +## +## Ends in an error in state: 457. +## +## functor_ -> Functor module_decl Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar . Lcurly separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Functor module_decl Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar +## prog: Functor Ident Lpar Rpar Lcurly With +## +## Ends in an error in state: 458. +## +## functor_ -> Functor module_decl Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar Lcurly . separated_nonempty_list(Semicolon,top_item) Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Functor module_decl Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar Lcurly +## prog: External With +## +## Ends in an error in state: 459. +## +## ext -> External . ident Colon type_spec [ Semicolon Rcurly Eof ] +## ext -> External . ident Colon type_spec Equal String_lit [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## External +## prog: External Ident With +## +## Ends in an error in state: 460. +## +## ext -> External ident . Colon type_spec [ Semicolon Rcurly Eof ] +## ext -> External ident . Colon type_spec Equal String_lit [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## External ident +## prog: External Ident Colon With +## +## Ends in an error in state: 461. +## +## ext -> External ident Colon . type_spec [ Semicolon Rcurly Eof ] +## ext -> External ident Colon . type_spec Equal String_lit [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## External ident Colon +## prog: External Ident Colon Ident Rpar +## +## Ends in an error in state: 462. +## +## ext -> External ident Colon type_spec . [ Semicolon Rcurly Eof ] +## ext -> External ident Colon type_spec . Equal String_lit [ Semicolon Rcurly Eof ] +## type_spec -> type_spec . Lbrack separated_nonempty_list(Comma,type_spec) Rbrack [ Semicolon Rcurly Lbrack Equal Eof ] +## +## The known suffix of the stack is as follows: +## External ident Colon type_spec +## +## 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 28, spurious reduction of production ident -> Ident +## In state 39, spurious reduction of production type_spec -> ident +## prog: External Ident Colon Ident Equal With +## +## Ends in an error in state: 463. +## +## ext -> External ident Colon type_spec Equal . String_lit [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## External ident Colon type_spec Equal +## prog: Use Ident With +## +## Ends in an error in state: 466. +## +## separated_nonempty_list(Semicolon,top_item) -> top_item . [ Rcurly Eof ] +## separated_nonempty_list(Semicolon,top_item) -> top_item . Semicolon separated_nonempty_list(Semicolon,top_item) [ Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## top_item +## prog: Ident Semicolon With +## +## Ends in an error in state: 467. +## +## separated_nonempty_list(Semicolon,top_item) -> top_item Semicolon . separated_nonempty_list(Semicolon,top_item) [ Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## top_item Semicolon +## prog: Functor Ident Lpar Rpar Lcurly Ident Eof +## +## Ends in an error in state: 475. +## +## functor_ -> Functor module_decl Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar Lcurly separated_nonempty_list(Semicolon,top_item) . Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Functor module_decl Lpar loption(separated_nonempty_list(Comma,functor_param)) Rpar Lcurly separated_nonempty_list(Semicolon,top_item) +## +## 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 361, spurious reduction of production stmt -> ident +## In state 468, spurious reduction of production top_item -> stmt +## In state 466, spurious reduction of production separated_nonempty_list(Semicolon,top_item) -> top_item +## prog: Functor Ident Lpar Ident With +## +## Ends in an error in state: 477. +## +## functor_param -> ident . Colon use_path [ Rpar Comma ] +## +## The known suffix of the stack is as follows: +## ident +## prog: Functor Ident Lpar Ident Colon With +## +## Ends in an error in state: 478. +## +## functor_param -> ident Colon . use_path [ Rpar Comma ] +## +## The known suffix of the stack is as follows: +## ident Colon +## prog: Functor Ident Lpar Ident Colon Ident With +## +## Ends in an error in state: 480. +## +## separated_nonempty_list(Comma,functor_param) -> functor_param . [ Rpar ] +## separated_nonempty_list(Comma,functor_param) -> functor_param . Comma separated_nonempty_list(Comma,functor_param) [ Rpar ] +## +## The known suffix of the stack is as follows: +## functor_param +## prog: Functor Ident Lpar Ident Colon Ident Comma With +## +## Ends in an error in state: 481. +## +## separated_nonempty_list(Comma,functor_param) -> functor_param Comma . separated_nonempty_list(Comma,functor_param) [ Rpar ] +## +## The known suffix of the stack is as follows: +## functor_param Comma +## prog: Functor Ident With +## +## Ends in an error in state: 483. +## +## module_decl -> ident . [ Lpar Lcurly Equal ] +## module_decl -> ident . Colon use_path [ Lpar Lcurly Equal ] +## +## The known suffix of the stack is as follows: +## ident +## prog: Functor Ident Colon With +## +## Ends in an error in state: 484. +## +## module_decl -> ident Colon . use_path [ Lpar Lcurly Equal ] +## +## The known suffix of the stack is as follows: +## ident Colon +## prog: Module Ident Lcurly Ident Eof +## +## Ends in an error in state: 486. +## +## modul -> Module module_decl Lcurly separated_nonempty_list(Semicolon,top_item) . Rcurly [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module module_decl Lcurly separated_nonempty_list(Semicolon,top_item) +## +## 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 361, spurious reduction of production stmt -> ident +## In state 468, spurious reduction of production top_item -> stmt +## In state 466, spurious reduction of production separated_nonempty_list(Semicolon,top_item) -> top_item +## prog: Module Ident Equal With +## +## Ends in an error in state: 488. +## +## modul -> Module module_decl Equal . path_with_loc [ Semicolon Rcurly Eof ] +## modul -> Module module_decl Equal . module_application [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module module_decl Equal +## prog: Module Ident Equal Ident With +## +## Ends in an error in state: 490. +## +## modul -> Module module_decl Equal path_with_loc . [ Semicolon Rcurly Eof ] +## module_application -> path_with_loc . parens(path_with_loc) [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Module module_decl Equal path_with_loc +## prog: Module Ident Equal Ident Lpar With +## +## Ends in an error in state: 491. +## +## parens(path_with_loc) -> Lpar . loption(separated_nonempty_list(Comma,path_with_loc)) Rpar [ Semicolon Rcurly Eof ] +## +## The known suffix of the stack is as follows: +## Lpar +## prog: Module Ident Equal Ident Lpar Ident With +## +## Ends in an error in state: 493. +## +## separated_nonempty_list(Comma,path_with_loc) -> path_with_loc . [ Rpar ] +## separated_nonempty_list(Comma,path_with_loc) -> path_with_loc . Comma separated_nonempty_list(Comma,path_with_loc) [ Rpar ] +## +## The known suffix of the stack is as follows: +## path_with_loc +## prog: Module Ident Equal Ident Lpar Ident Comma With +## +## Ends in an error in state: 494. +## +## separated_nonempty_list(Comma,path_with_loc) -> path_with_loc Comma . separated_nonempty_list(Comma,path_with_loc) [ Rpar ] +## +## The known suffix of the stack is as follows: +## path_with_loc Comma +## prog: Ident Rcurly +## +## Ends in an error in state: 502. +## +## prog -> loption(separated_nonempty_list(Semicolon,top_item)) . Eof [ # ] +## +## The known suffix of the stack is as follows: +## loption(separated_nonempty_list(Semicolon,top_item)) +## +## 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 361, spurious reduction of production stmt -> ident +## In state 468, spurious reduction of production top_item -> stmt +## In state 466, spurious reduction of production separated_nonempty_list(Semicolon,top_item) -> top_item +## In state 500, spurious reduction of production loption(separated_nonempty_list(Semicolon,top_item)) -> separated_nonempty_list(Semicolon,top_item) +## diff --git a/std/option.smu b/std/option.smu index cc8785e..0abb9cc 100644 --- a/std/option.smu +++ b/std/option.smu @@ -34,9 +34,9 @@ fun bind(opt, f) { } fun is_some(opt) { - match opt { Some(_): true | None: false } + match opt { Some(_): true; None: false } } fun is_none(opt) { - match opt { Some(_): false | None: true } + match opt { Some(_): false; None: true } } diff --git a/test/memory.t/array_drop_back.smu b/test/memory.t/array_drop_back.smu index f0c0196..0c2092b 100644 --- a/test/memory.t/array_drop_back.smu +++ b/test/memory.t/array_drop_back.smu @@ -1,8 +1,8 @@ let nested& = [[0, 1], [2, 3]] println(fmt(array/length(nested))) -match array/pop_back(&nested) { Some(_): println("some") | None: () } +match array/pop_back(&nested) { Some(_): println("some"); None: () } println(fmt(array/length(nested))) array/pop_back(&nested).ignore() println(fmt(array/length(nested))) -match array/pop_back(&nested){ Some(_): () | None: println("none") } +match array/pop_back(&nested){ Some(_): (); None: println("none") } println(fmt(array/length(nested))) diff --git a/test/memory.t/global_let.smu b/test/memory.t/global_let.smu index da4a14a..6d2feb7 100644 --- a/test/memory.t/global_let.smu +++ b/test/memory.t/global_let.smu @@ -2,7 +2,7 @@ fun ret_none() { let a : option[array[int]] = None a } -let b = !match ret_none() {Some(a): a | None: [1, 2]} +let b = !match ret_none() {Some(a): a; None: [1, 2]} ignore(b) type r['a] = {a : 'a} diff --git a/test/memory.t/run.t b/test/memory.t/run.t index c03d703..13b026c 100644 --- a/test/memory.t/run.t +++ b/test/memory.t/run.t @@ -195,7 +195,7 @@ Drop last element !12 = !DILocation(line: 5, scope: !7) !13 = !DILocation(line: 7, column: 6, scope: !7) !14 = !DILocation(line: 7, column: 31, scope: !7) - !15 = !DILocation(line: 7, column: 51, scope: !7) + !15 = !DILocation(line: 7, column: 50, scope: !7) 2 some 1 diff --git a/test/misc.t/piping.smu b/test/misc.t/piping.smu index 9f3f9b5..214788f 100644 --- a/test/misc.t/piping.smu +++ b/test/misc.t/piping.smu @@ -14,4 +14,4 @@ type foo = {x : int} {x = 1}.x.printi() println("") 10.fmt().println() -['a', 'b', 'c']!string/of_array().string/get(1).fmt().println() +string/of_array(['a', 'b', 'c']).string/get(1).fmt().println() diff --git a/test/misc.t/run.t b/test/misc.t/run.t index 1adbab9..932daf4 100644 --- a/test/misc.t/run.t +++ b/test/misc.t/run.t @@ -777,8 +777,8 @@ Piping for ctors and field accessors !12 = !DILocation(line: 10, column: 6, scope: !8) !13 = !DILocation(line: 14, column: 10, scope: !8) !14 = !DILocation(line: 15, scope: !8) - !15 = !DILocation(line: 17, column: 16, scope: !8) - !16 = !DILocation(line: 17, column: 34, scope: !8) + !15 = !DILocation(line: 17, scope: !8) + !16 = !DILocation(line: 17, column: 33, scope: !8) 2 1 diff --git a/test/mutable_value_semantics.t/member_refcounts.smu b/test/mutable_value_semantics.t/member_refcounts.smu index fb6e914..8410270 100644 --- a/test/mutable_value_semantics.t/member_refcounts.smu +++ b/test/mutable_value_semantics.t/member_refcounts.smu @@ -11,4 +11,4 @@ println(fmt(r.[0].[0])) let r = Some(copy(a)) &a.[0] = 40 -match r {Some(a): println(fmt(a.[0])) | None: println("none")} +match r { Some(a): println(fmt(a.[0])); None: println("none") } diff --git a/test/mutable_value_semantics.t/run.t b/test/mutable_value_semantics.t/run.t index 77cf0ba..6f74ba9 100644 --- a/test/mutable_value_semantics.t/run.t +++ b/test/mutable_value_semantics.t/run.t @@ -1358,7 +1358,7 @@ Refcounts for members in arrays, records and variants !3 = !DIFile(filename: "member_refcounts.smu", directory: "") !4 = !DISubroutineType(flags: DIFlagPrototyped, types: !5) !5 = !{} - !6 = !DILocation(line: 14, column: 9, scope: !2) + !6 = !DILocation(line: 14, column: 10, scope: !2) !7 = !DILocation(line: 14, column: 46, scope: !2) $ valgrind -q --leak-check=yes --show-reachable=yes ./member_refcounts 10 diff --git a/test/typing.ml b/test/typing.ml index ab639f9..9b07494 100644 --- a/test/typing.ml +++ b/test/typing.ml @@ -492,11 +492,11 @@ let test_lor_other_variant () = let test_match_all () = test "int" - "type option['a] = None | Some('a); match Some(1) { Some(a): a | None: -1}" + "type option['a] = None | Some('a); match Some(1) { Some(a): a; None: -1}" let test_match_redundant () = test_exn "Pattern match case is redundant" - "type option['a] = None | Some('a); match Some(1){ a: a | None: -1}" + "type option['a] = None | Some('a); match Some(1){ a: a; None: -1}" let test_match_missing () = test_exn "Pattern match is not exhaustive. Missing cases: Some" @@ -517,12 +517,12 @@ match None { let test_match_all_after_ctor () = test "int" {|type option['a] = None | Some('a) -match Some(1) {None: -1 | a: 0}|} +match Some(1) {None: -1; a: 0}|} let test_match_all_before_ctor () = test_exn "Pattern match case is redundant" {|type option['a] = None | Some('a) -match Some(1) {a: 0 | None: -1}|} +match Some(1) {a: 0; None: -1}|} let test_match_redundant_all_cases () = test_exn "Pattern match case is redundant" @@ -539,7 +539,7 @@ match None { let test_match_wildcard () = test_exn "Pattern match case is redundant" {|type option['a] = None | Some('a) -match Some(1) {_: 0 | None: -1}|} +match Some(1) {_: 0; None: -1}|} let test_match_wildcard_nested () = test_exn "Pattern match case is redundant" @@ -610,36 +610,36 @@ match Some({a = Some(2), b = 53.0}) { let test_match_int () = test "int" {|type option['a] = None | Some('a) -match Some(10) {Some(1): 1 | Some(10): 10 | Some(_): 0 | None: -1} +match Some(10) {Some(1): 1; Some(10): 10; Some(_): 0; None: -1} |} let test_match_int_wildcard_missing () = test_exn "Pattern match is not exhaustive. Missing cases: Some" {|type option['a] = None | Some('a) -match Some(10) {Some(1): 1 | Some(10): 10 | None: -1}|} +match Some(10) {Some(1): 1; Some(10): 10; None: -1}|} let test_match_int_twice () = test_exn "Pattern match case is redundant" {| type option['a] = None | Some('a) -match Some(10) {Some(1): 1 | Some(10): 10 | Some(10): 10 | Some(_): 0 | None: -1} +match Some(10) {Some(1): 1; Some(10): 10; Some(10): 10; Some(_): 0; None: -1} |} let test_match_int_after_catchall () = test_exn "Pattern match case is redundant" {| type option['a] = None | Some('a) -match Some(10) {Some(1): 1 | Some(_): 10 | Some(10): 10 | None: -1} +match Some(10) {Some(1): 1; Some(_): 10; Some(10): 10; None: -1} |} -let test_match_or () = test "int" "match (1, 2) {(a, 1) | (a, 2): a | _: -1}" +let test_match_or () = test "int" "match (1, 2) {(a, 1) | (a, 2): a; _: -1}" let test_match_or_missing_var () = - test_exn "No var named a" "match (1, 2) {(a, 1) | (b, 2): a | _: -1}" + test_exn "No var named a" "match (1, 2) {(a, 1) | (b, 2): a; _: -1}" let test_match_or_redundant () = test_exn "Pattern match case is redundant" - "match (1, 2) { (a, 1) | (a, 2) | (a, 1): a | _: {-1}}" + "match (1, 2) { (a, 1) | (a, 2) | (a, 1): a; _: {-1}}" let test_match_guard_positive () = test "unit" diff --git a/test/variants.t/failwith_ifs.smu b/test/variants.t/failwith_ifs.smu index 739133e..727091d 100644 --- a/test/variants.t/failwith_ifs.smu +++ b/test/variants.t/failwith_ifs.smu @@ -10,7 +10,7 @@ fun append(storage&, thing!) { fun do_or_record_update(state&) { let block = !match With { Semicolon: { - match With { Rcurly: () | _: () } + match With { Rcurly: (); _: () } Some(0) } _: failwith("Unexpected token on curly expr") diff --git a/test/variants.t/match_option.smu b/test/variants.t/match_option.smu index 5a334ec..ced02e2 100644 --- a/test/variants.t/match_option.smu +++ b/test/variants.t/match_option.smu @@ -9,7 +9,7 @@ match_opt(Some(1)).fmt().println() match_opt(None).fmt().println() -- switch ctors -fun opt_match(p) {match p { None: 0 | Some(thing): thing}} +fun opt_match(p) {match p { None: 0; Some(thing): thing}} opt_match(Some(1)).fmt().println() opt_match(None).fmt().println() @@ -24,7 +24,7 @@ fun some_all( p){ some_all(Some(1)).fmt().println() some_all(None).fmt().println() -fun none_all(p) {match p {None: 0 | _: 1}} +fun none_all(p) {match p {None: 0; _: 1}} none_all(Some(1)).fmt().println() let none_int : option[int] = None diff --git a/test/variants.t/tuple_match_regression.smu b/test/variants.t/tuple_match_regression.smu index 8d5a7c0..1fb8470 100644 --- a/test/variants.t/tuple_match_regression.smu +++ b/test/variants.t/tuple_match_regression.smu @@ -3,7 +3,7 @@ type tok = A | B | C(int) fun infun(tok) { let delim& = None (fun tok { - match tok { C(_): println("c") | _: () } + match tok { C(_): println("c"); _: () } match (delim, tok) { (Some(A), A): println("some a") (Some(B), B): println("some b")