From a7f6de9fac38de04572cdc52fdbad33018d8f743 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Fri, 12 Jun 2020 17:49:21 +0200 Subject: [PATCH 1/5] Improved code injection. Fixed a few bugs on the way. --- src/passes/01-parser/cameligo/AST.ml | 57 +- src/passes/01-parser/cameligo/LexToken.mli | 31 +- src/passes/01-parser/cameligo/LexToken.mll | 60 +- src/passes/01-parser/cameligo/ParToken.mly | 20 +- src/passes/01-parser/cameligo/Parser.mly | 15 +- src/passes/01-parser/cameligo/ParserLog.ml | 48 +- src/passes/01-parser/cameligo/Pretty.ml | 40 +- .../cameligo/error.messages.checked-in | 1921 ++++++++--------- src/passes/01-parser/pascaligo/AST.ml | 75 +- src/passes/01-parser/pascaligo/LexToken.mli | 3 +- src/passes/01-parser/pascaligo/LexToken.mll | 41 +- src/passes/01-parser/pascaligo/ParToken.mly | 18 +- src/passes/01-parser/pascaligo/Parser.mly | 15 +- src/passes/01-parser/pascaligo/ParserLog.ml | 56 +- src/passes/01-parser/pascaligo/Pretty.ml | 10 +- .../pascaligo/error.messages.checked-in | 1756 ++++++++------- src/passes/01-parser/reasonligo/LexToken.mli | 31 +- src/passes/01-parser/reasonligo/LexToken.mll | 59 +- src/passes/01-parser/reasonligo/ParToken.mly | 20 +- src/passes/01-parser/reasonligo/Parser.mly | 41 +- src/passes/01-parser/reasonligo/Pretty.ml | 12 +- .../reasonligo/error.messages.checked-in | 1372 ++++++------ src/passes/01-parser/shared/Lexer.mli | 1 + src/passes/01-parser/shared/Lexer.mll | 15 +- .../02-concrete_to_imperative/cameligo.ml | 14 +- .../02-concrete_to_imperative/pascaligo.ml | 10 +- 26 files changed, 2840 insertions(+), 2901 deletions(-) diff --git a/src/passes/01-parser/cameligo/AST.ml b/src/passes/01-parser/cameligo/AST.ml index b1ffa4ed7..60c9c0157 100644 --- a/src/passes/01-parser/cameligo/AST.ml +++ b/src/passes/01-parser/cameligo/AST.ml @@ -227,27 +227,27 @@ and field_pattern = { } and expr = - ECase of expr case reg -| ECond of cond_expr reg -| EAnnot of annot_expr par reg -| ELogic of logic_expr -| EArith of arith_expr -| EString of string_expr -| EList of list_expr -| EConstr of constr_expr -| ERecord of record reg -| EProj of projection reg -| EUpdate of update reg -| EVar of variable -| ECall of (expr * expr nseq) reg -| EBytes of (string * Hex.t) reg -| EUnit of the_unit reg -| ETuple of (expr, comma) nsepseq reg -| EPar of expr par reg -| ELetIn of let_in reg -| EFun of fun_expr reg -| ESeq of expr injection reg -| ECodeInsert of code_insert reg + ECase of expr case reg +| ECond of cond_expr reg +| EAnnot of annot_expr par reg +| ELogic of logic_expr +| EArith of arith_expr +| EString of string_expr +| EList of list_expr +| EConstr of constr_expr +| ERecord of record reg +| EProj of projection reg +| EUpdate of update reg +| EVar of variable +| ECall of (expr * expr nseq) reg +| EBytes of (string * Hex.t) reg +| EUnit of the_unit reg +| ETuple of (expr, comma) nsepseq reg +| EPar of expr par reg +| ELetIn of let_in reg +| EFun of fun_expr reg +| ESeq of expr injection reg +| ECodeInj of code_inj reg and annot_expr = expr * colon * type_expr @@ -400,13 +400,12 @@ and cond_expr = { ifnot : expr } -and code_insert = { - lbracket : lbracket; - percent : percent; - language : string reg; - code : expr; - rbracket : rbracket; +and code_inj = { + language : string reg reg; + code : expr; + rbracket : rbracket; } + (* Projecting regions from some nodes of the AST *) let rec last to_region = function @@ -490,8 +489,8 @@ let expr_to_region = function | ECond {region;_} | ETuple {region;_} | ECase {region;_} | ECall {region;_} | EVar {region; _} | EProj {region; _} | EUnit {region;_} | EPar {region;_} | EBytes {region; _} -| ESeq {region; _} | ERecord {region; _} | EUpdate {region; _} -| ECodeInsert {region; _} -> region +| ESeq {region; _} | ERecord {region; _} | EUpdate {region; _} +| ECodeInj {region; _} -> region let selection_to_region = function FieldName f -> f.region diff --git a/src/passes/01-parser/cameligo/LexToken.mli b/src/passes/01-parser/cameligo/LexToken.mli index 55034607e..b05b94318 100644 --- a/src/passes/01-parser/cameligo/LexToken.mli +++ b/src/passes/01-parser/cameligo/LexToken.mli @@ -29,9 +29,22 @@ type lexeme = string (* TOKENS *) type t = - (* Symbols *) + (* Identifiers, labels, numbers and strings *) - ARROW of Region.t (* "->" *) + Ident of string Region.reg +| Constr of string Region.reg +| Int of (string * Z.t) Region.reg +| Nat of (string * Z.t) Region.reg +| Mutez of (string * Z.t) Region.reg +| String of string Region.reg +| Verbatim of string Region.reg +| Bytes of (string * Hex.t) Region.reg +| Attr of string Region.reg +| Lang of lexeme Region.reg Region.reg + +(* Symbols *) + +| ARROW of Region.t (* "->" *) | CONS of Region.t (* "::" *) | CAT of Region.t (* "^" *) (*| APPEND (* "@" *)*) @@ -42,7 +55,6 @@ type t = | PLUS of Region.t (* "+" *) | SLASH of Region.t (* "/" *) | TIMES of Region.t (* "*" *) -| PERCENT of Region.t (* "%" *) (* Compounds *) @@ -77,18 +89,6 @@ type t = | BOOL_OR of Region.t (* "||" *) | BOOL_AND of Region.t (* "&&" *) - (* Identifiers, labels, numbers and strings *) - -| Ident of string Region.reg -| Constr of string Region.reg -| Int of (string * Z.t) Region.reg -| Nat of (string * Z.t) Region.reg -| Mutez of (string * Z.t) Region.reg -| String of string Region.reg -| Verbatim of string Region.reg -| Bytes of (string * Hex.t) Region.reg -| Attr of string Region.reg - (* Keywords *) (*| And*) @@ -155,6 +155,7 @@ val mk_verbatim : lexeme -> Region.t -> token val mk_bytes : lexeme -> Region.t -> token val mk_constr : lexeme -> Region.t -> token val mk_attr : string -> lexeme -> Region.t -> (token, attr_err) result +val mk_lang : lexeme Region.reg -> Region.t -> token val eof : Region.t -> token (* Predicates *) diff --git a/src/passes/01-parser/cameligo/LexToken.mll b/src/passes/01-parser/cameligo/LexToken.mll index aea43edba..1c0bc389a 100644 --- a/src/passes/01-parser/cameligo/LexToken.mll +++ b/src/passes/01-parser/cameligo/LexToken.mll @@ -13,9 +13,22 @@ module SSet = Utils.String.Set (* TOKENS *) type t = + (* Identifiers, labels, numbers and strings *) + + Ident of string Region.reg +| Constr of string Region.reg +| Int of (string * Z.t) Region.reg +| Nat of (string * Z.t) Region.reg +| Mutez of (string * Z.t) Region.reg +| String of string Region.reg +| Verbatim of string Region.reg +| Bytes of (string * Hex.t) Region.reg +| Attr of string Region.reg +| Lang of lexeme Region.reg Region.reg + (* Symbols *) - ARROW of Region.t (* "->" *) +| ARROW of Region.t (* "->" *) | CONS of Region.t (* "::" *) | CAT of Region.t (* "^" *) (*| APPEND (* "@" *)*) @@ -26,7 +39,6 @@ type t = | PLUS of Region.t (* "+" *) | SLASH of Region.t (* "/" *) | TIMES of Region.t (* "*" *) -| PERCENT of Region.t (* "%" *) (* Compounds *) @@ -61,18 +73,6 @@ type t = | BOOL_OR of Region.t (* "||" *) | BOOL_AND of Region.t (* "&&" *) - (* Identifiers, labels, numbers and strings *) - -| Ident of string Region.reg -| Constr of string Region.reg -| Int of (string * Z.t) Region.reg -| Nat of (string * Z.t) Region.reg -| Mutez of (string * Z.t) Region.reg -| String of string Region.reg -| Verbatim of string Region.reg -| Bytes of (string * Hex.t) Region.reg -| Attr of string Region.reg - (* Keywords *) (*| And*) @@ -113,26 +113,28 @@ let proj_token = function (* Literals *) String Region.{region; value} -> - region, sprintf "String %s" value + region, sprintf "String %S" value | Verbatim Region.{region; value} -> - region, sprintf "Verbatim {|%s|}" value + region, sprintf "Verbatim %S" value | Bytes Region.{region; value = s,b} -> region, - sprintf "Bytes (\"%s\", \"0x%s\")" s (Hex.show b) + sprintf "Bytes (%S, \"0x%s\")" s (Hex.show b) | Int Region.{region; value = s,n} -> - region, sprintf "Int (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Int (%S, %s)" s (Z.to_string n) | Nat Region.{region; value = s,n} -> - region, sprintf "Nat (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Nat (%S, %s)" s (Z.to_string n) | Mutez Region.{region; value = s,n} -> - region, sprintf "Mutez (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Mutez (%S, %s)" s (Z.to_string n) | Ident Region.{region; value} -> - region, sprintf "Ident %s" value + region, sprintf "Ident %S" value | Constr Region.{region; value} -> - region, sprintf "Constr %s" value + region, sprintf "Constr %S" value | Attr Region.{region; value} -> - region, sprintf "Attr \"%s\"" value + region, sprintf "Attr %S" value +| Lang Region.{region; value} -> + region, sprintf "Lang %S" (value.Region.value) - (* Symbols *) +(* Symbols *) | ARROW region -> region, "ARROW" | CONS region -> region, "CONS" @@ -141,7 +143,6 @@ let proj_token = function | PLUS region -> region, "PLUS" | SLASH region -> region, "SLASH" | TIMES region -> region, "TIMES" -| PERCENT region -> region, "PERCENT" | LPAR region -> region, "LPAR" | RPAR region -> region, "RPAR" | LBRACKET region -> region, "LBRACKET" @@ -206,6 +207,7 @@ let to_lexeme = function | Ident id -> id.Region.value | Constr id -> id.Region.value | Attr a -> a.Region.value +| Lang lang -> Region.(lang.value.value) (* Symbols *) @@ -216,7 +218,6 @@ let to_lexeme = function | PLUS _ -> "+" | SLASH _ -> "/" | TIMES _ -> "*" -| PERCENT _ -> "%" | LPAR _ -> "(" | RPAR _ -> ")" | LBRACKET _ -> "[" @@ -478,7 +479,6 @@ let mk_sym lexeme region = | "-" -> Ok (MINUS region) | "*" -> Ok (TIMES region) | "/" -> Ok (SLASH region) - | "%" -> Ok (PERCENT region) | "<" -> Ok (LT region) | "<=" -> Ok (LE region) | ">" -> Ok (GT region) @@ -512,6 +512,10 @@ let mk_attr header lexeme region = if header = "[@" then Error Invalid_attribute else Ok (Attr Region.{value=lexeme; region}) +(* Language injection *) + +let mk_lang lang region = Lang Region.{value=lang; region} + (* Predicates *) let is_string = function String _ -> true | _ -> false @@ -573,7 +577,7 @@ let check_right_context token next_token buffer : unit = else () else if is_bytes token - then if is_string next || is_ident next + then if is_string next || is_ident next then fail region Missing_break else if is_int next then fail region Odd_lengthed_bytes diff --git a/src/passes/01-parser/cameligo/ParToken.mly b/src/passes/01-parser/cameligo/ParToken.mly index 898d6f571..093968ee4 100644 --- a/src/passes/01-parser/cameligo/ParToken.mly +++ b/src/passes/01-parser/cameligo/ParToken.mly @@ -5,15 +5,16 @@ (* Literals *) -%token String "" -%token Verbatim "" -%token <(LexToken.lexeme * Hex.t) Region.reg> Bytes "" -%token <(string * Z.t) Region.reg> Int "" -%token <(string * Z.t) Region.reg> Nat "" -%token <(string * Z.t) Region.reg> Mutez "" -%token Ident "" -%token Constr "" -%token Attr "" +%token String "" +%token Verbatim "" +%token <(LexToken.lexeme * Hex.t) Region.reg> Bytes "" +%token <(string * Z.t) Region.reg> Int "" +%token <(string * Z.t) Region.reg> Nat "" +%token <(string * Z.t) Region.reg> Mutez "" +%token Ident "" +%token Constr "" +%token Attr "" +%token Lang "" (* Symbols *) @@ -21,7 +22,6 @@ %token PLUS "+" %token SLASH "/" %token TIMES "*" -%token PERCENT "%" %token LPAR "(" %token RPAR ")" diff --git a/src/passes/01-parser/cameligo/Parser.mly b/src/passes/01-parser/cameligo/Parser.mly index 9dca6a5c4..de79c2854 100644 --- a/src/passes/01-parser/cameligo/Parser.mly +++ b/src/passes/01-parser/cameligo/Parser.mly @@ -583,7 +583,7 @@ core_expr: | sequence { ESeq $1 } | record_expr { ERecord $1 } | update_record { EUpdate $1 } -| code_insert { ECodeInsert $1 } +| code_inj { ECodeInj $1 } | par(expr) { EPar $1 } | par(annot_expr) { EAnnot $1 } @@ -708,13 +708,8 @@ last_expr: seq_expr: disj_expr_level | if_then_else (seq_expr) { $1 } -code_insert: - "[" "%" Constr expr "]" { - let region = cover $1 $5 in - let value = { - lbracket =$1; - percent =$2; - language =$3; - code =$4; - rbracket =$5} +code_inj: + "" expr "]" { + let region = cover $1.region $3 + and value = {language=$1; code=$2; rbracket=$3} in {region; value} } diff --git a/src/passes/01-parser/cameligo/ParserLog.ml b/src/passes/01-parser/cameligo/ParserLog.ml index ec5284852..3bb74bcb0 100644 --- a/src/passes/01-parser/cameligo/ParserLog.ml +++ b/src/passes/01-parser/cameligo/ParserLog.ml @@ -89,12 +89,6 @@ let print_pvar state {region; value} = (compact state region) value in Buffer.add_string state#buffer line -let print_uident state {region; value} = - let line = - sprintf "%s: Uident %s\n" - (compact state region) value - in Buffer.add_string state#buffer line - let print_string state {region; value} = let line = sprintf "%s: String %S\n" @@ -103,7 +97,7 @@ let print_string state {region; value} = let print_verbatim state {region; value} = let line = - sprintf "%s: Verbatim {|%s|}\n" + sprintf "%s: Verbatim %S\n" (compact state region) value in Buffer.add_string state#buffer line @@ -211,7 +205,7 @@ and print_cartesian state Region.{value;_} = print_nsepseq state "*" print_type_expr value and print_variant state {value = {constr; arg}; _} = - print_uident state constr; + print_constr state constr; match arg with None -> () | Some (kwd_of, t_expr) -> @@ -340,7 +334,7 @@ and print_some_app_pattern state {value; _} = and print_constr_app_pattern state node = let {value=constr, p_opt; _} = node in - print_uident state constr; + print_constr state constr; match p_opt with None -> () | Some pattern -> print_pattern state pattern @@ -366,7 +360,7 @@ and print_expr state = function | ESeq seq -> print_sequence state seq | ERecord e -> print_record_expr state e | EConstr e -> print_constr_expr state e -| ECodeInsert e -> print_code_insert state e +| ECodeInj e -> print_code_inj state e and print_constr_expr state = function ENone e -> print_none_expr state e @@ -519,13 +513,15 @@ and print_comp_expr state = function and print_record_expr state e = print_ne_injection state print_field_assign e -and print_code_insert state {value; _} = - let {lbracket;percent;language;code;rbracket} : code_insert = value in - print_token state lbracket "["; - print_token state percent "%"; - print_string state language; - print_expr state code; - print_token state rbracket "]" +and print_code_inj state {value; _} = + let {language; code; rbracket} = value in + let {value=lang; region} = language in + let header_stop = region#start#shift_bytes 1 in + let header_reg = Region.make ~start:region#start ~stop:header_stop in + print_token state header_reg "[%"; + print_string state lang; + print_expr state code; + print_token state rbracket "]" and print_field_assign state {value; _} = let {field_name; assignment; field_expr} = value in @@ -869,9 +865,9 @@ and pp_expr state = function | ESeq {value; region} -> pp_loc_node state "ESeq" region; pp_injection pp_expr state value -| ECodeInsert {value; region} -> - pp_loc_node state "ECodeInsert" region; - pp_code_insert state value +| ECodeInj {value; region} -> + pp_loc_node state "ECodeInj" region; + pp_code_inj state value and pp_fun_expr state node = let {binders; lhs_type; body; _} = node in @@ -893,16 +889,16 @@ and pp_fun_expr state node = pp_expr (state#pad 1 0) body in () -and pp_code_insert state (rc : code_insert) = +and pp_code_inj state rc = let () = - let state = state#pad 3 0 in + let state = state#pad 2 0 in pp_node state ""; - pp_string (state#pad 1 0) rc.language in + pp_string (state#pad 1 0) rc.language.value in let () = - let state = state#pad 3 1 in + let state = state#pad 2 1 in pp_node state ""; - pp_expr (state#pad 1 0) rc.code in - () + pp_expr (state#pad 1 0) rc.code + in () and pp_let_in state node = let {binding; body; attributes; kwd_rec; _} = node in diff --git a/src/passes/01-parser/cameligo/Pretty.ml b/src/passes/01-parser/cameligo/Pretty.ml index 650e03ef3..7ab17d516 100644 --- a/src/passes/01-parser/cameligo/Pretty.ml +++ b/src/passes/01-parser/cameligo/Pretty.ml @@ -52,22 +52,22 @@ and pp_let_binding (binding : let_binding) = in prefix 2 1 (lhs ^^ string " =") (pp_expr let_rhs) and pp_pattern = function - PConstr p -> pp_pconstr p -| PUnit _ -> string "()" -| PFalse _ -> string "false" -| PTrue _ -> string "true" -| PVar v -> pp_ident v -| PInt i -> pp_int i -| PNat n -> pp_nat n -| PBytes b -> pp_bytes b -| PString s -> pp_string s + PConstr p -> pp_pconstr p +| PUnit _ -> string "()" +| PFalse _ -> string "false" +| PTrue _ -> string "true" +| PVar v -> pp_ident v +| PInt i -> pp_int i +| PNat n -> pp_nat n +| PBytes b -> pp_bytes b +| PString s -> pp_string s | PVerbatim s -> pp_verbatim s -| PWild _ -> string "_" -| PList l -> pp_plist l -| PTuple t -> pp_ptuple t -| PPar p -> pp_ppar p -| PRecord r -> pp_precord r -| PTyped t -> pp_ptyped t +| PWild _ -> string "_" +| PList l -> pp_plist l +| PTuple t -> pp_ptuple t +| PPar p -> pp_ppar p +| PRecord r -> pp_precord r +| PTyped t -> pp_ptyped t and pp_pconstr = function PNone _ -> string "None" @@ -152,7 +152,7 @@ and pp_expr = function | ELetIn e -> pp_let_in e | EFun e -> pp_fun e | ESeq e -> pp_seq e -| ECodeInsert e -> pp_code_insert e +| ECodeInj e -> pp_code_inj e and pp_case_expr {value; _} = let {expr; cases; _} = value in @@ -314,11 +314,11 @@ and pp_update {value; _} = string "{" ^^ record ^^ string " with" ^^ nest 2 (break 1 ^^ updates ^^ string "}") -and pp_code_insert {value; _} = +and pp_code_inj {value; _} = let {language; code; _} = value in - let language = pp_string language - and code = pp_expr code in - string "[%" ^^ language ^^ string " " ^^ code ^^ string " ]" + let language = pp_string language.value + and code = pp_expr code in + string "[%" ^^ language ^/^ code ^^ string "]" and pp_field_path_assign {value; _} = let {field_path; field_expr; _} = value in diff --git a/src/passes/01-parser/cameligo/error.messages.checked-in b/src/passes/01-parser/cameligo/error.messages.checked-in index 8ac839bf3..24b134bc3 100644 --- a/src/passes/01-parser/cameligo/error.messages.checked-in +++ b/src/passes/01-parser/cameligo/error.messages.checked-in @@ -1,8 +1,8 @@ interactive_expr: Begin Fun WILD ARROW Bytes SEMI With ## -## Ends in an error in state: 488. +## Ends in an error in state: 487. ## -## sequence -> Begin option(series) . End [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## sequence -> Begin option(series) . End [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Begin option(series) @@ -12,7 +12,7 @@ interactive_expr: Begin Fun WILD ARROW Bytes SEMI With interactive_expr: Begin Fun WILD ARROW With ## -## Ends in an error in state: 470. +## Ends in an error in state: 469. ## ## fun_expr(seq_expr) -> Fun nseq(irrefutable) ARROW . seq_expr [ SEMI End ] ## @@ -24,7 +24,7 @@ interactive_expr: Begin Fun WILD ARROW With interactive_expr: Begin Fun With ## -## Ends in an error in state: 468. +## Ends in an error in state: 467. ## ## fun_expr(seq_expr) -> Fun . nseq(irrefutable) ARROW seq_expr [ SEMI End ] ## @@ -36,7 +36,7 @@ interactive_expr: Begin Fun With interactive_expr: Begin If Verbatim Then Fun WILD ARROW With ## -## Ends in an error in state: 457. +## Ends in an error in state: 456. ## ## fun_expr(closed_if) -> Fun nseq(irrefutable) ARROW . closed_if [ Else ] ## @@ -48,7 +48,7 @@ interactive_expr: Begin If Verbatim Then Fun WILD ARROW With interactive_expr: Begin If Verbatim Then Fun With ## -## Ends in an error in state: 455. +## Ends in an error in state: 454. ## ## fun_expr(closed_if) -> Fun . nseq(irrefutable) ARROW closed_if [ Else ] ## @@ -60,7 +60,7 @@ interactive_expr: Begin If Verbatim Then Fun With interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim COMMA Bytes With ## -## Ends in an error in state: 460. +## Ends in an error in state: 459. ## ## if_then_else(closed_if) -> If expr Then closed_if . Else closed_if [ Else ] ## @@ -71,28 +71,28 @@ interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim COMMA Bytes W ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level -## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) -## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 458, spurious reduction of production base_expr(closed_if) -> tuple_expr -## In state 358, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 357, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 346, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level +## In state 345, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) +## In state 222, spurious reduction of production tuple_expr -> tuple(disj_expr_level) +## In state 457, spurious reduction of production base_expr(closed_if) -> tuple_expr +## In state 357, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 356, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 461. +## Ends in an error in state: 460. ## ## if_then_else(closed_if) -> If expr Then closed_if Else . closed_if [ Else ] ## @@ -104,7 +104,7 @@ interactive_expr: Begin If Verbatim Then If Verbatim Then Verbatim Else With interactive_expr: Begin If Verbatim Then If Verbatim Then With ## -## Ends in an error in state: 454. +## Ends in an error in state: 453. ## ## if_then_else(closed_if) -> If expr Then . closed_if Else closed_if [ Else ] ## @@ -116,7 +116,7 @@ interactive_expr: Begin If Verbatim Then If Verbatim Then With interactive_expr: Begin If Verbatim Then If Verbatim With ## -## Ends in an error in state: 453. +## Ends in an error in state: 452. ## ## if_then_else(closed_if) -> If expr . Then closed_if Else closed_if [ Else ] ## @@ -127,25 +127,25 @@ interactive_expr: Begin If Verbatim Then If Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Begin If Verbatim Then If With ## -## Ends in an error in state: 452. +## Ends in an error in state: 451. ## ## if_then_else(closed_if) -> If . expr Then closed_if Else closed_if [ Else ] ## @@ -157,7 +157,7 @@ interactive_expr: Begin If Verbatim Then If With interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 450. +## Ends in an error in state: 449. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) . In closed_if [ Else ] ## @@ -168,15 +168,15 @@ interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 451. +## Ends in an error in state: 450. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) In . closed_if [ Else ] ## @@ -188,7 +188,7 @@ interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes In With interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 449. +## Ends in an error in state: 448. ## ## let_expr(closed_if) -> Let Rec let_binding . seq(Attr) In closed_if [ Else ] ## @@ -199,26 +199,26 @@ interactive_expr: Begin If Verbatim Then Let Rec WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Begin If Verbatim Then Let Rec With ## -## Ends in an error in state: 448. +## Ends in an error in state: 447. ## ## let_expr(closed_if) -> Let Rec . let_binding seq(Attr) In closed_if [ Else ] ## @@ -230,7 +230,7 @@ interactive_expr: Begin If Verbatim Then Let Rec With interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 463. +## Ends in an error in state: 462. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) . In closed_if [ Else ] ## @@ -241,15 +241,15 @@ interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes In With ## -## Ends in an error in state: 464. +## Ends in an error in state: 463. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) In . closed_if [ Else ] ## @@ -261,7 +261,7 @@ interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes In With interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes With ## -## Ends in an error in state: 462. +## Ends in an error in state: 461. ## ## let_expr(closed_if) -> Let let_binding . seq(Attr) In closed_if [ Else ] ## @@ -272,26 +272,26 @@ interactive_expr: Begin If Verbatim Then Let WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Begin If Verbatim Then Let With ## -## Ends in an error in state: 447. +## Ends in an error in state: 446. ## ## let_expr(closed_if) -> Let . let_binding seq(Attr) In closed_if [ Else ] ## let_expr(closed_if) -> Let . Rec let_binding seq(Attr) In closed_if [ Else ] @@ -304,7 +304,7 @@ interactive_expr: Begin If Verbatim Then Let With interactive_expr: Begin If Verbatim Then Match Verbatim Type ## -## Ends in an error in state: 269. +## Ends in an error in state: 268. ## ## match_expr(base_if_then_else) -> Match expr . With option(VBAR) cases(base_if_then_else) [ Else ] ## @@ -315,25 +315,25 @@ interactive_expr: Begin If Verbatim Then Match Verbatim Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Begin If Verbatim Then Match Verbatim With VBAR Begin ## -## Ends in an error in state: 271. +## Ends in an error in state: 270. ## ## match_expr(base_if_then_else) -> Match expr With option(VBAR) . cases(base_if_then_else) [ Else ] ## @@ -345,7 +345,7 @@ interactive_expr: Begin If Verbatim Then Match Verbatim With VBAR Begin interactive_expr: Begin If Verbatim Then Match Verbatim With WILD ARROW Bytes With ## -## Ends in an error in state: 409. +## Ends in an error in state: 408. ## ## cases(base_cond) -> cases(base_cond) . VBAR case_clause(base_cond) [ VBAR ] ## cases(base_if_then_else) -> cases(base_cond) . VBAR case_clause(base_if_then_else) [ Else ] @@ -357,27 +357,27 @@ interactive_expr: Begin If Verbatim Then Match Verbatim With WILD ARROW Bytes Wi ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 395, spurious reduction of production base_expr(base_cond) -> disj_expr_level -## In state 359, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) -## In state 360, spurious reduction of production base_cond -> base_cond__open(base_cond) -## In state 406, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond -## In state 414, spurious reduction of production cases(base_cond) -> case_clause(base_cond) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 394, spurious reduction of production base_expr(base_cond) -> disj_expr_level +## In state 358, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 359, spurious reduction of production base_cond -> base_cond__open(base_cond) +## In state 405, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond +## In state 413, spurious reduction of production cases(base_cond) -> case_clause(base_cond) ## interactive_expr: Begin If Verbatim Then Match Verbatim With With ## -## Ends in an error in state: 270. +## Ends in an error in state: 269. ## ## match_expr(base_if_then_else) -> Match expr With . option(VBAR) cases(base_if_then_else) [ Else ] ## @@ -389,7 +389,7 @@ interactive_expr: Begin If Verbatim Then Match Verbatim With With interactive_expr: Begin If Verbatim Then Match With ## -## Ends in an error in state: 268. +## Ends in an error in state: 267. ## ## match_expr(base_if_then_else) -> Match . expr With option(VBAR) cases(base_if_then_else) [ Else ] ## @@ -401,7 +401,7 @@ interactive_expr: Begin If Verbatim Then Match With interactive_expr: Begin If Verbatim Then Verbatim COMMA Bytes With ## -## Ends in an error in state: 465. +## Ends in an error in state: 464. ## ## if_then_else(seq_expr) -> If expr Then closed_if . Else seq_expr [ SEMI End ] ## @@ -412,28 +412,28 @@ interactive_expr: Begin If Verbatim Then Verbatim COMMA Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level -## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) -## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 458, spurious reduction of production base_expr(closed_if) -> tuple_expr -## In state 358, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) -## In state 357, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 346, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level +## In state 345, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) +## In state 222, spurious reduction of production tuple_expr -> tuple(disj_expr_level) +## In state 457, spurious reduction of production base_expr(closed_if) -> tuple_expr +## In state 357, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr(closed_if) +## In state 356, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## interactive_expr: Begin If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 466. +## Ends in an error in state: 465. ## ## if_then_else(seq_expr) -> If expr Then closed_if Else . seq_expr [ SEMI End ] ## @@ -445,7 +445,7 @@ interactive_expr: Begin If Verbatim Then Verbatim Else With interactive_expr: Begin If Verbatim Then Verbatim With ## -## Ends in an error in state: 459. +## Ends in an error in state: 458. ## ## base_expr(closed_if) -> disj_expr_level . [ Else ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ Or Else COMMA BOOL_OR ] @@ -459,22 +459,22 @@ interactive_expr: Begin If Verbatim Then Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Begin If Verbatim Then With ## -## Ends in an error in state: 446. +## Ends in an error in state: 445. ## ## if_then_else(seq_expr) -> If expr Then . closed_if Else seq_expr [ SEMI End ] ## @@ -486,7 +486,7 @@ interactive_expr: Begin If Verbatim Then With interactive_expr: Begin If Verbatim With ## -## Ends in an error in state: 445. +## Ends in an error in state: 444. ## ## if_then_else(seq_expr) -> If expr . Then closed_if Else seq_expr [ SEMI End ] ## @@ -497,25 +497,25 @@ interactive_expr: Begin If Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Begin If With ## -## Ends in an error in state: 444. +## Ends in an error in state: 443. ## ## if_then_else(seq_expr) -> If . expr Then closed_if Else seq_expr [ SEMI End ] ## @@ -527,7 +527,7 @@ interactive_expr: Begin If With interactive_expr: Begin Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 442. +## Ends in an error in state: 441. ## ## last_expr -> Let Rec let_binding seq(Attr) . In series [ End ] ## @@ -538,15 +538,15 @@ interactive_expr: Begin Let Rec WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Begin Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 443. +## Ends in an error in state: 442. ## ## last_expr -> Let Rec let_binding seq(Attr) In . series [ End ] ## @@ -558,7 +558,7 @@ interactive_expr: Begin Let Rec WILD EQ Bytes In With interactive_expr: Begin Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 441. +## Ends in an error in state: 440. ## ## last_expr -> Let Rec let_binding . seq(Attr) In series [ End ] ## @@ -569,26 +569,26 @@ interactive_expr: Begin Let Rec WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Begin Let Rec With ## -## Ends in an error in state: 440. +## Ends in an error in state: 439. ## ## last_expr -> Let Rec . let_binding seq(Attr) In series [ End ] ## @@ -600,7 +600,7 @@ interactive_expr: Begin Let Rec With interactive_expr: Begin Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 484. +## Ends in an error in state: 483. ## ## last_expr -> Let let_binding seq(Attr) . In series [ End ] ## @@ -611,15 +611,15 @@ interactive_expr: Begin Let WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Begin Let WILD EQ Bytes In With ## -## Ends in an error in state: 485. +## Ends in an error in state: 484. ## ## last_expr -> Let let_binding seq(Attr) In . series [ End ] ## @@ -631,7 +631,7 @@ interactive_expr: Begin Let WILD EQ Bytes In With interactive_expr: Begin Let WILD EQ Bytes With ## -## Ends in an error in state: 483. +## Ends in an error in state: 482. ## ## last_expr -> Let let_binding . seq(Attr) In series [ End ] ## @@ -642,26 +642,26 @@ interactive_expr: Begin Let WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Begin Let With ## -## Ends in an error in state: 439. +## Ends in an error in state: 438. ## ## last_expr -> Let . let_binding seq(Attr) In series [ End ] ## last_expr -> Let . Rec let_binding seq(Attr) In series [ End ] @@ -674,7 +674,7 @@ interactive_expr: Begin Let With interactive_expr: Begin Match Verbatim Type ## -## Ends in an error in state: 245. +## Ends in an error in state: 244. ## ## match_expr(seq_expr) -> Match expr . With option(VBAR) cases(seq_expr) [ SEMI End ] ## @@ -685,25 +685,25 @@ interactive_expr: Begin Match Verbatim Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Begin Match Verbatim With VBAR Begin ## -## Ends in an error in state: 248. +## Ends in an error in state: 247. ## ## match_expr(seq_expr) -> Match expr With option(VBAR) . cases(seq_expr) [ SEMI End ] ## @@ -715,7 +715,7 @@ interactive_expr: Begin Match Verbatim With VBAR Begin interactive_expr: Begin Match Verbatim With WILD ARROW Bytes VBAR With ## -## Ends in an error in state: 436. +## Ends in an error in state: 435. ## ## cases(base_cond) -> cases(base_cond) VBAR . case_clause(base_cond) [ VBAR ] ## cases(seq_expr) -> cases(base_cond) VBAR . case_clause(seq_expr) [ SEMI End ] @@ -728,7 +728,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW Bytes VBAR With interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 429. +## Ends in an error in state: 428. ## ## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ VBAR ] ## if_then_else(seq_expr) -> If expr Then closed_if Else . seq_expr [ SEMI End ] @@ -741,7 +741,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then Verbatim interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then With ## -## Ends in an error in state: 427. +## Ends in an error in state: 426. ## ## if_then(base_cond) -> If expr Then . base_cond [ VBAR ] ## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ VBAR ] @@ -755,7 +755,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim Then With interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim With ## -## Ends in an error in state: 426. +## Ends in an error in state: 425. ## ## if_then(base_cond) -> If expr . Then base_cond [ VBAR ] ## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ VBAR ] @@ -768,25 +768,25 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Begin Match Verbatim With WILD ARROW If With ## -## Ends in an error in state: 425. +## Ends in an error in state: 424. ## ## if_then(base_cond) -> If . expr Then base_cond [ VBAR ] ## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ VBAR ] @@ -800,7 +800,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW If With interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim COMMA Bytes With ## -## Ends in an error in state: 435. +## Ends in an error in state: 434. ## ## cases(base_cond) -> cases(base_cond) . VBAR case_clause(base_cond) [ VBAR ] ## cases(seq_expr) -> cases(base_cond) . VBAR case_clause(seq_expr) [ SEMI End ] @@ -812,30 +812,30 @@ interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim COMMA Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level -## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) -## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 420, spurious reduction of production base_expr(base_cond) -> tuple_expr -## In state 359, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) -## In state 360, spurious reduction of production base_cond -> base_cond__open(base_cond) -## In state 406, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond -## In state 414, spurious reduction of production cases(base_cond) -> case_clause(base_cond) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 346, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level +## In state 345, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) +## In state 222, spurious reduction of production tuple_expr -> tuple(disj_expr_level) +## In state 419, spurious reduction of production base_expr(base_cond) -> tuple_expr +## In state 358, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 359, spurious reduction of production base_cond -> base_cond__open(base_cond) +## In state 405, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond +## In state 413, spurious reduction of production cases(base_cond) -> case_clause(base_cond) ## interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim With ## -## Ends in an error in state: 432. +## Ends in an error in state: 431. ## ## base_expr(base_cond) -> disj_expr_level . [ VBAR ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR SEMI Or End COMMA BOOL_OR ] @@ -850,22 +850,22 @@ interactive_expr: Begin Match Verbatim With WILD ARROW Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Begin Match Verbatim With WILD ARROW With ## -## Ends in an error in state: 259. +## Ends in an error in state: 258. ## ## case_clause(base_cond) -> pattern ARROW . base_cond [ VBAR ] ## case_clause(seq_expr) -> pattern ARROW . seq_expr [ SEMI End ] @@ -878,7 +878,7 @@ interactive_expr: Begin Match Verbatim With WILD ARROW With interactive_expr: Begin Match Verbatim With WILD CONS Bytes SEMI ## -## Ends in an error in state: 258. +## Ends in an error in state: 257. ## ## case_clause(base_cond) -> pattern . ARROW base_cond [ VBAR ] ## case_clause(seq_expr) -> pattern . ARROW seq_expr [ SEMI End ] @@ -891,14 +891,14 @@ interactive_expr: Begin Match Verbatim With WILD CONS Bytes SEMI ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). ## In state 97, spurious reduction of production tail -> sub_pattern -## In state 252, spurious reduction of production pattern -> sub_pattern CONS tail +## In state 251, spurious reduction of production pattern -> sub_pattern CONS tail ## interactive_expr: Begin Match Verbatim With With ## -## Ends in an error in state: 246. +## Ends in an error in state: 245. ## ## match_expr(seq_expr) -> Match expr With . option(VBAR) cases(seq_expr) [ SEMI End ] ## @@ -910,7 +910,7 @@ interactive_expr: Begin Match Verbatim With With interactive_expr: Begin Match With ## -## Ends in an error in state: 207. +## Ends in an error in state: 206. ## ## match_expr(seq_expr) -> Match . expr With option(VBAR) cases(seq_expr) [ SEMI End ] ## @@ -922,7 +922,7 @@ interactive_expr: Begin Match With interactive_expr: Begin Verbatim SEMI With ## -## Ends in an error in state: 474. +## Ends in an error in state: 473. ## ## option(SEMI) -> SEMI . [ End ] ## series -> seq_expr SEMI . series [ End ] @@ -935,7 +935,7 @@ interactive_expr: Begin Verbatim SEMI With interactive_expr: Begin Verbatim With ## -## Ends in an error in state: 467. +## Ends in an error in state: 466. ## ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ SEMI Or End BOOL_OR ] ## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ SEMI Or End BOOL_OR ] @@ -948,24 +948,24 @@ interactive_expr: Begin Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Begin With ## -## Ends in an error in state: 206. +## Ends in an error in state: 205. ## -## sequence -> Begin . option(series) End [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## sequence -> Begin . option(series) End [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Begin @@ -975,7 +975,7 @@ interactive_expr: Begin With interactive_expr: C_None WILD ## -## Ends in an error in state: 224. +## Ends in an error in state: 223. ## ## add_expr_level -> mult_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] @@ -990,7 +990,7 @@ interactive_expr: C_None WILD interactive_expr: C_Some With ## -## Ends in an error in state: 208. +## Ends in an error in state: 207. ## ## constr_expr -> C_Some . core_expr [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -1002,9 +1002,9 @@ interactive_expr: C_Some With interactive_expr: Constr DOT Ident DOT With ## -## Ends in an error in state: 201. +## Ends in an error in state: 200. ## -## projection -> Constr DOT Ident DOT . nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr DOT Ident DOT . nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Constr DOT Ident DOT @@ -1014,10 +1014,10 @@ interactive_expr: Constr DOT Ident DOT With interactive_expr: Constr DOT Ident WILD ## -## Ends in an error in state: 200. +## Ends in an error in state: 199. ## -## module_fun -> Ident . [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## module_fun -> Ident . [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Constr DOT Ident @@ -1027,10 +1027,10 @@ interactive_expr: Constr DOT Ident WILD interactive_expr: Constr DOT With ## -## Ends in an error in state: 198. +## Ends in an error in state: 197. ## -## module_field -> Constr DOT . module_fun [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## module_field -> Constr DOT . module_fun [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Constr DOT @@ -1040,12 +1040,12 @@ interactive_expr: Constr DOT With interactive_expr: Constr WILD ## -## Ends in an error in state: 197. +## Ends in an error in state: 196. ## ## constr_expr -> Constr . core_expr [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## constr_expr -> Constr . [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] -## module_field -> Constr . DOT module_fun [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## module_field -> Constr . DOT module_fun [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Constr @@ -1055,7 +1055,7 @@ interactive_expr: Constr WILD interactive_expr: Fun WILD ARROW With ## -## Ends in an error in state: 195. +## Ends in an error in state: 194. ## ## fun_expr(expr) -> Fun nseq(irrefutable) ARROW . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -1067,7 +1067,7 @@ interactive_expr: Fun WILD ARROW With interactive_expr: Fun WILD RPAR ## -## Ends in an error in state: 362. +## Ends in an error in state: 361. ## ## nseq(irrefutable) -> irrefutable . seq(irrefutable) [ ARROW ] ## @@ -1085,7 +1085,7 @@ interactive_expr: Fun WILD RPAR interactive_expr: Fun WILD WILD RPAR ## -## Ends in an error in state: 364. +## Ends in an error in state: 363. ## ## seq(irrefutable) -> irrefutable . seq(irrefutable) [ ARROW ] ## @@ -1103,7 +1103,7 @@ interactive_expr: Fun WILD WILD RPAR interactive_expr: Fun With ## -## Ends in an error in state: 193. +## Ends in an error in state: 192. ## ## fun_expr(expr) -> Fun . nseq(irrefutable) ARROW expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -1115,9 +1115,9 @@ interactive_expr: Fun With interactive_expr: Ident DOT Int DOT With ## -## Ends in an error in state: 190. +## Ends in an error in state: 189. ## -## nsepseq(selection,DOT) -> selection DOT . nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## nsepseq(selection,DOT) -> selection DOT . nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## selection DOT @@ -1127,10 +1127,10 @@ interactive_expr: Ident DOT Int DOT With interactive_expr: Ident DOT Int WILD ## -## Ends in an error in state: 189. +## Ends in an error in state: 188. ## -## nsepseq(selection,DOT) -> selection . [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## nsepseq(selection,DOT) -> selection . DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## nsepseq(selection,DOT) -> selection . [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## nsepseq(selection,DOT) -> selection . DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## selection @@ -1140,9 +1140,9 @@ interactive_expr: Ident DOT Int WILD interactive_expr: Ident DOT With ## -## Ends in an error in state: 186. +## Ends in an error in state: 185. ## -## projection -> Ident DOT . nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Ident DOT . nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Ident DOT @@ -1152,10 +1152,10 @@ interactive_expr: Ident DOT With interactive_expr: Ident WILD ## -## Ends in an error in state: 185. +## Ends in an error in state: 184. ## -## core_expr -> Ident . [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## projection -> Ident . DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## core_expr -> Ident . [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Ident . DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Ident @@ -1165,7 +1165,7 @@ interactive_expr: Ident WILD interactive_expr: If Verbatim Then Fun WILD ARROW With ## -## Ends in an error in state: 509. +## Ends in an error in state: 508. ## ## fun_expr(closed_if) -> Fun nseq(irrefutable) ARROW . closed_if [ Else ] ## fun_expr(expr) -> Fun nseq(irrefutable) ARROW . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1178,7 +1178,7 @@ interactive_expr: If Verbatim Then Fun WILD ARROW With interactive_expr: If Verbatim Then Fun With ## -## Ends in an error in state: 507. +## Ends in an error in state: 506. ## ## fun_expr(closed_if) -> Fun . nseq(irrefutable) ARROW closed_if [ Else ] ## fun_expr(expr) -> Fun . nseq(irrefutable) ARROW expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1191,7 +1191,7 @@ interactive_expr: If Verbatim Then Fun With interactive_expr: If Verbatim Then If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 514. +## Ends in an error in state: 513. ## ## if_then_else(closed_if) -> If expr Then closed_if Else . closed_if [ Else ] ## if_then_else(expr) -> If expr Then closed_if Else . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1204,7 +1204,7 @@ interactive_expr: If Verbatim Then If Verbatim Then Verbatim Else With interactive_expr: If Verbatim Then If Verbatim Then With ## -## Ends in an error in state: 506. +## Ends in an error in state: 505. ## ## if_then(expr) -> If expr Then . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(closed_if) -> If expr Then . closed_if Else closed_if [ Else ] @@ -1218,7 +1218,7 @@ interactive_expr: If Verbatim Then If Verbatim Then With interactive_expr: If Verbatim Then If Verbatim With ## -## Ends in an error in state: 505. +## Ends in an error in state: 504. ## ## if_then(expr) -> If expr . Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(closed_if) -> If expr . Then closed_if Else closed_if [ Else ] @@ -1231,25 +1231,25 @@ interactive_expr: If Verbatim Then If Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: If Verbatim Then If With ## -## Ends in an error in state: 504. +## Ends in an error in state: 503. ## ## if_then(expr) -> If . expr Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(closed_if) -> If . expr Then closed_if Else closed_if [ Else ] @@ -1263,7 +1263,7 @@ interactive_expr: If Verbatim Then If With interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 502. +## Ends in an error in state: 501. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) . In closed_if [ Else ] ## let_expr(expr) -> Let Rec let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1275,15 +1275,15 @@ interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 503. +## Ends in an error in state: 502. ## ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) In . closed_if [ Else ] ## let_expr(expr) -> Let Rec let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1296,7 +1296,7 @@ interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes In With interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 501. +## Ends in an error in state: 500. ## ## let_expr(closed_if) -> Let Rec let_binding . seq(Attr) In closed_if [ Else ] ## let_expr(expr) -> Let Rec let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1308,26 +1308,26 @@ interactive_expr: If Verbatim Then Let Rec WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: If Verbatim Then Let Rec With ## -## Ends in an error in state: 500. +## Ends in an error in state: 499. ## ## let_expr(closed_if) -> Let Rec . let_binding seq(Attr) In closed_if [ Else ] ## let_expr(expr) -> Let Rec . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1340,7 +1340,7 @@ interactive_expr: If Verbatim Then Let Rec With interactive_expr: If Verbatim Then Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 518. +## Ends in an error in state: 517. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) . In closed_if [ Else ] ## let_expr(expr) -> Let let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1352,15 +1352,15 @@ interactive_expr: If Verbatim Then Let WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: If Verbatim Then Let WILD EQ Bytes In With ## -## Ends in an error in state: 519. +## Ends in an error in state: 518. ## ## let_expr(closed_if) -> Let let_binding seq(Attr) In . closed_if [ Else ] ## let_expr(expr) -> Let let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1373,7 +1373,7 @@ interactive_expr: If Verbatim Then Let WILD EQ Bytes In With interactive_expr: If Verbatim Then Let WILD EQ Bytes With ## -## Ends in an error in state: 517. +## Ends in an error in state: 516. ## ## let_expr(closed_if) -> Let let_binding . seq(Attr) In closed_if [ Else ] ## let_expr(expr) -> Let let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1385,26 +1385,26 @@ interactive_expr: If Verbatim Then Let WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: If Verbatim Then Let With ## -## Ends in an error in state: 499. +## Ends in an error in state: 498. ## ## let_expr(closed_if) -> Let . let_binding seq(Attr) In closed_if [ Else ] ## let_expr(closed_if) -> Let . Rec let_binding seq(Attr) In closed_if [ Else ] @@ -1419,7 +1419,7 @@ interactive_expr: If Verbatim Then Let With interactive_expr: If Verbatim Then Match Verbatim Type ## -## Ends in an error in state: 495. +## Ends in an error in state: 494. ## ## match_expr(base_cond) -> Match expr . With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match expr . With option(VBAR) cases(base_if_then_else) [ Else ] @@ -1431,25 +1431,25 @@ interactive_expr: If Verbatim Then Match Verbatim Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: If Verbatim Then Match Verbatim With VBAR Begin ## -## Ends in an error in state: 497. +## Ends in an error in state: 496. ## ## match_expr(base_cond) -> Match expr With option(VBAR) . cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match expr With option(VBAR) . cases(base_if_then_else) [ Else ] @@ -1462,7 +1462,7 @@ interactive_expr: If Verbatim Then Match Verbatim With VBAR Begin interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Bytes VBAR With ## -## Ends in an error in state: 410. +## Ends in an error in state: 409. ## ## cases(base_cond) -> cases(base_cond) VBAR . case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## cases(base_if_then_else) -> cases(base_cond) VBAR . case_clause(base_if_then_else) [ Else ] @@ -1475,7 +1475,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Bytes VBAR Wit interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Fun WILD ARROW With ## -## Ends in an error in state: 390. +## Ends in an error in state: 389. ## ## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## fun_expr(base_if_then_else) -> Fun nseq(irrefutable) ARROW . base_if_then_else [ Else ] @@ -1488,7 +1488,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Fun WILD ARROW interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Fun With ## -## Ends in an error in state: 388. +## Ends in an error in state: 387. ## ## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## fun_expr(base_if_then_else) -> Fun . nseq(irrefutable) ARROW base_if_then_else [ Else ] @@ -1501,7 +1501,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Fun With interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 387. +## Ends in an error in state: 386. ## ## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_if_then_else) -> If expr Then closed_if Else . base_if_then_else [ Else ] @@ -1514,7 +1514,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If Verbatim Th interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If Verbatim Then With ## -## Ends in an error in state: 281. +## Ends in an error in state: 280. ## ## if_then(base_cond) -> If expr Then . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1528,7 +1528,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If Verbatim Th interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If Verbatim With ## -## Ends in an error in state: 280. +## Ends in an error in state: 279. ## ## if_then(base_cond) -> If expr . Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1541,25 +1541,25 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If Verbatim Wi ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If With ## -## Ends in an error in state: 279. +## Ends in an error in state: 278. ## ## if_then(base_cond) -> If . expr Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1573,7 +1573,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW If With interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 277. +## Ends in an error in state: 276. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_if_then_else) -> Let Rec let_binding seq(Attr) . In base_if_then_else [ Else ] @@ -1585,15 +1585,15 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec WILD E ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 278. +## Ends in an error in state: 277. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_if_then_else) -> Let Rec let_binding seq(Attr) In . base_if_then_else [ Else ] @@ -1606,7 +1606,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec WILD E interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 276. +## Ends in an error in state: 275. ## ## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_if_then_else) -> Let Rec let_binding . seq(Attr) In base_if_then_else [ Else ] @@ -1618,26 +1618,26 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec WILD E ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec With ## -## Ends in an error in state: 275. +## Ends in an error in state: 274. ## ## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_if_then_else) -> Let Rec . let_binding seq(Attr) In base_if_then_else [ Else ] @@ -1650,7 +1650,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let Rec With interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 402. +## Ends in an error in state: 401. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_if_then_else) -> Let let_binding seq(Attr) . In base_if_then_else [ Else ] @@ -1662,15 +1662,15 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let WILD EQ By ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let WILD EQ Bytes In With ## -## Ends in an error in state: 403. +## Ends in an error in state: 402. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_if_then_else) -> Let let_binding seq(Attr) In . base_if_then_else [ Else ] @@ -1683,7 +1683,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let WILD EQ By interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let WILD EQ Bytes With ## -## Ends in an error in state: 401. +## Ends in an error in state: 400. ## ## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_if_then_else) -> Let let_binding . seq(Attr) In base_if_then_else [ Else ] @@ -1695,26 +1695,26 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let WILD EQ By ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let With ## -## Ends in an error in state: 274. +## Ends in an error in state: 273. ## ## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1729,7 +1729,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Let With interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Verbatim End ## -## Ends in an error in state: 395. +## Ends in an error in state: 394. ## ## base_expr(base_cond) -> disj_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## base_expr(base_if_then_else) -> disj_expr_level . [ Else ] @@ -1744,22 +1744,22 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW Verbatim End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW With ## -## Ends in an error in state: 273. +## Ends in an error in state: 272. ## ## case_clause(base_cond) -> pattern ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## case_clause(base_if_then_else) -> pattern ARROW . base_if_then_else [ Else ] @@ -1772,7 +1772,7 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD ARROW With interactive_expr: If Verbatim Then Match Verbatim With WILD CONS Bytes SEMI ## -## Ends in an error in state: 272. +## Ends in an error in state: 271. ## ## case_clause(base_cond) -> pattern . ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## case_clause(base_if_then_else) -> pattern . ARROW base_if_then_else [ Else ] @@ -1785,14 +1785,14 @@ interactive_expr: If Verbatim Then Match Verbatim With WILD CONS Bytes SEMI ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). ## In state 97, spurious reduction of production tail -> sub_pattern -## In state 252, spurious reduction of production pattern -> sub_pattern CONS tail +## In state 251, spurious reduction of production pattern -> sub_pattern CONS tail ## interactive_expr: If Verbatim Then Match Verbatim With With ## -## Ends in an error in state: 496. +## Ends in an error in state: 495. ## ## match_expr(base_cond) -> Match expr With . option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match expr With . option(VBAR) cases(base_if_then_else) [ Else ] @@ -1805,7 +1805,7 @@ interactive_expr: If Verbatim Then Match Verbatim With With interactive_expr: If Verbatim Then Match With ## -## Ends in an error in state: 494. +## Ends in an error in state: 493. ## ## match_expr(base_cond) -> Match . expr With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_if_then_else) -> Match . expr With option(VBAR) cases(base_if_then_else) [ Else ] @@ -1818,7 +1818,7 @@ interactive_expr: If Verbatim Then Match With interactive_expr: If Verbatim Then Verbatim COMMA Bytes VBAR ## -## Ends in an error in state: 510. +## Ends in an error in state: 509. ## ## base_expr(closed_if) -> tuple_expr . [ Else ] ## base_expr(expr) -> tuple_expr . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1830,25 +1830,25 @@ interactive_expr: If Verbatim Then Verbatim COMMA Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level -## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) -## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 346, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level +## In state 345, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) +## In state 222, spurious reduction of production tuple_expr -> tuple(disj_expr_level) ## interactive_expr: If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 522. +## Ends in an error in state: 521. ## ## if_then_else(expr) -> If expr Then closed_if Else . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -1860,7 +1860,7 @@ interactive_expr: If Verbatim Then Verbatim Else With interactive_expr: If Verbatim Then Verbatim VBAR ## -## Ends in an error in state: 511. +## Ends in an error in state: 510. ## ## base_expr(closed_if) -> disj_expr_level . [ Else ] ## base_expr(expr) -> disj_expr_level . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1875,22 +1875,22 @@ interactive_expr: If Verbatim Then Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: If Verbatim Then With ## -## Ends in an error in state: 493. +## Ends in an error in state: 492. ## ## if_then(expr) -> If expr Then . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(expr) -> If expr Then . closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1903,7 +1903,7 @@ interactive_expr: If Verbatim Then With interactive_expr: If Verbatim With ## -## Ends in an error in state: 492. +## Ends in an error in state: 491. ## ## if_then(expr) -> If expr . Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(expr) -> If expr . Then closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1915,25 +1915,25 @@ interactive_expr: If Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: If With ## -## Ends in an error in state: 184. +## Ends in an error in state: 183. ## ## if_then(expr) -> If . expr Then expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(expr) -> If . expr Then closed_if Else expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -1946,7 +1946,7 @@ interactive_expr: If With interactive_expr: LBRACE Constr DOT Ident With ## -## Ends in an error in state: 526. +## Ends in an error in state: 525. ## ## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With EQ ] ## @@ -1958,7 +1958,7 @@ interactive_expr: LBRACE Constr DOT Ident With interactive_expr: LBRACE Constr DOT With ## -## Ends in an error in state: 525. +## Ends in an error in state: 524. ## ## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With EQ ] ## @@ -1970,7 +1970,7 @@ interactive_expr: LBRACE Constr DOT With interactive_expr: LBRACE Constr With ## -## Ends in an error in state: 524. +## Ends in an error in state: 523. ## ## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With EQ ] ## @@ -1982,9 +1982,9 @@ interactive_expr: LBRACE Constr With interactive_expr: LBRACE Ident DOT Ident Verbatim ## -## Ends in an error in state: 530. +## Ends in an error in state: 529. ## -## update_record -> LBRACE path . With sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## update_record -> LBRACE path . With sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## LBRACE path @@ -1993,16 +1993,16 @@ interactive_expr: LBRACE Ident DOT Ident Verbatim ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 189, spurious reduction of production nsepseq(selection,DOT) -> selection -## In state 192, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) -## In state 529, spurious reduction of production path -> projection +## In state 188, spurious reduction of production nsepseq(selection,DOT) -> selection +## In state 191, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) +## In state 528, spurious reduction of production path -> projection ## interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes SEMI With ## -## Ends in an error in state: 555. +## Ends in an error in state: 554. ## ## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACE ] ## seq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] @@ -2015,7 +2015,7 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes With ## -## Ends in an error in state: 554. +## Ends in an error in state: 553. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACE ] @@ -2028,26 +2028,26 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI Ident EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 523, spurious reduction of production field_assignment -> Ident EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 522, spurious reduction of production field_assignment -> Ident EQ expr ## interactive_expr: LBRACE Ident EQ Bytes SEMI Ident With ## -## Ends in an error in state: 551. +## Ends in an error in state: 550. ## ## field_assignment -> Ident . EQ expr [ SEMI RBRACE ] ## @@ -2059,7 +2059,7 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI Ident With interactive_expr: LBRACE Ident EQ Bytes SEMI With ## -## Ends in an error in state: 550. +## Ends in an error in state: 549. ## ## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACE ] ## nseq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACE ] @@ -2072,7 +2072,7 @@ interactive_expr: LBRACE Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident EQ Bytes With ## -## Ends in an error in state: 549. +## Ends in an error in state: 548. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACE ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACE ] @@ -2085,26 +2085,26 @@ interactive_expr: LBRACE Ident EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 523, spurious reduction of production field_assignment -> Ident EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 522, spurious reduction of production field_assignment -> Ident EQ expr ## interactive_expr: LBRACE Ident EQ With ## -## Ends in an error in state: 182. +## Ends in an error in state: 181. ## ## field_assignment -> Ident EQ . expr [ SEMI RBRACE ] ## @@ -2116,7 +2116,7 @@ interactive_expr: LBRACE Ident EQ With interactive_expr: LBRACE Ident WILD ## -## Ends in an error in state: 181. +## Ends in an error in state: 180. ## ## field_assignment -> Ident . EQ expr [ SEMI RBRACE ] ## path -> Ident . [ With ] @@ -2130,7 +2130,7 @@ interactive_expr: LBRACE Ident WILD interactive_expr: LBRACE Ident With Ident DOT Ident With ## -## Ends in an error in state: 535. +## Ends in an error in state: 534. ## ## field_path_assignment -> path . EQ expr [ SEMI RBRACE ] ## @@ -2141,16 +2141,16 @@ interactive_expr: LBRACE Ident With Ident DOT Ident With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 189, spurious reduction of production nsepseq(selection,DOT) -> selection -## In state 192, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) -## In state 529, spurious reduction of production path -> projection +## In state 188, spurious reduction of production nsepseq(selection,DOT) -> selection +## In state 191, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) +## In state 528, spurious reduction of production path -> projection ## interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes SEMI With ## -## Ends in an error in state: 545. +## Ends in an error in state: 544. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACE ] ## seq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] @@ -2163,7 +2163,7 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes With ## -## Ends in an error in state: 544. +## Ends in an error in state: 543. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACE ] @@ -2176,26 +2176,26 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI Ident EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 537, spurious reduction of production field_path_assignment -> path EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 536, spurious reduction of production field_path_assignment -> path EQ expr ## interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI With ## -## Ends in an error in state: 541. +## Ends in an error in state: 540. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACE ] ## nseq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACE ] @@ -2208,7 +2208,7 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes SEMI With interactive_expr: LBRACE Ident With Ident EQ Bytes With ## -## Ends in an error in state: 540. +## Ends in an error in state: 539. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACE ] @@ -2221,26 +2221,26 @@ interactive_expr: LBRACE Ident With Ident EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 537, spurious reduction of production field_path_assignment -> path EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 536, spurious reduction of production field_path_assignment -> path EQ expr ## interactive_expr: LBRACE Ident With Ident EQ With ## -## Ends in an error in state: 536. +## Ends in an error in state: 535. ## ## field_path_assignment -> path EQ . expr [ SEMI RBRACE ] ## @@ -2252,7 +2252,7 @@ interactive_expr: LBRACE Ident With Ident EQ With interactive_expr: LBRACE Ident With Ident With ## -## Ends in an error in state: 532. +## Ends in an error in state: 531. ## ## path -> Ident . [ EQ ] ## projection -> Ident . DOT nsepseq(selection,DOT) [ EQ ] @@ -2265,9 +2265,9 @@ interactive_expr: LBRACE Ident With Ident With interactive_expr: LBRACE Ident With With ## -## Ends in an error in state: 531. +## Ends in an error in state: 530. ## -## update_record -> LBRACE path With . sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## update_record -> LBRACE path With . sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## LBRACE path With @@ -2277,10 +2277,10 @@ interactive_expr: LBRACE Ident With With interactive_expr: LBRACE With ## -## Ends in an error in state: 180. +## Ends in an error in state: 179. ## -## record_expr -> LBRACE . sep_or_term_list(field_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## update_record -> LBRACE . path With sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## record_expr -> LBRACE . sep_or_term_list(field_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## update_record -> LBRACE . path With sep_or_term_list(field_path_assignment,SEMI) RBRACE [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## LBRACE @@ -2288,62 +2288,9 @@ interactive_expr: LBRACE With -interactive_expr: LBRACKET PERCENT Constr Verbatim With -## -## Ends in an error in state: 560. -## -## code_insert -> LBRACKET PERCENT Constr expr . RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT Constr 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 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## - - - -interactive_expr: LBRACKET PERCENT Constr With -## -## Ends in an error in state: 172. -## -## code_insert -> LBRACKET PERCENT Constr . expr RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT Constr -## - - - -interactive_expr: LBRACKET PERCENT With -## -## Ends in an error in state: 171. -## -## code_insert -> LBRACKET PERCENT . Constr expr RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT -## - - - interactive_expr: LBRACKET Verbatim SEMI Verbatim SEMI With ## -## Ends in an error in state: 572. +## Ends in an error in state: 566. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -2356,7 +2303,7 @@ interactive_expr: LBRACKET Verbatim SEMI Verbatim SEMI With interactive_expr: LBRACKET Verbatim SEMI Verbatim With ## -## Ends in an error in state: 571. +## Ends in an error in state: 565. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -2369,25 +2316,25 @@ interactive_expr: LBRACKET Verbatim SEMI Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET Verbatim SEMI With ## -## Ends in an error in state: 568. +## Ends in an error in state: 562. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -2400,7 +2347,7 @@ interactive_expr: LBRACKET Verbatim SEMI With interactive_expr: LBRACKET Verbatim With ## -## Ends in an error in state: 567. +## Ends in an error in state: 561. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -2413,28 +2360,27 @@ interactive_expr: LBRACKET Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LBRACKET With ## -## Ends in an error in state: 170. +## Ends in an error in state: 178. ## -## code_insert -> LBRACKET . PERCENT Constr expr RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## list__(expr) -> LBRACKET . option(sep_or_term_list(expr,SEMI)) RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## list__(expr) -> LBRACKET . option(sep_or_term_list(expr,SEMI)) RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## LBRACKET @@ -2444,9 +2390,9 @@ interactive_expr: LBRACKET With interactive_expr: LPAR Verbatim COLON Ident VBAR ## -## Ends in an error in state: 586. +## Ends in an error in state: 575. ## -## par(annot_expr) -> LPAR annot_expr . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## par(annot_expr) -> LPAR annot_expr . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## LPAR annot_expr @@ -2458,14 +2404,14 @@ interactive_expr: LPAR Verbatim COLON Ident VBAR ## In state 28, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 27, spurious reduction of production type_expr -> fun_type -## In state 585, spurious reduction of production annot_expr -> expr COLON type_expr +## In state 574, spurious reduction of production annot_expr -> expr COLON type_expr ## interactive_expr: LPAR Verbatim COLON With ## -## Ends in an error in state: 584. +## Ends in an error in state: 573. ## ## annot_expr -> expr COLON . type_expr [ RPAR ] ## @@ -2477,10 +2423,10 @@ interactive_expr: LPAR Verbatim COLON With interactive_expr: LPAR Verbatim With ## -## Ends in an error in state: 582. +## Ends in an error in state: 571. ## ## annot_expr -> expr . COLON type_expr [ RPAR ] -## par(expr) -> LPAR expr . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## par(expr) -> LPAR expr . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## LPAR expr @@ -2489,29 +2435,29 @@ interactive_expr: LPAR Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: LPAR With ## -## Ends in an error in state: 167. +## Ends in an error in state: 170. ## -## par(annot_expr) -> LPAR . annot_expr RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## par(expr) -> LPAR . expr RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## unit -> LPAR . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## par(annot_expr) -> LPAR . annot_expr RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## par(expr) -> LPAR . expr RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## unit -> LPAR . RPAR [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## LPAR @@ -2519,9 +2465,50 @@ interactive_expr: LPAR With +interactive_expr: Lang Verbatim With +## +## Ends in an error in state: 585. +## +## code_inj -> Lang expr . RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Lang 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 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## + + + +interactive_expr: Lang With +## +## Ends in an error in state: 167. +## +## code_inj -> Lang . expr RBRACKET [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## +## The known suffix of the stack is as follows: +## Lang +## + + + interactive_expr: Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 178. +## Ends in an error in state: 176. ## ## let_expr(expr) -> Let Rec let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2532,15 +2519,15 @@ interactive_expr: Let Rec WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 179. +## Ends in an error in state: 177. ## ## let_expr(expr) -> Let Rec let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2552,7 +2539,7 @@ interactive_expr: Let Rec WILD EQ Bytes In With interactive_expr: Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 175. +## Ends in an error in state: 173. ## ## let_expr(expr) -> Let Rec let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2563,26 +2550,26 @@ interactive_expr: Let Rec WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Let Rec With ## -## Ends in an error in state: 174. +## Ends in an error in state: 172. ## ## let_expr(expr) -> Let Rec . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2594,7 +2581,7 @@ interactive_expr: Let Rec With interactive_expr: Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 558. +## Ends in an error in state: 569. ## ## let_expr(expr) -> Let let_binding seq(Attr) . In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2605,15 +2592,15 @@ interactive_expr: Let WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Let WILD EQ Bytes In With ## -## Ends in an error in state: 559. +## Ends in an error in state: 570. ## ## let_expr(expr) -> Let let_binding seq(Attr) In . expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2625,7 +2612,7 @@ interactive_expr: Let WILD EQ Bytes In With interactive_expr: Let WILD EQ Bytes With ## -## Ends in an error in state: 557. +## Ends in an error in state: 568. ## ## let_expr(expr) -> Let let_binding . seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2636,26 +2623,26 @@ interactive_expr: Let WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Let With ## -## Ends in an error in state: 173. +## Ends in an error in state: 171. ## ## let_expr(expr) -> Let . let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(expr) -> Let . Rec let_binding seq(Attr) In expr [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -2680,7 +2667,7 @@ interactive_expr: MINUS With interactive_expr: Match Verbatim Type ## -## Ends in an error in state: 575. +## Ends in an error in state: 578. ## ## match_expr(base_cond) -> Match expr . With option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2691,25 +2678,25 @@ interactive_expr: Match Verbatim Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Match Verbatim With LPAR Bytes RPAR With ## -## Ends in an error in state: 250. +## Ends in an error in state: 249. ## ## pattern -> sub_pattern . CONS tail [ ARROW ] ## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] @@ -2722,7 +2709,7 @@ interactive_expr: Match Verbatim With LPAR Bytes RPAR With interactive_expr: Match Verbatim With VBAR Begin ## -## Ends in an error in state: 577. +## Ends in an error in state: 580. ## ## match_expr(base_cond) -> Match expr With option(VBAR) . cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2734,7 +2721,7 @@ interactive_expr: Match Verbatim With VBAR Begin interactive_expr: Match Verbatim With WILD ARROW Bytes VBAR With ## -## Ends in an error in state: 581. +## Ends in an error in state: 584. ## ## cases(base_cond) -> cases(base_cond) VBAR . case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2746,7 +2733,7 @@ interactive_expr: Match Verbatim With WILD ARROW Bytes VBAR With interactive_expr: Match Verbatim With WILD ARROW Fun WILD ARROW With ## -## Ends in an error in state: 419. +## Ends in an error in state: 418. ## ## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2758,7 +2745,7 @@ interactive_expr: Match Verbatim With WILD ARROW Fun WILD ARROW With interactive_expr: Match Verbatim With WILD ARROW Fun With ## -## Ends in an error in state: 417. +## Ends in an error in state: 416. ## ## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -2770,7 +2757,7 @@ interactive_expr: Match Verbatim With WILD ARROW Fun With interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Fun WILD ARROW With ## -## Ends in an error in state: 292. +## Ends in an error in state: 291. ## ## fun_expr(base_cond) -> Fun nseq(irrefutable) ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## fun_expr(closed_if) -> Fun nseq(irrefutable) ARROW . closed_if [ Else ] @@ -2783,7 +2770,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Fun WILD ARROW interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Fun With ## -## Ends in an error in state: 290. +## Ends in an error in state: 289. ## ## fun_expr(base_cond) -> Fun . nseq(irrefutable) ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## fun_expr(closed_if) -> Fun . nseq(irrefutable) ARROW closed_if [ Else ] @@ -2796,7 +2783,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Fun With interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 367. +## Ends in an error in state: 366. ## ## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(closed_if) -> If expr Then closed_if Else . closed_if [ Else ] @@ -2809,7 +2796,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If Verbatim Th interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If Verbatim Then With ## -## Ends in an error in state: 289. +## Ends in an error in state: 288. ## ## if_then(base_cond) -> If expr Then . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -2823,7 +2810,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If Verbatim Th interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If Verbatim With ## -## Ends in an error in state: 288. +## Ends in an error in state: 287. ## ## if_then(base_cond) -> If expr . Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -2836,25 +2823,25 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If Verbatim Wi ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If With ## -## Ends in an error in state: 287. +## Ends in an error in state: 286. ## ## if_then(base_cond) -> If . expr Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -2868,7 +2855,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then If With interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 285. +## Ends in an error in state: 284. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) . In closed_if [ Else ] @@ -2880,15 +2867,15 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec WILD E ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 286. +## Ends in an error in state: 285. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(closed_if) -> Let Rec let_binding seq(Attr) In . closed_if [ Else ] @@ -2901,7 +2888,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec WILD E interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 284. +## Ends in an error in state: 283. ## ## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(closed_if) -> Let Rec let_binding . seq(Attr) In closed_if [ Else ] @@ -2913,26 +2900,26 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec WILD E ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec With ## -## Ends in an error in state: 283. +## Ends in an error in state: 282. ## ## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(closed_if) -> Let Rec . let_binding seq(Attr) In closed_if [ Else ] @@ -2945,7 +2932,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let Rec With interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 382. +## Ends in an error in state: 381. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(closed_if) -> Let let_binding seq(Attr) . In closed_if [ Else ] @@ -2957,15 +2944,15 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let WILD EQ By ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let WILD EQ Bytes In With ## -## Ends in an error in state: 383. +## Ends in an error in state: 382. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(closed_if) -> Let let_binding seq(Attr) In . closed_if [ Else ] @@ -2978,7 +2965,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let WILD EQ By interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let WILD EQ Bytes With ## -## Ends in an error in state: 381. +## Ends in an error in state: 380. ## ## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(closed_if) -> Let let_binding . seq(Attr) In closed_if [ Else ] @@ -2990,26 +2977,26 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let WILD EQ By ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let With ## -## Ends in an error in state: 282. +## Ends in an error in state: 281. ## ## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3024,7 +3011,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Let With interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 416. +## Ends in an error in state: 415. ## ## if_then_else(base_cond) -> If expr Then closed_if Else . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3036,7 +3023,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Verbatim Else interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Verbatim End ## -## Ends in an error in state: 302. +## Ends in an error in state: 301. ## ## base_expr(base_cond) -> disj_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## base_expr(closed_if) -> disj_expr_level . [ Else ] @@ -3051,22 +3038,22 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then Verbatim End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then With ## -## Ends in an error in state: 267. +## Ends in an error in state: 266. ## ## if_then(base_cond) -> If expr Then . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr Then . closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3079,7 +3066,7 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim Then With interactive_expr: Match Verbatim With WILD ARROW If Verbatim With ## -## Ends in an error in state: 266. +## Ends in an error in state: 265. ## ## if_then(base_cond) -> If expr . Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If expr . Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3091,25 +3078,25 @@ interactive_expr: Match Verbatim With WILD ARROW If Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: Match Verbatim With WILD ARROW If With ## -## Ends in an error in state: 265. +## Ends in an error in state: 264. ## ## if_then(base_cond) -> If . expr Then base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## if_then_else(base_cond) -> If . expr Then closed_if Else base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3122,7 +3109,7 @@ interactive_expr: Match Verbatim With WILD ARROW If With interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes Attr Type ## -## Ends in an error in state: 263. +## Ends in an error in state: 262. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3133,15 +3120,15 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes In With ## -## Ends in an error in state: 264. +## Ends in an error in state: 263. ## ## let_expr(base_cond) -> Let Rec let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3153,7 +3140,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes In With interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 262. +## Ends in an error in state: 261. ## ## let_expr(base_cond) -> Let Rec let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3164,26 +3151,26 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Match Verbatim With WILD ARROW Let Rec With ## -## Ends in an error in state: 261. +## Ends in an error in state: 260. ## ## let_expr(base_cond) -> Let Rec . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3195,7 +3182,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let Rec With interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes Attr Type ## -## Ends in an error in state: 423. +## Ends in an error in state: 422. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) . In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3206,15 +3193,15 @@ interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes Attr Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 176, spurious reduction of production seq(Attr) -> -## In state 177, spurious reduction of production seq(Attr) -> Attr seq(Attr) +## In state 174, spurious reduction of production seq(Attr) -> +## In state 175, spurious reduction of production seq(Attr) -> Attr seq(Attr) ## interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes In With ## -## Ends in an error in state: 424. +## Ends in an error in state: 423. ## ## let_expr(base_cond) -> Let let_binding seq(Attr) In . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3226,7 +3213,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes In With interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes With ## -## Ends in an error in state: 422. +## Ends in an error in state: 421. ## ## let_expr(base_cond) -> Let let_binding . seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3237,26 +3224,26 @@ interactive_expr: Match Verbatim With WILD ARROW Let WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## interactive_expr: Match Verbatim With WILD ARROW Let With ## -## Ends in an error in state: 260. +## Ends in an error in state: 259. ## ## let_expr(base_cond) -> Let . let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## let_expr(base_cond) -> Let . Rec let_binding seq(Attr) In base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3269,7 +3256,7 @@ interactive_expr: Match Verbatim With WILD ARROW Let With interactive_expr: Match Verbatim With WILD ARROW Verbatim COMMA Bytes Else ## -## Ends in an error in state: 580. +## Ends in an error in state: 583. ## ## cases(base_cond) -> cases(base_cond) . VBAR case_clause(base_cond) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## match_expr(base_cond) -> Match expr With option(VBAR) cases(base_cond) . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] @@ -3281,30 +3268,30 @@ interactive_expr: Match Verbatim With WILD ARROW Verbatim COMMA Bytes Else ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 347, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level -## In state 346, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) -## In state 223, spurious reduction of production tuple_expr -> tuple(disj_expr_level) -## In state 420, spurious reduction of production base_expr(base_cond) -> tuple_expr -## In state 359, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) -## In state 360, spurious reduction of production base_cond -> base_cond__open(base_cond) -## In state 406, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond -## In state 414, spurious reduction of production cases(base_cond) -> case_clause(base_cond) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 346, spurious reduction of production nsepseq(disj_expr_level,COMMA) -> disj_expr_level +## In state 345, spurious reduction of production tuple(disj_expr_level) -> disj_expr_level COMMA nsepseq(disj_expr_level,COMMA) +## In state 222, spurious reduction of production tuple_expr -> tuple(disj_expr_level) +## In state 419, spurious reduction of production base_expr(base_cond) -> tuple_expr +## In state 358, spurious reduction of production base_cond__open(base_cond) -> base_expr(base_cond) +## In state 359, spurious reduction of production base_cond -> base_cond__open(base_cond) +## In state 405, spurious reduction of production case_clause(base_cond) -> pattern ARROW base_cond +## In state 413, spurious reduction of production cases(base_cond) -> case_clause(base_cond) ## interactive_expr: Match Verbatim With WILD ARROW Verbatim End ## -## Ends in an error in state: 421. +## Ends in an error in state: 420. ## ## base_expr(base_cond) -> disj_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In EOF COMMA COLON BOOL_OR Attr ] @@ -3318,22 +3305,22 @@ interactive_expr: Match Verbatim With WILD ARROW Verbatim End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Match Verbatim With WILD ARROW With ## -## Ends in an error in state: 579. +## Ends in an error in state: 582. ## ## case_clause(base_cond) -> pattern ARROW . base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3345,7 +3332,7 @@ interactive_expr: Match Verbatim With WILD ARROW With interactive_expr: Match Verbatim With WILD COMMA WILD COMMA With ## -## Ends in an error in state: 255. +## Ends in an error in state: 254. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ ARROW ] ## @@ -3357,7 +3344,7 @@ interactive_expr: Match Verbatim With WILD COMMA WILD COMMA With interactive_expr: Match Verbatim With WILD COMMA WILD With ## -## Ends in an error in state: 254. +## Ends in an error in state: 253. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern . [ ARROW ] ## nsepseq(sub_pattern,COMMA) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] @@ -3370,7 +3357,7 @@ interactive_expr: Match Verbatim With WILD COMMA WILD With interactive_expr: Match Verbatim With WILD COMMA With ## -## Ends in an error in state: 253. +## Ends in an error in state: 252. ## ## tuple(sub_pattern) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ ARROW ] ## @@ -3382,7 +3369,7 @@ interactive_expr: Match Verbatim With WILD COMMA With interactive_expr: Match Verbatim With WILD CONS Bytes SEMI ## -## Ends in an error in state: 578. +## Ends in an error in state: 581. ## ## case_clause(base_cond) -> pattern . ARROW base_cond [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3394,14 +3381,14 @@ interactive_expr: Match Verbatim With WILD CONS Bytes SEMI ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). ## In state 97, spurious reduction of production tail -> sub_pattern -## In state 252, spurious reduction of production pattern -> sub_pattern CONS tail +## In state 251, spurious reduction of production pattern -> sub_pattern CONS tail ## interactive_expr: Match Verbatim With WILD CONS With ## -## Ends in an error in state: 251. +## Ends in an error in state: 250. ## ## pattern -> sub_pattern CONS . tail [ ARROW ] ## @@ -3413,7 +3400,7 @@ interactive_expr: Match Verbatim With WILD CONS With interactive_expr: Match Verbatim With WILD With ## -## Ends in an error in state: 407. +## Ends in an error in state: 406. ## ## pattern -> core_pattern . [ ARROW ] ## sub_pattern -> core_pattern . [ CONS COMMA ] @@ -3426,7 +3413,7 @@ interactive_expr: Match Verbatim With WILD With interactive_expr: Match Verbatim With With ## -## Ends in an error in state: 576. +## Ends in an error in state: 579. ## ## match_expr(base_cond) -> Match expr With . option(VBAR) cases(base_cond) [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## @@ -3462,7 +3449,7 @@ interactive_expr: Not With interactive_expr: Verbatim BOOL_AND With ## -## Ends in an error in state: 322. +## Ends in an error in state: 321. ## ## bin_op(conj_expr_level,BOOL_AND,comp_expr_level) -> conj_expr_level BOOL_AND . comp_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3474,7 +3461,7 @@ interactive_expr: Verbatim BOOL_AND With interactive_expr: Verbatim BOOL_OR With ## -## Ends in an error in state: 353. +## Ends in an error in state: 352. ## ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level BOOL_OR . conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR Attr ] ## @@ -3486,7 +3473,7 @@ interactive_expr: Verbatim BOOL_OR With interactive_expr: Verbatim CAT With ## -## Ends in an error in state: 305. +## Ends in an error in state: 304. ## ## bin_op(cons_expr_level,CAT,cat_expr_level) -> cons_expr_level CAT . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3498,7 +3485,7 @@ interactive_expr: Verbatim CAT With interactive_expr: Verbatim COMMA Verbatim COMMA With ## -## Ends in an error in state: 348. +## Ends in an error in state: 347. ## ## nsepseq(disj_expr_level,COMMA) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In Else EOF COLON Attr ] ## @@ -3510,7 +3497,7 @@ interactive_expr: Verbatim COMMA Verbatim COMMA With interactive_expr: Verbatim COMMA Verbatim End ## -## Ends in an error in state: 347. +## Ends in an error in state: 346. ## ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In Else EOF COMMA COLON BOOL_OR Attr ] ## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In Else EOF COMMA COLON BOOL_OR Attr ] @@ -3524,22 +3511,22 @@ interactive_expr: Verbatim COMMA Verbatim End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Verbatim COMMA With ## -## Ends in an error in state: 345. +## Ends in an error in state: 344. ## ## tuple(disj_expr_level) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Let In Else EOF COLON Attr ] ## @@ -3551,7 +3538,7 @@ interactive_expr: Verbatim COMMA With interactive_expr: Verbatim CONS With ## -## Ends in an error in state: 319. +## Ends in an error in state: 318. ## ## bin_op(add_expr_level,CONS,cons_expr_level) -> add_expr_level CONS . cons_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3563,10 +3550,10 @@ interactive_expr: Verbatim CONS With interactive_expr: Verbatim Constr With ## -## Ends in an error in state: 204. +## Ends in an error in state: 203. ## -## module_field -> Constr . DOT module_fun [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] -## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## module_field -> Constr . DOT module_fun [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] +## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With Verbatim VBAR Type True Then TIMES String SLASH SEMI RPAR RBRACKET RBRACE PLUS Or Nat NE Mutez Mod MINUS Let Lang LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: ## Constr @@ -3576,7 +3563,7 @@ interactive_expr: Verbatim Constr With interactive_expr: Verbatim EQ With ## -## Ends in an error in state: 334. +## Ends in an error in state: 333. ## ## bin_op(comp_expr_level,EQ,cat_expr_level) -> comp_expr_level EQ . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3588,7 +3575,7 @@ interactive_expr: Verbatim EQ With interactive_expr: Verbatim GE With ## -## Ends in an error in state: 332. +## Ends in an error in state: 331. ## ## bin_op(comp_expr_level,GE,cat_expr_level) -> comp_expr_level GE . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3600,7 +3587,7 @@ interactive_expr: Verbatim GE With interactive_expr: Verbatim GT With ## -## Ends in an error in state: 330. +## Ends in an error in state: 329. ## ## bin_op(comp_expr_level,GT,cat_expr_level) -> comp_expr_level GT . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3612,7 +3599,7 @@ interactive_expr: Verbatim GT With interactive_expr: Verbatim LE With ## -## Ends in an error in state: 328. +## Ends in an error in state: 327. ## ## bin_op(comp_expr_level,LE,cat_expr_level) -> comp_expr_level LE . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3624,7 +3611,7 @@ interactive_expr: Verbatim LE With interactive_expr: Verbatim LT With ## -## Ends in an error in state: 326. +## Ends in an error in state: 325. ## ## bin_op(comp_expr_level,LT,cat_expr_level) -> comp_expr_level LT . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3636,7 +3623,7 @@ interactive_expr: Verbatim LT With interactive_expr: Verbatim MINUS C_None WILD ## -## Ends in an error in state: 318. +## Ends in an error in state: 317. ## ## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS mult_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] @@ -3651,7 +3638,7 @@ interactive_expr: Verbatim MINUS C_None WILD interactive_expr: Verbatim MINUS With ## -## Ends in an error in state: 317. +## Ends in an error in state: 316. ## ## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS . mult_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3663,7 +3650,7 @@ interactive_expr: Verbatim MINUS With interactive_expr: Verbatim Mod With ## -## Ends in an error in state: 238. +## Ends in an error in state: 237. ## ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level Mod . unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3675,7 +3662,7 @@ interactive_expr: Verbatim Mod With interactive_expr: Verbatim NE With ## -## Ends in an error in state: 324. +## Ends in an error in state: 323. ## ## bin_op(comp_expr_level,NE,cat_expr_level) -> comp_expr_level NE . cat_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or NE Let LT LE In GT GE End Else EQ EOF COMMA COLON BOOL_OR BOOL_AND Attr ] ## @@ -3687,7 +3674,7 @@ interactive_expr: Verbatim NE With interactive_expr: Verbatim Or With ## -## Ends in an error in state: 303. +## Ends in an error in state: 302. ## ## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level Or . conj_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE Or Let In End Else EOF COMMA COLON BOOL_OR Attr ] ## @@ -3699,7 +3686,7 @@ interactive_expr: Verbatim Or With interactive_expr: Verbatim PLUS C_None WILD ## -## Ends in an error in state: 316. +## Ends in an error in state: 315. ## ## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS mult_expr_level . [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] @@ -3714,7 +3701,7 @@ interactive_expr: Verbatim PLUS C_None WILD interactive_expr: Verbatim PLUS With ## -## Ends in an error in state: 315. +## Ends in an error in state: 314. ## ## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS . mult_expr_level [ With VBAR Type Then SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3726,7 +3713,7 @@ interactive_expr: Verbatim PLUS With interactive_expr: Verbatim SLASH With ## -## Ends in an error in state: 236. +## Ends in an error in state: 235. ## ## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level SLASH . unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3738,7 +3725,7 @@ interactive_expr: Verbatim SLASH With interactive_expr: Verbatim TIMES With ## -## Ends in an error in state: 225. +## Ends in an error in state: 224. ## ## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level TIMES . unary_expr_level [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3750,7 +3737,7 @@ interactive_expr: Verbatim TIMES With interactive_expr: Verbatim VBAR ## -## Ends in an error in state: 371. +## Ends in an error in state: 370. ## ## base_expr(expr) -> disj_expr_level . [ With Type Then SEMI RPAR RBRACKET RBRACE Let In EOF COLON Attr ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ With Type Then SEMI RPAR RBRACKET RBRACE Or Let In EOF COMMA COLON BOOL_OR Attr ] @@ -3764,22 +3751,22 @@ interactive_expr: Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: Verbatim Verbatim Verbatim WILD ## -## Ends in an error in state: 231. +## Ends in an error in state: 230. ## ## seq(core_expr) -> core_expr . seq(core_expr) [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3791,7 +3778,7 @@ interactive_expr: Verbatim Verbatim Verbatim WILD interactive_expr: Verbatim Verbatim WILD ## -## Ends in an error in state: 229. +## Ends in an error in state: 228. ## ## nseq(core_expr) -> core_expr . seq(core_expr) [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## @@ -3803,7 +3790,7 @@ interactive_expr: Verbatim Verbatim WILD interactive_expr: Verbatim WILD ## -## Ends in an error in state: 227. +## Ends in an error in state: 226. ## ## call_expr -> core_expr . nseq(core_expr) [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] ## call_expr_level -> core_expr . [ With VBAR Type Then TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE In GT GE End Else EQ EOF CONS COMMA COLON CAT BOOL_OR BOOL_AND Attr ] @@ -3816,7 +3803,7 @@ interactive_expr: Verbatim WILD interactive_expr: Verbatim With ## -## Ends in an error in state: 603. +## Ends in an error in state: 602. ## ## interactive_expr -> expr . EOF [ # ] ## @@ -3827,25 +3814,25 @@ interactive_expr: Verbatim With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) ## interactive_expr: With ## -## Ends in an error in state: 601. +## Ends in an error in state: 600. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -4291,7 +4278,7 @@ contract: Let LPAR With contract: Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 590. +## Ends in an error in state: 589. ## ## let_declaration -> Let Rec let_binding . seq(Attr) [ Type Let EOF ] ## @@ -4302,19 +4289,19 @@ contract: Let Rec WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## @@ -4333,7 +4320,7 @@ contract: Let Rec With contract: Let WILD COLON Ident VBAR ## -## Ends in an error in state: 378. +## Ends in an error in state: 377. ## ## let_binding -> irrefutable option(type_annotation) . EQ expr [ Type Let In EOF Attr ] ## @@ -4404,7 +4391,7 @@ contract: Let WILD COMMA With contract: Let WILD EQ Bytes Attr With ## -## Ends in an error in state: 176. +## Ends in an error in state: 174. ## ## seq(Attr) -> Attr . seq(Attr) [ Type Let In EOF ] ## @@ -4416,7 +4403,7 @@ contract: Let WILD EQ Bytes Attr With contract: Let WILD EQ Bytes With ## -## Ends in an error in state: 592. +## Ends in an error in state: 591. ## ## let_declaration -> Let let_binding . seq(Attr) [ Type Let EOF ] ## @@ -4427,26 +4414,26 @@ contract: Let WILD EQ Bytes With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 227, spurious reduction of production call_expr_level -> core_expr -## In state 234, spurious reduction of production unary_expr_level -> call_expr_level -## In state 221, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 224, spurious reduction of production add_expr_level -> mult_expr_level -## In state 314, spurious reduction of production cons_expr_level -> add_expr_level -## In state 304, spurious reduction of production cat_expr_level -> cons_expr_level -## In state 336, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 343, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 350, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 371, spurious reduction of production base_expr(expr) -> disj_expr_level -## In state 373, spurious reduction of production base_cond__open(expr) -> base_expr(expr) -## In state 374, spurious reduction of production expr -> base_cond__open(expr) -## In state 380, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr +## In state 226, spurious reduction of production call_expr_level -> core_expr +## In state 233, spurious reduction of production unary_expr_level -> call_expr_level +## In state 220, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 223, spurious reduction of production add_expr_level -> mult_expr_level +## In state 313, spurious reduction of production cons_expr_level -> add_expr_level +## In state 303, spurious reduction of production cat_expr_level -> cons_expr_level +## In state 335, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 342, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 349, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 370, spurious reduction of production base_expr(expr) -> disj_expr_level +## In state 372, spurious reduction of production base_cond__open(expr) -> base_expr(expr) +## In state 373, spurious reduction of production expr -> base_cond__open(expr) +## In state 379, spurious reduction of production let_binding -> irrefutable option(type_annotation) EQ expr ## contract: Let WILD EQ With ## -## Ends in an error in state: 379. +## Ends in an error in state: 378. ## ## let_binding -> irrefutable option(type_annotation) EQ . expr [ Type Let In EOF Attr ] ## @@ -4458,7 +4445,7 @@ contract: Let WILD EQ With contract: Let WILD WILD ## -## Ends in an error in state: 377. +## Ends in an error in state: 376. ## ## let_binding -> irrefutable . option(type_annotation) EQ expr [ Type Let In EOF Attr ] ## @@ -4552,7 +4539,7 @@ contract: Type Ident EQ Constr With contract: Type Ident EQ Ident VBAR ## -## Ends in an error in state: 598. +## Ends in an error in state: 597. ## ## declarations -> declaration . [ EOF ] ## declarations -> declaration . declarations [ EOF ] @@ -4568,7 +4555,7 @@ contract: Type Ident EQ Ident VBAR ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 27, spurious reduction of production type_expr -> fun_type ## In state 61, spurious reduction of production type_decl -> Type Ident EQ type_expr -## In state 594, spurious reduction of production declaration -> type_decl +## In state 593, spurious reduction of production declaration -> type_decl ## diff --git a/src/passes/01-parser/pascaligo/AST.ml b/src/passes/01-parser/pascaligo/AST.ml index ff9808302..0fd1cb70b 100644 --- a/src/passes/01-parser/pascaligo/AST.ml +++ b/src/passes/01-parser/pascaligo/AST.ml @@ -82,7 +82,6 @@ type rbrace = Region.t (* "}" *) type lbracket = Region.t (* "[" *) type rbracket = Region.t (* "]" *) type cons = Region.t (* "#" *) -type percent = Region.t (* "%" *) type vbar = Region.t (* "|" *) type arrow = Region.t (* "->" *) type assign = Region.t (* ":=" *) @@ -437,12 +436,10 @@ and for_collect = { block : block reg } -and code_insert = { - lbracket : lbracket; - percent : percent; - language : string reg; - code : expr; - rbracket : rbracket; +and code_inj = { + language : string reg reg; + code : expr; + rbracket : rbracket; } and collection = @@ -453,27 +450,27 @@ and collection = (* Expressions *) and expr = - ECase of expr case reg -| ECond of cond_expr reg -| EAnnot of annot_expr par reg -| ELogic of logic_expr -| EArith of arith_expr -| EString of string_expr -| EList of list_expr -| ESet of set_expr -| EConstr of constr_expr -| ERecord of record reg -| EProj of projection reg -| EUpdate of update reg -| EMap of map_expr -| EVar of Lexer.lexeme reg -| ECall of fun_call -| EBytes of (Lexer.lexeme * Hex.t) reg -| EUnit of c_Unit -| ETuple of tuple_expr -| EPar of expr par reg -| EFun of fun_expr reg -| ECodeInsert of code_insert reg + ECase of expr case reg +| ECond of cond_expr reg +| EAnnot of annot_expr par reg +| ELogic of logic_expr +| EArith of arith_expr +| EString of string_expr +| EList of list_expr +| ESet of set_expr +| EConstr of constr_expr +| ERecord of record reg +| EProj of projection reg +| EUpdate of update reg +| EMap of map_expr +| EVar of Lexer.lexeme reg +| ECall of fun_call +| EBytes of (Lexer.lexeme * Hex.t) reg +| EUnit of c_Unit +| ETuple of tuple_expr +| EPar of expr par reg +| EFun of fun_expr reg +| ECodeInj of code_inj reg and annot_expr = expr * colon * type_expr @@ -688,17 +685,17 @@ let rec expr_to_region = function | ERecord e -> record_expr_to_region e | EMap e -> map_expr_to_region e | ETuple e -> tuple_expr_to_region e -| EUpdate {region; _} -| EProj {region; _} -| EVar {region; _} -| ECall {region; _} -| EBytes {region; _} -| EUnit region -| ECase {region;_} -| ECond {region; _} -| EPar {region; _} -| EFun {region; _} -| ECodeInsert {region; _} -> region +| EUpdate {region; _} +| EProj {region; _} +| EVar {region; _} +| ECall {region; _} +| EBytes {region; _} +| EUnit region +| ECase {region;_} +| ECond {region; _} +| EPar {region; _} +| EFun {region; _} +| ECodeInj {region; _} -> region and tuple_expr_to_region {region; _} = region diff --git a/src/passes/01-parser/pascaligo/LexToken.mli b/src/passes/01-parser/pascaligo/LexToken.mli index 86c28c4a3..6c445e4b9 100644 --- a/src/passes/01-parser/pascaligo/LexToken.mli +++ b/src/passes/01-parser/pascaligo/LexToken.mli @@ -44,6 +44,7 @@ type t = | Mutez of (lexeme * Z.t) Region.reg | Ident of lexeme Region.reg | Constr of lexeme Region.reg +| Lang of lexeme Region.reg Region.reg (* Symbols *) @@ -73,7 +74,6 @@ type t = | DOT of Region.t (* "." *) | WILD of Region.t (* "_" *) | CAT of Region.t (* "^" *) -| PERCENT of Region.t (* "%" *) (* Keywords *) @@ -162,6 +162,7 @@ val mk_verbatim : lexeme -> Region.t -> token val mk_bytes : lexeme -> Region.t -> token val mk_constr : lexeme -> Region.t -> token val mk_attr : string -> lexeme -> Region.t -> (token, attr_err) result +val mk_lang : lexeme Region.reg -> Region.t -> token val eof : Region.t -> token (* Predicates *) diff --git a/src/passes/01-parser/pascaligo/LexToken.mll b/src/passes/01-parser/pascaligo/LexToken.mll index 33e0bf937..e037f252e 100644 --- a/src/passes/01-parser/pascaligo/LexToken.mll +++ b/src/passes/01-parser/pascaligo/LexToken.mll @@ -32,6 +32,7 @@ type t = | Mutez of (lexeme * Z.t) Region.reg | Ident of lexeme Region.reg | Constr of lexeme Region.reg +| Lang of lexeme Region.reg Region.reg (* Symbols *) @@ -61,7 +62,6 @@ type t = | DOT of Region.t | WILD of Region.t | CAT of Region.t -| PERCENT of Region.t (* "%" *) (* Keywords *) @@ -126,26 +126,23 @@ let proj_token = function region, sprintf "String %S" value | Verbatim Region.{region; value} -> - region, sprintf "Verbatim {|%s|}" value + region, sprintf "Verbatim %S" value | Bytes Region.{region; value = s,b} -> region, - sprintf "Bytes (\"%s\", \"0x%s\")" s (Hex.show b) + sprintf "Bytes (%S, \"0x%s\")" s (Hex.show b) | Int Region.{region; value = s,n} -> - region, sprintf "Int (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Int (%S, %s)" s (Z.to_string n) | Nat Region.{region; value = s,n} -> - region, sprintf "Nat (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Nat (%S, %s)" s (Z.to_string n) | Mutez Region.{region; value = s,n} -> - region, sprintf "Mutez (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Mutez (%S, %s)" s (Z.to_string n) | Ident Region.{region; value} -> - region, sprintf "Ident \"%s\"" value + region, sprintf "Ident %S" value | Constr Region.{region; value} -> - region, sprintf "Constr \"%s\"" value - -(* -| Attr {header; string={region; value}} -> - region, sprintf "Attr (\"%s\",\"%s\")" header value - *) + region, sprintf "Constr %S" value +| Lang Region.{region; value} -> + region, sprintf "Lang %S" (value.Region.value) (* Symbols *) @@ -175,7 +172,6 @@ let proj_token = function | DOT region -> region, "DOT" | WILD region -> region, "WILD" | CAT region -> region, "CAT" -| PERCENT region -> region, "PERCENT" (* Keywords *) @@ -232,14 +228,15 @@ let proj_token = function let to_lexeme = function (* Literals *) - String s -> String.escaped s.Region.value + String s -> String.escaped s.Region.value | Verbatim v -> String.escaped v.Region.value -| Bytes b -> fst b.Region.value +| Bytes b -> fst b.Region.value | Int i | Nat i -| Mutez i -> fst i.Region.value +| Mutez i -> fst i.Region.value | Ident id -| Constr id -> id.Region.value +| Constr id -> id.Region.value +| Lang lang -> Region.(lang.value.value) (* Symbols *) @@ -269,7 +266,6 @@ let to_lexeme = function | DOT _ -> "." | WILD _ -> "_" | CAT _ -> "^" -| PERCENT _ -> "%" (* Keywords *) @@ -521,7 +517,6 @@ let mk_sym lexeme region = | "-" -> Ok (MINUS region) | "*" -> Ok (TIMES region) | "/" -> Ok (SLASH region) - | "%" -> Ok (PERCENT region) | "<" -> Ok (LT region) | "<=" -> Ok (LE region) | ">" -> Ok (GT region) @@ -552,6 +547,10 @@ type attr_err = Invalid_attribute let mk_attr _ _ _ = Error Invalid_attribute +(* Language injection *) + +let mk_lang lang region = Lang Region.{value=lang; region} + (* Predicates *) let is_string = function String _ -> true | _ -> false @@ -613,7 +612,7 @@ let check_right_context token next_token buffer : unit = else () else if is_bytes token - then if is_string next || is_ident next + then if is_string next || is_ident next then fail region Missing_break else if is_int next then fail region Odd_lengthed_bytes diff --git a/src/passes/01-parser/pascaligo/ParToken.mly b/src/passes/01-parser/pascaligo/ParToken.mly index 1fc3de168..2ed734bb7 100644 --- a/src/passes/01-parser/pascaligo/ParToken.mly +++ b/src/passes/01-parser/pascaligo/ParToken.mly @@ -5,14 +5,15 @@ (* Literals *) -%token String "" -%token Verbatim "" -%token <(LexToken.lexeme * Hex.t) Region.reg> Bytes "" -%token <(LexToken.lexeme * Z.t) Region.reg> Int "" -%token <(LexToken.lexeme * Z.t) Region.reg> Nat "" -%token <(LexToken.lexeme * Z.t) Region.reg> Mutez "" -%token Ident "" -%token Constr "" +%token String "" +%token Verbatim "" +%token <(LexToken.lexeme * Hex.t) Region.reg> Bytes "" +%token <(LexToken.lexeme * Z.t) Region.reg> Int "" +%token <(LexToken.lexeme * Z.t) Region.reg> Nat "" +%token <(LexToken.lexeme * Z.t) Region.reg> Mutez "" +%token Ident "" +%token Constr "" +%token Lang "" (* Symbols *) @@ -42,7 +43,6 @@ %token DOT "." %token WILD "_" %token CAT "^" -%token PERCENT "%" (* Keywords *) diff --git a/src/passes/01-parser/pascaligo/Parser.mly b/src/passes/01-parser/pascaligo/Parser.mly index 435213727..dc0ca1cba 100644 --- a/src/passes/01-parser/pascaligo/Parser.mly +++ b/src/passes/01-parser/pascaligo/Parser.mly @@ -855,7 +855,7 @@ core_expr: | set_expr { ESet $1 } | record_expr { ERecord $1 } | update_record { EUpdate $1 } -| code_insert_expr { ECodeInsert $1 } +| code_inj { ECodeInj $1 } | "" arguments { let region = cover $1.region $2.region in EConstr (ConstrApp {region; value = $1, Some $2}) @@ -974,15 +974,10 @@ update_record: let value = {record=$1; kwd_with=$2; updates} in {region; value} } -code_insert_expr: - "[" "%" Constr expr "]" { - let region = cover $1 $5 in - let value = { - lbracket =$1; - percent =$2; - language =$3; - code =$4; - rbracket =$5} +code_inj: + "" expr "]" { + let region = cover $1.region $3 + and value = {language=$1; code=$2; rbracket=$3} in {region; value} } field_assignment: diff --git a/src/passes/01-parser/pascaligo/ParserLog.ml b/src/passes/01-parser/pascaligo/ParserLog.ml index 6cca06237..b02ffe3d6 100644 --- a/src/passes/01-parser/pascaligo/ParserLog.ml +++ b/src/passes/01-parser/pascaligo/ParserLog.ml @@ -71,26 +71,32 @@ let print_token state region lexeme = let print_var state {region; value} = let line = - sprintf "%s: Ident \"%s\"\n" + sprintf "%s: Ident %S\n" (compact state region) value in Buffer.add_string state#buffer line let print_constr state {region; value} = let line = - sprintf "%s: Constr \"%s\"\n" + sprintf "%s: Constr %S\n" (compact state region) value in Buffer.add_string state#buffer line let print_string state {region; value} = let line = - sprintf "%s: String %s\n" + sprintf "%s: String %S\n" + (compact state region) value + in Buffer.add_string state#buffer line + +let print_verbatim state {region; value} = + let line = + sprintf "%s: Verbatim %S\n" (compact state region) value in Buffer.add_string state#buffer line let print_bytes state {region; value} = let lexeme, abstract = value in let line = - sprintf "%s: Bytes (\"%s\", \"0x%s\")\n" + sprintf "%s: Bytes (%S, \"0x%s\")\n" (compact state region) lexeme (Hex.show abstract) in Buffer.add_string state#buffer line @@ -98,7 +104,7 @@ let print_bytes state {region; value} = let print_int state {region; value} = let lexeme, abstract = value in let line = - sprintf "%s: Int (\"%s\", %s)\n" + sprintf "%s: Int (%S, %s)\n" (compact state region) lexeme (Z.to_string abstract) in Buffer.add_string state#buffer line @@ -106,7 +112,7 @@ let print_int state {region; value} = let print_nat state {region; value} = let lexeme, abstract = value in let line = - sprintf "%s: Nat (\"%s\", %s)\n" + sprintf "%s: Nat (%S, %s)\n" (compact state region) lexeme (Z.to_string abstract) in Buffer.add_string state#buffer line @@ -230,13 +236,15 @@ and print_fun_expr state {value; _} = print_token state kwd_is "is"; print_expr state return -and print_code_insert state {value; _} = - let {lbracket;percent;language;code;rbracket} : code_insert = value in - print_token state lbracket "["; - print_token state percent "%"; - print_string state language; - print_expr state code; - print_token state rbracket "]" +and print_code_inj state {value; _} = + let {language; code; rbracket} = value in + let {value=lang; region} = language in + let header_stop = region#start#shift_bytes 1 in + let header_reg = Region.make ~start:region#start ~stop:header_stop in + print_token state header_reg "[%"; + print_string state lang; + print_expr state code; + print_token state rbracket "]" and print_parameters state {value; _} = let {lpar; inside; rpar} = value in @@ -467,7 +475,7 @@ and print_expr state = function | ETuple e -> print_tuple_expr state e | EPar e -> print_par_expr state e | EFun e -> print_fun_expr state e -| ECodeInsert e -> print_code_insert state e +| ECodeInj e -> print_code_inj state e and print_annot_expr state node = let {inside; _} : annot_expr par = node in @@ -609,7 +617,7 @@ and print_string_expr state = function | String s -> print_string state s | Verbatim v -> - print_string state v + print_verbatim state v and print_list_expr state = function ECons {value = {arg1; op; arg2}; _} -> @@ -1019,16 +1027,16 @@ and pp_fun_expr state (expr: fun_expr) = pp_expr (state#pad 1 0) expr.return in () -and pp_code_insert state (rc : code_insert) = +and pp_code_inj state rc = let () = - let state = state#pad 3 0 in + let state = state#pad 2 0 in pp_node state ""; - pp_string (state#pad 1 0) rc.language in + pp_string (state#pad 1 0) rc.language.value in let () = - let state = state#pad 3 1 in + let state = state#pad 2 1 in pp_node state ""; - pp_expr (state#pad 1 0) rc.code in - () + pp_expr (state#pad 1 0) rc.code + in () and pp_parameters state {value; _} = let params = Utils.nsepseq_to_list value.inside in @@ -1511,9 +1519,9 @@ and pp_expr state = function | EFun {value; region} -> pp_loc_node state "EFun" region; pp_fun_expr state value; -| ECodeInsert {value; region} -> - pp_loc_node state "ECodeInsert" region; - pp_code_insert state value; +| ECodeInj {value; region} -> + pp_loc_node state "ECodeInj" region; + pp_code_inj state value; and pp_list_expr state = function ECons {value; region} -> diff --git a/src/passes/01-parser/pascaligo/Pretty.ml b/src/passes/01-parser/pascaligo/Pretty.ml index c3da0fe4a..cf3817089 100644 --- a/src/passes/01-parser/pascaligo/Pretty.ml +++ b/src/passes/01-parser/pascaligo/Pretty.ml @@ -381,7 +381,7 @@ and pp_expr = function | ETuple e -> pp_tuple_expr e | EPar e -> pp_par pp_expr e | EFun e -> pp_fun_expr e -| ECodeInsert e -> pp_code_insert e +| ECodeInj e -> pp_code_inj e and pp_annot_expr {value; _} = let expr, _, type_expr = value.inside in @@ -496,11 +496,11 @@ and pp_update {value; _} = and record = pp_path record in record ^^ string " with" ^^ nest 2 (break 1 ^^ updates) -and pp_code_insert {value; _} = +and pp_code_inj {value; _} = let {language; code; _} = value in - let language = pp_string language - and code = pp_expr code in - string "[%" ^^ language ^^ string " " ^^ code ^^ string " ]" + let language = pp_string language.value + and code = pp_expr code in + string "[%" ^^ language ^/^ code ^^ string "]" and pp_field_path_assign {value; _} = let {field_path; field_expr; _} = value in diff --git a/src/passes/01-parser/pascaligo/error.messages.checked-in b/src/passes/01-parser/pascaligo/error.messages.checked-in index 7377200d0..5688aff08 100644 --- a/src/passes/01-parser/pascaligo/error.messages.checked-in +++ b/src/passes/01-parser/pascaligo/error.messages.checked-in @@ -1,6 +1,6 @@ interactive_expr: BigMap LBRACKET Verbatim ARROW Bytes End ## -## Ends in an error in state: 150. +## Ends in an error in state: 148. ## ## injection(BigMap,binding) -> BigMap LBRACKET sep_or_term_list(binding,SEMI) . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -11,28 +11,27 @@ interactive_expr: BigMap LBRACKET Verbatim ARROW Bytes End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr -## In state 253, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 249, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr +## In state 251, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 247, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## interactive_expr: BigMap LBRACKET With ## -## Ends in an error in state: 143. +## Ends in an error in state: 141. ## -## code_insert_expr -> LBRACKET . PERCENT Constr expr RBRACKET [ TIMES SLASH PLUS Or NE Mod MINUS LT LE GT GE EQ Contains CONS CAT And ARROW ] ## injection(BigMap,binding) -> BigMap LBRACKET . sep_or_term_list(binding,SEMI) RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## injection(BigMap,binding) -> BigMap LBRACKET . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -44,7 +43,7 @@ interactive_expr: BigMap LBRACKET With interactive_expr: BigMap Verbatim ARROW Bytes RBRACKET ## -## Ends in an error in state: 261. +## Ends in an error in state: 259. ## ## injection(BigMap,binding) -> BigMap sep_or_term_list(binding,SEMI) . End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -55,26 +54,26 @@ interactive_expr: BigMap Verbatim ARROW Bytes RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr -## In state 253, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 249, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr +## In state 251, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 247, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## interactive_expr: BigMap With ## -## Ends in an error in state: 142. +## Ends in an error in state: 140. ## ## injection(BigMap,binding) -> BigMap . sep_or_term_list(binding,SEMI) End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## injection(BigMap,binding) -> BigMap . End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -89,7 +88,7 @@ interactive_expr: BigMap With interactive_expr: C_Some With ## -## Ends in an error in state: 138. +## Ends in an error in state: 136. ## ## core_expr -> C_Some . arguments [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -101,7 +100,7 @@ interactive_expr: C_Some With interactive_expr: Case Verbatim Of C_Some LPAR WILD With ## -## Ends in an error in state: 289. +## Ends in an error in state: 287. ## ## par(core_pattern) -> LPAR core_pattern . RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -113,7 +112,7 @@ interactive_expr: Case Verbatim Of C_Some LPAR WILD With interactive_expr: Case Verbatim Of C_Some LPAR With ## -## Ends in an error in state: 281. +## Ends in an error in state: 279. ## ## par(core_pattern) -> LPAR . core_pattern RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -125,7 +124,7 @@ interactive_expr: Case Verbatim Of C_Some LPAR With interactive_expr: Case Verbatim Of C_Some With ## -## Ends in an error in state: 280. +## Ends in an error in state: 278. ## ## constr_pattern -> C_Some . par(core_pattern) [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -137,7 +136,7 @@ interactive_expr: Case Verbatim Of C_Some With interactive_expr: Case Verbatim Of Constr LPAR WILD With ## -## Ends in an error in state: 295. +## Ends in an error in state: 293. ## ## nsepseq(core_pattern,COMMA) -> core_pattern . [ RPAR ] ## nsepseq(core_pattern,COMMA) -> core_pattern . COMMA nsepseq(core_pattern,COMMA) [ RPAR ] @@ -150,7 +149,7 @@ interactive_expr: Case Verbatim Of Constr LPAR WILD With interactive_expr: Case Verbatim Of Constr LPAR With ## -## Ends in an error in state: 279. +## Ends in an error in state: 277. ## ## par(nsepseq(core_pattern,COMMA)) -> LPAR . nsepseq(core_pattern,COMMA) RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -162,7 +161,7 @@ interactive_expr: Case Verbatim Of Constr LPAR With interactive_expr: Case Verbatim Of Constr With ## -## Ends in an error in state: 278. +## Ends in an error in state: 276. ## ## constr_pattern -> Constr . tuple_pattern [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## constr_pattern -> Constr . [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] @@ -175,7 +174,7 @@ interactive_expr: Case Verbatim Of Constr With interactive_expr: Case Verbatim Of LBRACKET VBAR Block ## -## Ends in an error in state: 266. +## Ends in an error in state: 264. ## ## case(expr) -> Case expr Of LBRACKET option(VBAR) . cases(expr) RBRACKET [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -187,7 +186,7 @@ interactive_expr: Case Verbatim Of LBRACKET VBAR Block interactive_expr: Case Verbatim Of LBRACKET WILD ARROW Bytes End ## -## Ends in an error in state: 330. +## Ends in an error in state: 328. ## ## case(expr) -> Case expr Of LBRACKET option(VBAR) cases(expr) . RBRACKET [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -198,26 +197,26 @@ interactive_expr: Case Verbatim Of LBRACKET WILD ARROW Bytes End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 328, spurious reduction of production case_clause(expr) -> pattern ARROW expr -## In state 332, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) -## In state 329, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 326, spurious reduction of production case_clause(expr) -> pattern ARROW expr +## In state 330, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) +## In state 327, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) ## interactive_expr: Case Verbatim Of LBRACKET With ## -## Ends in an error in state: 265. +## Ends in an error in state: 263. ## ## case(expr) -> Case expr Of LBRACKET . option(VBAR) cases(expr) RBRACKET [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -229,7 +228,7 @@ interactive_expr: Case Verbatim Of LBRACKET With interactive_expr: Case Verbatim Of LPAR WILD COMMA With ## -## Ends in an error in state: 296. +## Ends in an error in state: 294. ## ## nsepseq(core_pattern,COMMA) -> core_pattern COMMA . nsepseq(core_pattern,COMMA) [ RPAR ] ## @@ -241,7 +240,7 @@ interactive_expr: Case Verbatim Of LPAR WILD COMMA With interactive_expr: Case Verbatim Of LPAR WILD CONS Bytes ARROW ## -## Ends in an error in state: 308. +## Ends in an error in state: 306. ## ## par(cons_pattern) -> LPAR cons_pattern . RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -252,15 +251,15 @@ interactive_expr: Case Verbatim Of LPAR WILD CONS Bytes ARROW ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 302, spurious reduction of production pattern -> core_pattern -## In state 301, spurious reduction of production cons_pattern -> core_pattern CONS pattern +## In state 300, spurious reduction of production pattern -> core_pattern +## In state 299, spurious reduction of production cons_pattern -> core_pattern CONS pattern ## interactive_expr: Case Verbatim Of LPAR WILD CONS With ## -## Ends in an error in state: 300. +## Ends in an error in state: 298. ## ## cons_pattern -> core_pattern CONS . pattern [ RPAR ] ## @@ -272,7 +271,7 @@ interactive_expr: Case Verbatim Of LPAR WILD CONS With interactive_expr: Case Verbatim Of LPAR WILD With ## -## Ends in an error in state: 299. +## Ends in an error in state: 297. ## ## cons_pattern -> core_pattern . CONS pattern [ RPAR ] ## nsepseq(core_pattern,COMMA) -> core_pattern . [ RPAR ] @@ -286,7 +285,7 @@ interactive_expr: Case Verbatim Of LPAR WILD With interactive_expr: Case Verbatim Of LPAR With ## -## Ends in an error in state: 274. +## Ends in an error in state: 272. ## ## par(cons_pattern) -> LPAR . cons_pattern RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## par(nsepseq(core_pattern,COMMA)) -> LPAR . nsepseq(core_pattern,COMMA) RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] @@ -299,7 +298,7 @@ interactive_expr: Case Verbatim Of LPAR With interactive_expr: Case Verbatim Of List LBRACKET WILD End ## -## Ends in an error in state: 312. +## Ends in an error in state: 310. ## ## injection(List,core_pattern) -> List LBRACKET sep_or_term_list(core_pattern,SEMI) . RBRACKET [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -310,15 +309,15 @@ interactive_expr: Case Verbatim Of List LBRACKET WILD End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 316, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern -## In state 315, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) +## In state 314, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern +## In state 313, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) ## interactive_expr: Case Verbatim Of List LBRACKET With ## -## Ends in an error in state: 310. +## Ends in an error in state: 308. ## ## injection(List,core_pattern) -> List LBRACKET . sep_or_term_list(core_pattern,SEMI) RBRACKET [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## injection(List,core_pattern) -> List LBRACKET . RBRACKET [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] @@ -331,7 +330,7 @@ interactive_expr: Case Verbatim Of List LBRACKET With interactive_expr: Case Verbatim Of List WILD RBRACKET ## -## Ends in an error in state: 324. +## Ends in an error in state: 322. ## ## injection(List,core_pattern) -> List sep_or_term_list(core_pattern,SEMI) . End [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -342,15 +341,15 @@ interactive_expr: Case Verbatim Of List WILD RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 316, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern -## In state 315, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) +## In state 314, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern +## In state 313, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) ## interactive_expr: Case Verbatim Of List WILD SEMI WILD SEMI With ## -## Ends in an error in state: 321. +## Ends in an error in state: 319. ## ## nsepseq(core_pattern,SEMI) -> core_pattern SEMI . nsepseq(core_pattern,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(core_pattern,SEMI)) -> core_pattern SEMI . seq(__anonymous_0(core_pattern,SEMI)) [ RBRACKET End ] @@ -363,7 +362,7 @@ interactive_expr: Case Verbatim Of List WILD SEMI WILD SEMI With interactive_expr: Case Verbatim Of List WILD SEMI WILD With ## -## Ends in an error in state: 320. +## Ends in an error in state: 318. ## ## nsepseq(core_pattern,SEMI) -> core_pattern . [ RBRACKET End ] ## nsepseq(core_pattern,SEMI) -> core_pattern . SEMI nsepseq(core_pattern,SEMI) [ RBRACKET End ] @@ -377,7 +376,7 @@ interactive_expr: Case Verbatim Of List WILD SEMI WILD With interactive_expr: Case Verbatim Of List WILD SEMI With ## -## Ends in an error in state: 317. +## Ends in an error in state: 315. ## ## nsepseq(core_pattern,SEMI) -> core_pattern SEMI . nsepseq(core_pattern,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(core_pattern,SEMI)) -> core_pattern SEMI . seq(__anonymous_0(core_pattern,SEMI)) [ RBRACKET End ] @@ -390,7 +389,7 @@ interactive_expr: Case Verbatim Of List WILD SEMI With interactive_expr: Case Verbatim Of List WILD With ## -## Ends in an error in state: 316. +## Ends in an error in state: 314. ## ## nsepseq(core_pattern,SEMI) -> core_pattern . [ RBRACKET End ] ## nsepseq(core_pattern,SEMI) -> core_pattern . SEMI nsepseq(core_pattern,SEMI) [ RBRACKET End ] @@ -404,7 +403,7 @@ interactive_expr: Case Verbatim Of List WILD With interactive_expr: Case Verbatim Of List With ## -## Ends in an error in state: 273. +## Ends in an error in state: 271. ## ## injection(List,core_pattern) -> List . sep_or_term_list(core_pattern,SEMI) End [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## injection(List,core_pattern) -> List . End [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] @@ -419,7 +418,7 @@ interactive_expr: Case Verbatim Of List With interactive_expr: Case Verbatim Of VBAR Block ## -## Ends in an error in state: 335. +## Ends in an error in state: 333. ## ## case(expr) -> Case expr Of option(VBAR) . cases(expr) End [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -431,7 +430,7 @@ interactive_expr: Case Verbatim Of VBAR Block interactive_expr: Case Verbatim Of WILD ARROW Bytes RBRACKET ## -## Ends in an error in state: 336. +## Ends in an error in state: 334. ## ## case(expr) -> Case expr Of option(VBAR) cases(expr) . End [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -442,26 +441,26 @@ interactive_expr: Case Verbatim Of WILD ARROW Bytes RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 328, spurious reduction of production case_clause(expr) -> pattern ARROW expr -## In state 332, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) -## In state 329, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 326, spurious reduction of production case_clause(expr) -> pattern ARROW expr +## In state 330, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) +## In state 327, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) ## interactive_expr: Case Verbatim Of WILD ARROW Bytes Type ## -## Ends in an error in state: 332. +## Ends in an error in state: 330. ## ## nsepseq(case_clause(expr),VBAR) -> case_clause(expr) . [ RBRACKET End ] ## nsepseq(case_clause(expr),VBAR) -> case_clause(expr) . VBAR nsepseq(case_clause(expr),VBAR) [ RBRACKET End ] @@ -473,24 +472,24 @@ interactive_expr: Case Verbatim Of WILD ARROW Bytes Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 328, spurious reduction of production case_clause(expr) -> pattern ARROW expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 326, spurious reduction of production case_clause(expr) -> pattern ARROW expr ## interactive_expr: Case Verbatim Of WILD ARROW Bytes VBAR With ## -## Ends in an error in state: 333. +## Ends in an error in state: 331. ## ## nsepseq(case_clause(expr),VBAR) -> case_clause(expr) VBAR . nsepseq(case_clause(expr),VBAR) [ RBRACKET End ] ## @@ -502,7 +501,7 @@ interactive_expr: Case Verbatim Of WILD ARROW Bytes VBAR With interactive_expr: Case Verbatim Of WILD ARROW With ## -## Ends in an error in state: 327. +## Ends in an error in state: 325. ## ## case_clause(expr) -> pattern ARROW . expr [ VBAR RBRACKET End ] ## @@ -514,7 +513,7 @@ interactive_expr: Case Verbatim Of WILD ARROW With interactive_expr: Case Verbatim Of WILD CONS WILD CONS With ## -## Ends in an error in state: 306. +## Ends in an error in state: 304. ## ## nsepseq(core_pattern,CONS) -> core_pattern CONS . nsepseq(core_pattern,CONS) [ RPAR ARROW ] ## @@ -526,7 +525,7 @@ interactive_expr: Case Verbatim Of WILD CONS WILD CONS With interactive_expr: Case Verbatim Of WILD CONS WILD With ## -## Ends in an error in state: 305. +## Ends in an error in state: 303. ## ## nsepseq(core_pattern,CONS) -> core_pattern . [ RPAR ARROW ] ## nsepseq(core_pattern,CONS) -> core_pattern . CONS nsepseq(core_pattern,CONS) [ RPAR ARROW ] @@ -539,7 +538,7 @@ interactive_expr: Case Verbatim Of WILD CONS WILD With interactive_expr: Case Verbatim Of WILD CONS With ## -## Ends in an error in state: 303. +## Ends in an error in state: 301. ## ## pattern -> core_pattern CONS . nsepseq(core_pattern,CONS) [ RPAR ARROW ] ## @@ -551,7 +550,7 @@ interactive_expr: Case Verbatim Of WILD CONS With interactive_expr: Case Verbatim Of WILD RPAR ## -## Ends in an error in state: 326. +## Ends in an error in state: 324. ## ## case_clause(expr) -> pattern . ARROW expr [ VBAR RBRACKET End ] ## @@ -562,14 +561,14 @@ interactive_expr: Case Verbatim Of WILD RPAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 302, spurious reduction of production pattern -> core_pattern +## In state 300, spurious reduction of production pattern -> core_pattern ## interactive_expr: Case Verbatim Of WILD With ## -## Ends in an error in state: 302. +## Ends in an error in state: 300. ## ## pattern -> core_pattern . [ RPAR ARROW ] ## pattern -> core_pattern . CONS nsepseq(core_pattern,CONS) [ RPAR ARROW ] @@ -582,7 +581,7 @@ interactive_expr: Case Verbatim Of WILD With interactive_expr: Case Verbatim Of With ## -## Ends in an error in state: 264. +## Ends in an error in state: 262. ## ## case(expr) -> Case expr Of . option(VBAR) cases(expr) End [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## case(expr) -> Case expr Of . LBRACKET option(VBAR) cases(expr) RBRACKET [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] @@ -595,7 +594,7 @@ interactive_expr: Case Verbatim Of With interactive_expr: Case Verbatim VBAR ## -## Ends in an error in state: 263. +## Ends in an error in state: 261. ## ## case(expr) -> Case expr . Of option(VBAR) cases(expr) End [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## case(expr) -> Case expr . Of LBRACKET option(VBAR) cases(expr) RBRACKET [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] @@ -607,23 +606,23 @@ interactive_expr: Case Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## interactive_expr: Case With ## -## Ends in an error in state: 137. +## Ends in an error in state: 135. ## ## case(expr) -> Case . expr Of option(VBAR) cases(expr) End [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## case(expr) -> Case . expr Of LBRACKET option(VBAR) cases(expr) RBRACKET [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] @@ -636,7 +635,7 @@ interactive_expr: Case With interactive_expr: Constr DOT And With ## -## Ends in an error in state: 178. +## Ends in an error in state: 176. ## ## core_expr -> module_field . [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## fun_call -> module_field . arguments [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -649,7 +648,7 @@ interactive_expr: Constr DOT And With interactive_expr: Constr DOT Ident DOT With ## -## Ends in an error in state: 126. +## Ends in an error in state: 124. ## ## projection -> Constr DOT Ident DOT . nsepseq(selection,DOT) [ With VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE LBRACKET GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] ## @@ -661,7 +660,7 @@ interactive_expr: Constr DOT Ident DOT With interactive_expr: Constr DOT Ident With ## -## Ends in an error in state: 125. +## Ends in an error in state: 123. ## ## module_fun -> Ident . [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE LBRACKET GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] @@ -674,7 +673,7 @@ interactive_expr: Constr DOT Ident With interactive_expr: Constr DOT With ## -## Ends in an error in state: 121. +## Ends in an error in state: 119. ## ## module_field -> Constr DOT . module_fun [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE LBRACKET GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] @@ -687,7 +686,7 @@ interactive_expr: Constr DOT With interactive_expr: Constr With ## -## Ends in an error in state: 120. +## Ends in an error in state: 118. ## ## core_expr -> Constr . arguments [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## core_expr -> Constr . [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -702,7 +701,7 @@ interactive_expr: Constr With interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON String Is With ## -## Ends in an error in state: 118. +## Ends in an error in state: 116. ## ## fun_expr -> Function parameters COLON type_expr Is . expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -714,7 +713,7 @@ interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON String Is Wit interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON String VBAR ## -## Ends in an error in state: 117. +## Ends in an error in state: 115. ## ## fun_expr -> Function parameters COLON type_expr . Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -734,7 +733,7 @@ interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON String VBAR interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON With ## -## Ends in an error in state: 116. +## Ends in an error in state: 114. ## ## fun_expr -> Function parameters COLON . type_expr Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -746,7 +745,7 @@ interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON With interactive_expr: Function LPAR Const Ident COLON Ident RPAR With ## -## Ends in an error in state: 115. +## Ends in an error in state: 113. ## ## fun_expr -> Function parameters . COLON type_expr Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -877,7 +876,7 @@ interactive_expr: Function LPAR With interactive_expr: Function With ## -## Ends in an error in state: 114. +## Ends in an error in state: 112. ## ## fun_expr -> Function . parameters COLON type_expr Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -889,7 +888,7 @@ interactive_expr: Function With interactive_expr: Ident DOT Ident ASS ## -## Ends in an error in state: 153. +## Ends in an error in state: 151. ## ## fun_call_or_par_or_projection -> projection . option(arguments) [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## path -> projection . [ With LBRACKET ] @@ -901,15 +900,15 @@ interactive_expr: Ident DOT Ident ASS ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 129, spurious reduction of production nsepseq(selection,DOT) -> selection -## In state 162, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) +## In state 127, spurious reduction of production nsepseq(selection,DOT) -> selection +## In state 160, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) ## interactive_expr: Ident DOT Int DOT With ## -## Ends in an error in state: 130. +## Ends in an error in state: 128. ## ## nsepseq(selection,DOT) -> selection DOT . nsepseq(selection,DOT) [ With VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE LBRACKET GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] ## @@ -921,7 +920,7 @@ interactive_expr: Ident DOT Int DOT With interactive_expr: Ident DOT Int While ## -## Ends in an error in state: 129. +## Ends in an error in state: 127. ## ## nsepseq(selection,DOT) -> selection . [ With VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE LBRACKET GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] ## nsepseq(selection,DOT) -> selection . DOT nsepseq(selection,DOT) [ With VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE LBRACKET GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] @@ -934,7 +933,7 @@ interactive_expr: Ident DOT Int While interactive_expr: Ident DOT With ## -## Ends in an error in state: 161. +## Ends in an error in state: 159. ## ## projection -> Ident DOT . nsepseq(selection,DOT) [ With VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE LBRACKET GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] ## @@ -946,7 +945,7 @@ interactive_expr: Ident DOT With interactive_expr: Ident LBRACKET Verbatim VBAR ## -## Ends in an error in state: 245. +## Ends in an error in state: 243. ## ## brackets(expr) -> LBRACKET expr . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] ## @@ -957,23 +956,23 @@ interactive_expr: Ident LBRACKET Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## interactive_expr: Ident LBRACKET With ## -## Ends in an error in state: 244. +## Ends in an error in state: 242. ## ## brackets(expr) -> LBRACKET . expr RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ASS ARROW ] ## @@ -985,7 +984,7 @@ interactive_expr: Ident LBRACKET With interactive_expr: Ident LPAR Verbatim COMMA With ## -## Ends in an error in state: 343. +## Ends in an error in state: 341. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] ## @@ -997,7 +996,7 @@ interactive_expr: Ident LPAR Verbatim COMMA With interactive_expr: Ident LPAR Verbatim VBAR ## -## Ends in an error in state: 342. +## Ends in an error in state: 340. ## ## nsepseq(expr,COMMA) -> expr . [ RPAR ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RPAR ] @@ -1009,23 +1008,23 @@ interactive_expr: Ident LPAR Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## interactive_expr: Ident LPAR With ## -## Ends in an error in state: 113. +## Ends in an error in state: 111. ## ## par(nsepseq(expr,COMMA)) -> LPAR . nsepseq(expr,COMMA) RPAR [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1037,7 +1036,7 @@ interactive_expr: Ident LPAR With interactive_expr: Ident While ## -## Ends in an error in state: 112. +## Ends in an error in state: 110. ## ## core_expr -> Ident . [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## fun_call -> Ident . arguments [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -1052,7 +1051,7 @@ interactive_expr: Ident While interactive_expr: Ident With Record Constr DOT Ident With ## -## Ends in an error in state: 165. +## Ends in an error in state: 163. ## ## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else EQ ] ## @@ -1064,7 +1063,7 @@ interactive_expr: Ident With Record Constr DOT Ident With interactive_expr: Ident With Record Constr DOT With ## -## Ends in an error in state: 164. +## Ends in an error in state: 162. ## ## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else EQ ] ## @@ -1076,7 +1075,7 @@ interactive_expr: Ident With Record Constr DOT With interactive_expr: Ident With Record Constr With ## -## Ends in an error in state: 163. +## Ends in an error in state: 161. ## ## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else EQ ] ## @@ -1088,7 +1087,7 @@ interactive_expr: Ident With Record Constr With interactive_expr: Ident With Record Ident EQ Bytes RBRACKET ## -## Ends in an error in state: 241. +## Ends in an error in state: 239. ## ## ne_injection(Record,field_path_assignment) -> Record sep_or_term_list(field_path_assignment,SEMI) . End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1099,26 +1098,26 @@ interactive_expr: Ident With Record Ident EQ Bytes RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 196, spurious reduction of production field_path_assignment -> path EQ expr -## In state 234, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment -## In state 233, spurious reduction of production sep_or_term_list(field_path_assignment,SEMI) -> nsepseq(field_path_assignment,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 194, spurious reduction of production field_path_assignment -> path EQ expr +## In state 232, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment +## In state 231, spurious reduction of production sep_or_term_list(field_path_assignment,SEMI) -> nsepseq(field_path_assignment,SEMI) ## interactive_expr: Ident With Record Ident EQ Bytes SEMI Ident EQ Bytes SEMI With ## -## Ends in an error in state: 239. +## Ends in an error in state: 237. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACKET End ] @@ -1131,7 +1130,7 @@ interactive_expr: Ident With Record Ident EQ Bytes SEMI Ident EQ Bytes SEMI With interactive_expr: Ident With Record Ident EQ Bytes SEMI Ident EQ Bytes VBAR ## -## Ends in an error in state: 238. +## Ends in an error in state: 236. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACKET End ] ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACKET End ] @@ -1144,24 +1143,24 @@ interactive_expr: Ident With Record Ident EQ Bytes SEMI Ident EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 196, spurious reduction of production field_path_assignment -> path EQ expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 194, spurious reduction of production field_path_assignment -> path EQ expr ## interactive_expr: Ident With Record Ident EQ Bytes SEMI With ## -## Ends in an error in state: 235. +## Ends in an error in state: 233. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment SEMI . nsepseq(field_path_assignment,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(field_path_assignment,SEMI)) -> field_path_assignment SEMI . seq(__anonymous_0(field_path_assignment,SEMI)) [ RBRACKET End ] @@ -1174,7 +1173,7 @@ interactive_expr: Ident With Record Ident EQ Bytes SEMI With interactive_expr: Ident With Record Ident EQ Bytes VBAR ## -## Ends in an error in state: 234. +## Ends in an error in state: 232. ## ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . [ RBRACKET End ] ## nsepseq(field_path_assignment,SEMI) -> field_path_assignment . SEMI nsepseq(field_path_assignment,SEMI) [ RBRACKET End ] @@ -1187,24 +1186,24 @@ interactive_expr: Ident With Record Ident EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 196, spurious reduction of production field_path_assignment -> path EQ expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 194, spurious reduction of production field_path_assignment -> path EQ expr ## interactive_expr: Ident With Record Ident EQ With ## -## Ends in an error in state: 170. +## Ends in an error in state: 168. ## ## field_path_assignment -> path EQ . expr [ SEMI RBRACKET End ] ## @@ -1216,7 +1215,7 @@ interactive_expr: Ident With Record Ident EQ With interactive_expr: Ident With Record Ident While ## -## Ends in an error in state: 160. +## Ends in an error in state: 158. ## ## path -> Ident . [ With VBAR SEMI RBRACKET RBRACE End Else EQ ] ## projection -> Ident . DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else EQ ] @@ -1229,7 +1228,7 @@ interactive_expr: Ident With Record Ident While interactive_expr: Ident With Record Ident With ## -## Ends in an error in state: 169. +## Ends in an error in state: 167. ## ## field_path_assignment -> path . EQ expr [ SEMI RBRACKET End ] ## @@ -1240,14 +1239,14 @@ interactive_expr: Ident With Record Ident With ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 160, spurious reduction of production path -> Ident +## In state 158, spurious reduction of production path -> Ident ## interactive_expr: Ident With Record LBRACKET Ident EQ Bytes End ## -## Ends in an error in state: 166. +## Ends in an error in state: 164. ## ## ne_injection(Record,field_path_assignment) -> Record LBRACKET sep_or_term_list(field_path_assignment,SEMI) . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1258,26 +1257,26 @@ interactive_expr: Ident With Record LBRACKET Ident EQ Bytes End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 196, spurious reduction of production field_path_assignment -> path EQ expr -## In state 234, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment -## In state 233, spurious reduction of production sep_or_term_list(field_path_assignment,SEMI) -> nsepseq(field_path_assignment,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 194, spurious reduction of production field_path_assignment -> path EQ expr +## In state 232, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment +## In state 231, spurious reduction of production sep_or_term_list(field_path_assignment,SEMI) -> nsepseq(field_path_assignment,SEMI) ## interactive_expr: Ident With Record LBRACKET With ## -## Ends in an error in state: 159. +## Ends in an error in state: 157. ## ## ne_injection(Record,field_path_assignment) -> Record LBRACKET . sep_or_term_list(field_path_assignment,SEMI) RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1289,7 +1288,7 @@ interactive_expr: Ident With Record LBRACKET With interactive_expr: Ident With Record With ## -## Ends in an error in state: 158. +## Ends in an error in state: 156. ## ## ne_injection(Record,field_path_assignment) -> Record . sep_or_term_list(field_path_assignment,SEMI) End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## ne_injection(Record,field_path_assignment) -> Record . LBRACKET sep_or_term_list(field_path_assignment,SEMI) RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -1302,7 +1301,7 @@ interactive_expr: Ident With Record With interactive_expr: Ident With With ## -## Ends in an error in state: 157. +## Ends in an error in state: 155. ## ## update_record -> path With . ne_injection(Record,field_path_assignment) [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1314,7 +1313,7 @@ interactive_expr: Ident With With interactive_expr: If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 350. +## Ends in an error in state: 348. ## ## cond_expr -> If expr Then expr option(SEMI) Else . expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -1326,7 +1325,7 @@ interactive_expr: If Verbatim Then Verbatim Else With interactive_expr: If Verbatim Then Verbatim SEMI EQ ## -## Ends in an error in state: 349. +## Ends in an error in state: 347. ## ## cond_expr -> If expr Then expr option(SEMI) . Else expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -1338,7 +1337,7 @@ interactive_expr: If Verbatim Then Verbatim SEMI EQ interactive_expr: If Verbatim Then Verbatim VBAR ## -## Ends in an error in state: 348. +## Ends in an error in state: 346. ## ## cond_expr -> If expr Then expr . option(SEMI) Else expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -1349,23 +1348,23 @@ interactive_expr: If Verbatim Then Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## interactive_expr: If Verbatim Then With ## -## Ends in an error in state: 347. +## Ends in an error in state: 345. ## ## cond_expr -> If expr Then . expr option(SEMI) Else expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -1377,7 +1376,7 @@ interactive_expr: If Verbatim Then With interactive_expr: If Verbatim VBAR ## -## Ends in an error in state: 346. +## Ends in an error in state: 344. ## ## cond_expr -> If expr . Then expr option(SEMI) Else expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -1388,23 +1387,23 @@ interactive_expr: If Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## interactive_expr: If With ## -## Ends in an error in state: 111. +## Ends in an error in state: 109. ## ## cond_expr -> If . expr Then expr option(SEMI) Else expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## @@ -1414,72 +1413,9 @@ interactive_expr: If With -interactive_expr: LBRACKET PERCENT Constr Verbatim VBAR -## -## Ends in an error in state: 352. -## -## code_insert_expr -> LBRACKET PERCENT Constr expr . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT Constr 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 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## - - - -interactive_expr: LBRACKET PERCENT Constr With -## -## Ends in an error in state: 109. -## -## code_insert_expr -> LBRACKET PERCENT Constr . expr RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT Constr -## - - - -interactive_expr: LBRACKET PERCENT With -## -## Ends in an error in state: 108. -## -## code_insert_expr -> LBRACKET PERCENT . Constr expr RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT -## - - - -interactive_expr: LBRACKET With -## -## Ends in an error in state: 107. -## -## code_insert_expr -> LBRACKET . PERCENT Constr expr RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] -## -## The known suffix of the stack is as follows: -## LBRACKET -## - - - interactive_expr: LPAR Bytes RPAR With ## -## Ends in an error in state: 172. +## Ends in an error in state: 170. ## ## fun_call_or_par_or_projection -> par(expr) . option(arguments) [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1491,7 +1427,7 @@ interactive_expr: LPAR Bytes RPAR With interactive_expr: LPAR If Verbatim Then Bytes Else Bytes VBAR ## -## Ends in an error in state: 356. +## Ends in an error in state: 352. ## ## par(expr) -> LPAR expr . RPAR [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## tuple_comp -> expr . COMMA nsepseq(expr,COMMA) [ RPAR ] @@ -1503,25 +1439,25 @@ interactive_expr: LPAR If Verbatim Then Bytes Else Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 351, spurious reduction of production cond_expr -> If expr Then expr option(SEMI) Else expr -## In state 230, spurious reduction of production expr -> cond_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 349, spurious reduction of production cond_expr -> If expr Then expr option(SEMI) Else expr +## In state 228, spurious reduction of production expr -> cond_expr ## interactive_expr: LPAR Verbatim COLON Ident VBAR ## -## Ends in an error in state: 363. +## Ends in an error in state: 359. ## ## par(annot_expr) -> LPAR annot_expr . RPAR [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1536,14 +1472,14 @@ interactive_expr: LPAR Verbatim COLON Ident VBAR ## In state 30, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 44, spurious reduction of production type_expr -> fun_type -## In state 362, spurious reduction of production annot_expr -> disj_expr COLON type_expr +## In state 358, spurious reduction of production annot_expr -> disj_expr COLON type_expr ## interactive_expr: LPAR Verbatim COLON With ## -## Ends in an error in state: 361. +## Ends in an error in state: 357. ## ## annot_expr -> disj_expr COLON . type_expr [ RPAR ] ## @@ -1555,7 +1491,7 @@ interactive_expr: LPAR Verbatim COLON With interactive_expr: LPAR Verbatim COMMA With ## -## Ends in an error in state: 358. +## Ends in an error in state: 354. ## ## tuple_comp -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] ## @@ -1567,7 +1503,7 @@ interactive_expr: LPAR Verbatim COMMA With interactive_expr: LPAR Verbatim VBAR ## -## Ends in an error in state: 360. +## Ends in an error in state: 356. ## ## annot_expr -> disj_expr . COLON type_expr [ RPAR ] ## disj_expr -> disj_expr . Or conj_expr [ RPAR Or COMMA COLON ] @@ -1580,22 +1516,22 @@ interactive_expr: LPAR Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr ## interactive_expr: LPAR With ## -## Ends in an error in state: 106. +## Ends in an error in state: 107. ## ## par(annot_expr) -> LPAR . annot_expr RPAR [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## par(expr) -> LPAR . expr RPAR [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LPAR LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -1607,9 +1543,48 @@ interactive_expr: LPAR With +interactive_expr: Lang Verbatim VBAR +## +## Ends in an error in state: 361. +## +## code_inj -> Lang expr . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] +## +## The known suffix of the stack is as follows: +## Lang 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 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## + + + +interactive_expr: Lang With +## +## Ends in an error in state: 106. +## +## code_inj -> Lang . expr RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] +## +## The known suffix of the stack is as follows: +## Lang +## + + + interactive_expr: List LBRACKET Verbatim End ## -## Ends in an error in state: 367. +## Ends in an error in state: 365. ## ## injection(List,expr) -> List LBRACKET sep_or_term_list(expr,SEMI) . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1620,27 +1595,26 @@ interactive_expr: List LBRACKET Verbatim End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 371, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 370, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 369, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 368, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## interactive_expr: List LBRACKET With ## -## Ends in an error in state: 365. +## Ends in an error in state: 363. ## -## code_insert_expr -> LBRACKET . PERCENT Constr expr RBRACKET [ TIMES SLASH SEMI PLUS Or NE Mod MINUS LT LE GT GE End EQ Contains CONS CAT And ] ## injection(List,expr) -> List LBRACKET . sep_or_term_list(expr,SEMI) RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## injection(List,expr) -> List LBRACKET . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1652,7 +1626,7 @@ interactive_expr: List LBRACKET With interactive_expr: List Verbatim RBRACKET ## -## Ends in an error in state: 379. +## Ends in an error in state: 377. ## ## injection(List,expr) -> List sep_or_term_list(expr,SEMI) . End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1663,18 +1637,18 @@ interactive_expr: List Verbatim RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 371, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 370, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 369, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 368, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## @@ -1708,7 +1682,7 @@ interactive_expr: MINUS With interactive_expr: Map LBRACKET Verbatim ARROW Bytes End ## -## Ends in an error in state: 384. +## Ends in an error in state: 382. ## ## injection(Map,binding) -> Map LBRACKET sep_or_term_list(binding,SEMI) . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1719,28 +1693,27 @@ interactive_expr: Map LBRACKET Verbatim ARROW Bytes End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr -## In state 253, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 249, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr +## In state 251, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 247, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## interactive_expr: Map LBRACKET With ## -## Ends in an error in state: 382. +## Ends in an error in state: 380. ## -## code_insert_expr -> LBRACKET . PERCENT Constr expr RBRACKET [ TIMES SLASH PLUS Or NE Mod MINUS LT LE GT GE EQ Contains CONS CAT And ARROW ] ## injection(Map,binding) -> Map LBRACKET . sep_or_term_list(binding,SEMI) RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## injection(Map,binding) -> Map LBRACKET . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1752,7 +1725,7 @@ interactive_expr: Map LBRACKET With interactive_expr: Map Verbatim ARROW Bytes RBRACKET ## -## Ends in an error in state: 387. +## Ends in an error in state: 385. ## ## injection(Map,binding) -> Map sep_or_term_list(binding,SEMI) . End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1763,26 +1736,26 @@ interactive_expr: Map Verbatim ARROW Bytes RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr -## In state 253, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 249, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr +## In state 251, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 247, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## interactive_expr: Map Verbatim ARROW Bytes SEMI Verbatim ARROW Bytes SEMI With ## -## Ends in an error in state: 258. +## Ends in an error in state: 256. ## ## nsepseq(binding,SEMI) -> binding SEMI . nsepseq(binding,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(binding,SEMI)) -> binding SEMI . seq(__anonymous_0(binding,SEMI)) [ RBRACKET End ] @@ -1795,7 +1768,7 @@ interactive_expr: Map Verbatim ARROW Bytes SEMI Verbatim ARROW Bytes SEMI With interactive_expr: Map Verbatim ARROW Bytes SEMI Verbatim ARROW Bytes VBAR ## -## Ends in an error in state: 257. +## Ends in an error in state: 255. ## ## nsepseq(binding,SEMI) -> binding . [ RBRACKET End ] ## nsepseq(binding,SEMI) -> binding . SEMI nsepseq(binding,SEMI) [ RBRACKET End ] @@ -1808,24 +1781,24 @@ interactive_expr: Map Verbatim ARROW Bytes SEMI Verbatim ARROW Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr ## interactive_expr: Map Verbatim ARROW Bytes SEMI With ## -## Ends in an error in state: 254. +## Ends in an error in state: 252. ## ## nsepseq(binding,SEMI) -> binding SEMI . nsepseq(binding,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(binding,SEMI)) -> binding SEMI . seq(__anonymous_0(binding,SEMI)) [ RBRACKET End ] @@ -1838,7 +1811,7 @@ interactive_expr: Map Verbatim ARROW Bytes SEMI With interactive_expr: Map Verbatim ARROW Bytes VBAR ## -## Ends in an error in state: 253. +## Ends in an error in state: 251. ## ## nsepseq(binding,SEMI) -> binding . [ RBRACKET End ] ## nsepseq(binding,SEMI) -> binding . SEMI nsepseq(binding,SEMI) [ RBRACKET End ] @@ -1851,24 +1824,24 @@ interactive_expr: Map Verbatim ARROW Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr ## interactive_expr: Map Verbatim ARROW With ## -## Ends in an error in state: 251. +## Ends in an error in state: 249. ## ## binding -> expr ARROW . expr [ SEMI RBRACKET End ] ## @@ -1880,7 +1853,7 @@ interactive_expr: Map Verbatim ARROW With interactive_expr: Map Verbatim VBAR ## -## Ends in an error in state: 250. +## Ends in an error in state: 248. ## ## binding -> expr . ARROW expr [ SEMI RBRACKET End ] ## @@ -1891,16 +1864,16 @@ interactive_expr: Map Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## @@ -1922,7 +1895,7 @@ interactive_expr: Map With interactive_expr: Not Bytes With ## -## Ends in an error in state: 175. +## Ends in an error in state: 173. ## ## add_expr -> mult_expr . [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## mult_expr -> mult_expr . TIMES unary_expr [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -1949,7 +1922,7 @@ interactive_expr: Not With interactive_expr: Record Ident EQ Bytes RBRACKET ## -## Ends in an error in state: 402. +## Ends in an error in state: 400. ## ## record_expr -> Record sep_or_term_list(field_assignment,SEMI) . End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -1960,26 +1933,26 @@ interactive_expr: Record Ident EQ Bytes RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 390, spurious reduction of production field_assignment -> Ident EQ expr -## In state 395, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 394, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 388, spurious reduction of production field_assignment -> Ident EQ expr +## In state 393, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 392, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) ## interactive_expr: Record Ident EQ Bytes SEMI Ident EQ Bytes SEMI With ## -## Ends in an error in state: 400. +## Ends in an error in state: 398. ## ## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACKET End ] @@ -1992,7 +1965,7 @@ interactive_expr: Record Ident EQ Bytes SEMI Ident EQ Bytes SEMI With interactive_expr: Record Ident EQ Bytes SEMI Ident EQ Bytes VBAR ## -## Ends in an error in state: 399. +## Ends in an error in state: 397. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACKET End ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACKET End ] @@ -2005,24 +1978,24 @@ interactive_expr: Record Ident EQ Bytes SEMI Ident EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 390, spurious reduction of production field_assignment -> Ident EQ expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 388, spurious reduction of production field_assignment -> Ident EQ expr ## interactive_expr: Record Ident EQ Bytes SEMI With ## -## Ends in an error in state: 396. +## Ends in an error in state: 394. ## ## nsepseq(field_assignment,SEMI) -> field_assignment SEMI . nsepseq(field_assignment,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(field_assignment,SEMI)) -> field_assignment SEMI . seq(__anonymous_0(field_assignment,SEMI)) [ RBRACKET End ] @@ -2035,7 +2008,7 @@ interactive_expr: Record Ident EQ Bytes SEMI With interactive_expr: Record Ident EQ Bytes VBAR ## -## Ends in an error in state: 395. +## Ends in an error in state: 393. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACKET End ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACKET End ] @@ -2048,17 +2021,17 @@ interactive_expr: Record Ident EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 390, spurious reduction of production field_assignment -> Ident EQ expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 388, spurious reduction of production field_assignment -> Ident EQ expr ## @@ -2089,7 +2062,7 @@ interactive_expr: Record Ident With interactive_expr: Record LBRACKET Ident EQ Bytes End ## -## Ends in an error in state: 391. +## Ends in an error in state: 389. ## ## record_expr -> Record LBRACKET sep_or_term_list(field_assignment,SEMI) . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2100,19 +2073,19 @@ interactive_expr: Record LBRACKET Ident EQ Bytes End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 390, spurious reduction of production field_assignment -> Ident EQ expr -## In state 395, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 394, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 388, spurious reduction of production field_assignment -> Ident EQ expr +## In state 393, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 392, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) ## @@ -2144,7 +2117,7 @@ interactive_expr: Record With interactive_expr: Set LBRACKET Verbatim End ## -## Ends in an error in state: 406. +## Ends in an error in state: 404. ## ## injection(Set,expr) -> Set LBRACKET sep_or_term_list(expr,SEMI) . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2155,27 +2128,26 @@ interactive_expr: Set LBRACKET Verbatim End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 371, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 370, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 369, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 368, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## interactive_expr: Set LBRACKET With ## -## Ends in an error in state: 404. +## Ends in an error in state: 402. ## -## code_insert_expr -> LBRACKET . PERCENT Constr expr RBRACKET [ TIMES SLASH SEMI PLUS Or NE Mod MINUS LT LE GT GE End EQ Contains CONS CAT And ] ## injection(Set,expr) -> Set LBRACKET . sep_or_term_list(expr,SEMI) RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## injection(Set,expr) -> Set LBRACKET . RBRACKET [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2187,7 +2159,7 @@ interactive_expr: Set LBRACKET With interactive_expr: Set Verbatim RBRACKET ## -## Ends in an error in state: 409. +## Ends in an error in state: 407. ## ## injection(Set,expr) -> Set sep_or_term_list(expr,SEMI) . End [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Contains Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2198,25 +2170,25 @@ interactive_expr: Set Verbatim RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 371, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 370, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 369, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 368, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## interactive_expr: Set Verbatim SEMI Verbatim SEMI With ## -## Ends in an error in state: 376. +## Ends in an error in state: 374. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] @@ -2229,7 +2201,7 @@ interactive_expr: Set Verbatim SEMI Verbatim SEMI With interactive_expr: Set Verbatim SEMI Verbatim VBAR ## -## Ends in an error in state: 375. +## Ends in an error in state: 373. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET End ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET End ] @@ -2242,23 +2214,23 @@ interactive_expr: Set Verbatim SEMI Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## interactive_expr: Set Verbatim SEMI With ## -## Ends in an error in state: 372. +## Ends in an error in state: 370. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] @@ -2271,7 +2243,7 @@ interactive_expr: Set Verbatim SEMI With interactive_expr: Set Verbatim VBAR ## -## Ends in an error in state: 371. +## Ends in an error in state: 369. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET End ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET End ] @@ -2284,16 +2256,16 @@ interactive_expr: Set Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## @@ -2315,7 +2287,7 @@ interactive_expr: Set With interactive_expr: Verbatim And With ## -## Ends in an error in state: 227. +## Ends in an error in state: 225. ## ## conj_expr -> conj_expr And . set_membership [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of Function From End Else EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2327,7 +2299,7 @@ interactive_expr: Verbatim And With interactive_expr: Verbatim CAT With ## -## Ends in an error in state: 203. +## Ends in an error in state: 201. ## ## cat_expr -> cons_expr CAT . cat_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2339,7 +2311,7 @@ interactive_expr: Verbatim CAT With interactive_expr: Verbatim COLON ## -## Ends in an error in state: 197. +## Ends in an error in state: 195. ## ## disj_expr -> disj_expr . Or conj_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## expr -> disj_expr . [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] @@ -2351,22 +2323,22 @@ interactive_expr: Verbatim COLON ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr ## interactive_expr: Verbatim CONS With ## -## Ends in an error in state: 210. +## Ends in an error in state: 208. ## ## cons_expr -> add_expr CONS . cons_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2378,7 +2350,7 @@ interactive_expr: Verbatim CONS With interactive_expr: Verbatim Contains With ## -## Ends in an error in state: 200. +## Ends in an error in state: 198. ## ## set_membership -> core_expr Contains . set_membership [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of Function From End Else EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2390,7 +2362,7 @@ interactive_expr: Verbatim Contains With interactive_expr: Verbatim EQ With ## -## Ends in an error in state: 223. +## Ends in an error in state: 221. ## ## comp_expr -> comp_expr EQ . cat_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2402,7 +2374,7 @@ interactive_expr: Verbatim EQ With interactive_expr: Verbatim GE With ## -## Ends in an error in state: 221. +## Ends in an error in state: 219. ## ## comp_expr -> comp_expr GE . cat_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2414,7 +2386,7 @@ interactive_expr: Verbatim GE With interactive_expr: Verbatim GT With ## -## Ends in an error in state: 219. +## Ends in an error in state: 217. ## ## comp_expr -> comp_expr GT . cat_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2426,7 +2398,7 @@ interactive_expr: Verbatim GT With interactive_expr: Verbatim LE With ## -## Ends in an error in state: 217. +## Ends in an error in state: 215. ## ## comp_expr -> comp_expr LE . cat_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2438,7 +2410,7 @@ interactive_expr: Verbatim LE With interactive_expr: Verbatim LT With ## -## Ends in an error in state: 215. +## Ends in an error in state: 213. ## ## comp_expr -> comp_expr LT . cat_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2450,7 +2422,7 @@ interactive_expr: Verbatim LT With interactive_expr: Verbatim MINUS Verbatim With ## -## Ends in an error in state: 209. +## Ends in an error in state: 207. ## ## add_expr -> add_expr MINUS mult_expr . [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## mult_expr -> mult_expr . TIMES unary_expr [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -2465,7 +2437,7 @@ interactive_expr: Verbatim MINUS Verbatim With interactive_expr: Verbatim MINUS With ## -## Ends in an error in state: 208. +## Ends in an error in state: 206. ## ## add_expr -> add_expr MINUS . mult_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2477,7 +2449,7 @@ interactive_expr: Verbatim MINUS With interactive_expr: Verbatim Mod With ## -## Ends in an error in state: 193. +## Ends in an error in state: 191. ## ## mult_expr -> mult_expr Mod . unary_expr [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2489,7 +2461,7 @@ interactive_expr: Verbatim Mod With interactive_expr: Verbatim NE With ## -## Ends in an error in state: 213. +## Ends in an error in state: 211. ## ## comp_expr -> comp_expr NE . cat_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of NE LT LE GT GE Function From End Else EQ EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## @@ -2501,7 +2473,7 @@ interactive_expr: Verbatim NE With interactive_expr: Verbatim Or With ## -## Ends in an error in state: 198. +## Ends in an error in state: 196. ## ## disj_expr -> disj_expr Or . conj_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of Function From End Else EOF Const COMMA COLON Block Begin Attributes ARROW ] ## @@ -2513,7 +2485,7 @@ interactive_expr: Verbatim Or With interactive_expr: Verbatim PLUS Verbatim With ## -## Ends in an error in state: 207. +## Ends in an error in state: 205. ## ## add_expr -> add_expr PLUS mult_expr . [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## mult_expr -> mult_expr . TIMES unary_expr [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -2528,7 +2500,7 @@ interactive_expr: Verbatim PLUS Verbatim With interactive_expr: Verbatim PLUS With ## -## Ends in an error in state: 206. +## Ends in an error in state: 204. ## ## add_expr -> add_expr PLUS . mult_expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2540,7 +2512,7 @@ interactive_expr: Verbatim PLUS With interactive_expr: Verbatim SLASH With ## -## Ends in an error in state: 191. +## Ends in an error in state: 189. ## ## mult_expr -> mult_expr SLASH . unary_expr [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2552,7 +2524,7 @@ interactive_expr: Verbatim SLASH With interactive_expr: Verbatim TIMES With ## -## Ends in an error in state: 176. +## Ends in an error in state: 174. ## ## mult_expr -> mult_expr TIMES . unary_expr [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] ## @@ -2564,7 +2536,7 @@ interactive_expr: Verbatim TIMES With interactive_expr: Verbatim VBAR ## -## Ends in an error in state: 606. +## Ends in an error in state: 604. ## ## interactive_expr -> expr . EOF [ # ] ## @@ -2575,23 +2547,23 @@ interactive_expr: Verbatim VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## interactive_expr: Verbatim With ## -## Ends in an error in state: 199. +## Ends in an error in state: 197. ## ## set_membership -> core_expr . Contains set_membership [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Or Of Function From End Else EOF Const COMMA COLON Block Begin Attributes And ARROW ] ## unary_expr -> core_expr . [ VBAR Type To Then TIMES Step SLASH SEMI Recursive RPAR RBRACKET RBRACE PLUS Or Of NE Mod MINUS LT LE GT GE Function From End Else EQ EOF Const CONS COMMA COLON CAT Block Begin Attributes And ARROW ] @@ -2604,7 +2576,7 @@ interactive_expr: Verbatim With interactive_expr: With ## -## Ends in an error in state: 604. +## Ends in an error in state: 602. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -2616,7 +2588,7 @@ interactive_expr: With contract: Attributes LBRACKET String End ## -## Ends in an error in state: 550. +## Ends in an error in state: 548. ## ## ne_injection(Attributes,String) -> Attributes LBRACKET sep_or_term_list(String,SEMI) . RBRACKET [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2627,15 +2599,15 @@ contract: Attributes LBRACKET String End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 542, spurious reduction of production nsepseq(String,SEMI) -> String -## In state 553, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) +## In state 540, spurious reduction of production nsepseq(String,SEMI) -> String +## In state 551, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) ## contract: Attributes LBRACKET With ## -## Ends in an error in state: 549. +## Ends in an error in state: 547. ## ## ne_injection(Attributes,String) -> Attributes LBRACKET . sep_or_term_list(String,SEMI) RBRACKET [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2647,7 +2619,7 @@ contract: Attributes LBRACKET With contract: Attributes String End Attributes String End SEMI With ## -## Ends in an error in state: 599. +## Ends in an error in state: 597. ## ## seq(declaration) -> declaration . seq(declaration) [ EOF ] ## @@ -2659,7 +2631,7 @@ contract: Attributes String End Attributes String End SEMI With contract: Attributes String End SEMI With ## -## Ends in an error in state: 597. +## Ends in an error in state: 595. ## ## nseq(declaration) -> declaration . seq(declaration) [ EOF ] ## @@ -2671,7 +2643,7 @@ contract: Attributes String End SEMI With contract: Attributes String End With ## -## Ends in an error in state: 592. +## Ends in an error in state: 590. ## ## attr_decl -> open_attr_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -2683,7 +2655,7 @@ contract: Attributes String End With contract: Attributes String RBRACKET ## -## Ends in an error in state: 554. +## Ends in an error in state: 552. ## ## ne_injection(Attributes,String) -> Attributes sep_or_term_list(String,SEMI) . End [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2694,15 +2666,15 @@ contract: Attributes String RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 542, spurious reduction of production nsepseq(String,SEMI) -> String -## In state 553, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) +## In state 540, spurious reduction of production nsepseq(String,SEMI) -> String +## In state 551, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) ## contract: Attributes String SEMI String SEMI With ## -## Ends in an error in state: 545. +## Ends in an error in state: 543. ## ## nsepseq(String,SEMI) -> String SEMI . nsepseq(String,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(String,SEMI)) -> String SEMI . seq(__anonymous_0(String,SEMI)) [ RBRACKET End ] @@ -2715,7 +2687,7 @@ contract: Attributes String SEMI String SEMI With contract: Attributes String SEMI String With ## -## Ends in an error in state: 544. +## Ends in an error in state: 542. ## ## nsepseq(String,SEMI) -> String . [ RBRACKET End ] ## nsepseq(String,SEMI) -> String . SEMI nsepseq(String,SEMI) [ RBRACKET End ] @@ -2729,7 +2701,7 @@ contract: Attributes String SEMI String With contract: Attributes String SEMI With ## -## Ends in an error in state: 543. +## Ends in an error in state: 541. ## ## nsepseq(String,SEMI) -> String SEMI . nsepseq(String,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(String,SEMI)) -> String SEMI . seq(__anonymous_0(String,SEMI)) [ RBRACKET End ] @@ -2742,7 +2714,7 @@ contract: Attributes String SEMI With contract: Attributes String With ## -## Ends in an error in state: 542. +## Ends in an error in state: 540. ## ## nsepseq(String,SEMI) -> String . [ RBRACKET End ] ## nsepseq(String,SEMI) -> String . SEMI nsepseq(String,SEMI) [ RBRACKET End ] @@ -2756,7 +2728,7 @@ contract: Attributes String With contract: Attributes With ## -## Ends in an error in state: 541. +## Ends in an error in state: 539. ## ## ne_injection(Attributes,String) -> Attributes . sep_or_term_list(String,SEMI) End [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ne_injection(Attributes,String) -> Attributes . LBRACKET sep_or_term_list(String,SEMI) RBRACKET [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -2769,7 +2741,7 @@ contract: Attributes With contract: Const Ident COLON Ident EQ Bytes VBAR ## -## Ends in an error in state: 590. +## Ends in an error in state: 588. ## ## const_decl -> open_const_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -2780,25 +2752,25 @@ contract: Const Ident COLON Ident EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 498, spurious reduction of production unqualified_decl(EQ) -> Ident COLON type_expr EQ expr -## In state 499, spurious reduction of production open_const_decl -> Const unqualified_decl(EQ) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 496, spurious reduction of production unqualified_decl(EQ) -> Ident COLON type_expr EQ expr +## In state 497, spurious reduction of production open_const_decl -> Const unqualified_decl(EQ) ## contract: Const Ident COLON String EQ With ## -## Ends in an error in state: 497. +## Ends in an error in state: 495. ## ## unqualified_decl(EQ) -> Ident COLON type_expr EQ . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2810,7 +2782,7 @@ contract: Const Ident COLON String EQ With contract: Const Ident COLON String VBAR ## -## Ends in an error in state: 496. +## Ends in an error in state: 494. ## ## unqualified_decl(EQ) -> Ident COLON type_expr . EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2830,7 +2802,7 @@ contract: Const Ident COLON String VBAR contract: Const Ident COLON With ## -## Ends in an error in state: 495. +## Ends in an error in state: 493. ## ## unqualified_decl(EQ) -> Ident COLON . type_expr EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2842,7 +2814,7 @@ contract: Const Ident COLON With contract: Const Ident With ## -## Ends in an error in state: 494. +## Ends in an error in state: 492. ## ## unqualified_decl(EQ) -> Ident . COLON type_expr EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2854,7 +2826,7 @@ contract: Const Ident With contract: Const With ## -## Ends in an error in state: 493. +## Ends in an error in state: 491. ## ## open_const_decl -> Const . unqualified_decl(EQ) [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2866,7 +2838,7 @@ contract: Const With contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Bytes VBAR ## -## Ends in an error in state: 588. +## Ends in an error in state: 586. ## ## fun_decl -> open_fun_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -2877,24 +2849,24 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Bytes ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 466, spurious reduction of production open_fun_decl -> Function Ident parameters COLON type_expr Is expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 464, spurious reduction of production open_fun_decl -> Function Ident parameters COLON type_expr Is expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of LBRACKET VBAR Block ## -## Ends in an error in state: 504. +## Ends in an error in state: 502. ## ## case(if_clause) -> Case expr Of LBRACKET option(VBAR) . cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2906,7 +2878,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of LBRACKET WILD ARROW Skip End ## -## Ends in an error in state: 533. +## Ends in an error in state: 531. ## ## case(if_clause) -> Case expr Of LBRACKET option(VBAR) cases(if_clause) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2917,15 +2889,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 535, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) -## In state 532, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) +## In state 533, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) +## In state 530, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of LBRACKET With ## -## Ends in an error in state: 503. +## Ends in an error in state: 501. ## ## case(if_clause) -> Case expr Of LBRACKET . option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2937,7 +2909,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of VBAR Block ## -## Ends in an error in state: 538. +## Ends in an error in state: 536. ## ## case(if_clause) -> Case expr Of option(VBAR) . cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2949,7 +2921,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of WILD ARROW Skip RBRACKET ## -## Ends in an error in state: 539. +## Ends in an error in state: 537. ## ## case(if_clause) -> Case expr Of option(VBAR) cases(if_clause) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2960,15 +2932,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 535, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) -## In state 532, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) +## In state 533, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) +## In state 530, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of WILD ARROW Skip VBAR With ## -## Ends in an error in state: 536. +## Ends in an error in state: 534. ## ## nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) VBAR . nsepseq(case_clause(if_clause),VBAR) [ RBRACKET End ] ## @@ -2980,7 +2952,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of WILD ARROW Skip With ## -## Ends in an error in state: 535. +## Ends in an error in state: 533. ## ## nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) . [ RBRACKET End ] ## nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) . VBAR nsepseq(case_clause(if_clause),VBAR) [ RBRACKET End ] @@ -2993,7 +2965,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of WILD ARROW With ## -## Ends in an error in state: 506. +## Ends in an error in state: 504. ## ## case_clause(if_clause) -> pattern ARROW . if_clause [ VBAR RBRACKET End ] ## @@ -3005,7 +2977,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of WILD RPAR ## -## Ends in an error in state: 505. +## Ends in an error in state: 503. ## ## case_clause(if_clause) -> pattern . ARROW if_clause [ VBAR RBRACKET End ] ## @@ -3016,14 +2988,14 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 302, spurious reduction of production pattern -> core_pattern +## In state 300, spurious reduction of production pattern -> core_pattern ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of With ## -## Ends in an error in state: 502. +## Ends in an error in state: 500. ## ## case(if_clause) -> Case expr Of . option(VBAR) cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## case(if_clause) -> Case expr Of . LBRACKET option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3036,7 +3008,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim VBAR ## -## Ends in an error in state: 501. +## Ends in an error in state: 499. ## ## case(if_clause) -> Case expr . Of option(VBAR) cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## case(if_clause) -> Case expr . Of LBRACKET option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3048,23 +3020,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case With ## -## Ends in an error in state: 500. +## Ends in an error in state: 498. ## ## case(if_clause) -> Case . expr Of option(VBAR) cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## case(if_clause) -> Case . expr Of LBRACKET option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3077,7 +3049,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Constr DOT And With ## -## Ends in an error in state: 513. +## Ends in an error in state: 511. ## ## fun_call -> module_field . arguments [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3089,7 +3061,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Constr With ## -## Ends in an error in state: 492. +## Ends in an error in state: 490. ## ## module_field -> Constr . DOT module_fun [ LPAR ] ## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ LBRACKET ASS ] @@ -3102,7 +3074,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ARROW Ident With ## -## Ends in an error in state: 476. +## Ends in an error in state: 474. ## ## for_loop -> For Ident option(arrow_clause) . In collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3114,7 +3086,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ARROW With ## -## Ends in an error in state: 474. +## Ends in an error in state: 472. ## ## arrow_clause -> ARROW . Ident [ In ] ## @@ -3126,7 +3098,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS Bytes To Verbatim Step Verbatim VBAR ## -## Ends in an error in state: 489. +## Ends in an error in state: 487. ## ## for_loop -> For var_assign To expr Step expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3137,23 +3109,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS Bytes To Verbatim Step With ## -## Ends in an error in state: 488. +## Ends in an error in state: 486. ## ## for_loop -> For var_assign To expr Step . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3165,7 +3137,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS Bytes To Verbatim VBAR ## -## Ends in an error in state: 487. +## Ends in an error in state: 485. ## ## for_loop -> For var_assign To expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## for_loop -> For var_assign To expr . Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3177,23 +3149,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS Bytes To With ## -## Ends in an error in state: 486. +## Ends in an error in state: 484. ## ## for_loop -> For var_assign To . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## for_loop -> For var_assign To . expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3206,7 +3178,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS Bytes VBAR ## -## Ends in an error in state: 485. +## Ends in an error in state: 483. ## ## for_loop -> For var_assign . To expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## for_loop -> For var_assign . To expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3218,24 +3190,24 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 473, spurious reduction of production var_assign -> Ident ASS expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 471, spurious reduction of production var_assign -> Ident ASS expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS With ## -## Ends in an error in state: 472. +## Ends in an error in state: 470. ## ## var_assign -> Ident ASS . expr [ To ] ## @@ -3247,7 +3219,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident In Set Verbatim VBAR ## -## Ends in an error in state: 482. +## Ends in an error in state: 480. ## ## for_loop -> For Ident option(arrow_clause) In collection expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3258,23 +3230,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident In Set With ## -## Ends in an error in state: 481. +## Ends in an error in state: 479. ## ## for_loop -> For Ident option(arrow_clause) In collection . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3286,7 +3258,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident In With ## -## Ends in an error in state: 477. +## Ends in an error in state: 475. ## ## for_loop -> For Ident option(arrow_clause) In . collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3298,7 +3270,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident With ## -## Ends in an error in state: 471. +## Ends in an error in state: 469. ## ## for_loop -> For Ident . option(arrow_clause) In collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## var_assign -> Ident . ASS expr [ To ] @@ -3311,7 +3283,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For With ## -## Ends in an error in state: 470. +## Ends in an error in state: 468. ## ## for_loop -> For . var_assign To expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## for_loop -> For . var_assign To expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3325,7 +3297,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident ASS With ## -## Ends in an error in state: 519. +## Ends in an error in state: 517. ## ## assignment -> lhs ASS . rhs [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3337,7 +3309,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident DOT Ident With ## -## Ends in an error in state: 512. +## Ends in an error in state: 510. ## ## lhs -> path . [ ASS ] ## map_lookup -> path . brackets(expr) [ ASS ] @@ -3349,16 +3321,16 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 129, spurious reduction of production nsepseq(selection,DOT) -> selection -## In state 162, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) -## In state 168, spurious reduction of production path -> projection +## In state 127, spurious reduction of production nsepseq(selection,DOT) -> selection +## In state 160, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) +## In state 166, spurious reduction of production path -> projection ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident LBRACKET Bytes RBRACKET With ## -## Ends in an error in state: 518. +## Ends in an error in state: 516. ## ## assignment -> lhs . ASS rhs [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3370,7 +3342,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident With ## -## Ends in an error in state: 459. +## Ends in an error in state: 457. ## ## fun_call -> Ident . arguments [ VBAR SEMI RBRACKET RBRACE End Else ] ## path -> Ident . [ LBRACKET ASS ] @@ -3384,7 +3356,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then LBRACE Skip End ## -## Ends in an error in state: 570. +## Ends in an error in state: 568. ## ## clause_block -> LBRACE sep_or_term_list(statement,SEMI) . RBRACE [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3395,15 +3367,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 556, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 573, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 554, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 571, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then LBRACE With ## -## Ends in an error in state: 458. +## Ends in an error in state: 456. ## ## clause_block -> LBRACE . sep_or_term_list(statement,SEMI) RBRACE [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3415,7 +3387,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then Skip Else With ## -## Ends in an error in state: 576. +## Ends in an error in state: 574. ## ## conditional -> If expr Then if_clause option(SEMI) Else . if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3427,7 +3399,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then Skip SEMI EQ ## -## Ends in an error in state: 575. +## Ends in an error in state: 573. ## ## conditional -> If expr Then if_clause option(SEMI) . Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3439,7 +3411,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then Skip With ## -## Ends in an error in state: 574. +## Ends in an error in state: 572. ## ## conditional -> If expr Then if_clause . option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3451,7 +3423,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then With ## -## Ends in an error in state: 457. +## Ends in an error in state: 455. ## ## conditional -> If expr Then . if_clause option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3463,7 +3435,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim VBAR ## -## Ends in an error in state: 456. +## Ends in an error in state: 454. ## ## conditional -> If expr . Then if_clause option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3474,23 +3446,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If With ## -## Ends in an error in state: 455. +## Ends in an error in state: 453. ## ## conditional -> If . expr Then if_clause option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3502,7 +3474,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident VBAR ## -## Ends in an error in state: 432. +## Ends in an error in state: 430. ## ## map_patch -> Patch path . With ne_injection(Map,binding) [ VBAR SEMI RBRACKET RBRACE End Else ] ## record_patch -> Patch path . With ne_injection(Record,field_assignment) [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3515,14 +3487,14 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 160, spurious reduction of production path -> Ident +## In state 158, spurious reduction of production path -> Ident ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Map LBRACKET Verbatim ARROW Bytes End ## -## Ends in an error in state: 448. +## Ends in an error in state: 446. ## ## ne_injection(Map,binding) -> Map LBRACKET sep_or_term_list(binding,SEMI) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3533,28 +3505,27 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr -## In state 253, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 249, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr +## In state 251, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 247, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Map LBRACKET With ## -## Ends in an error in state: 447. +## Ends in an error in state: 445. ## -## code_insert_expr -> LBRACKET . PERCENT Constr expr RBRACKET [ TIMES SLASH PLUS Or NE Mod MINUS LT LE GT GE EQ Contains CONS CAT And ARROW ] ## ne_injection(Map,binding) -> Map LBRACKET . sep_or_term_list(binding,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: @@ -3565,7 +3536,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Map Verbatim ARROW Bytes RBRACKET ## -## Ends in an error in state: 450. +## Ends in an error in state: 448. ## ## ne_injection(Map,binding) -> Map sep_or_term_list(binding,SEMI) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3576,26 +3547,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 252, spurious reduction of production binding -> expr ARROW expr -## In state 253, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 249, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 250, spurious reduction of production binding -> expr ARROW expr +## In state 251, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 247, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Map With ## -## Ends in an error in state: 446. +## Ends in an error in state: 444. ## ## ne_injection(Map,binding) -> Map . sep_or_term_list(binding,SEMI) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## ne_injection(Map,binding) -> Map . LBRACKET sep_or_term_list(binding,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3608,7 +3579,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Record Ident EQ Bytes RBRACKET ## -## Ends in an error in state: 444. +## Ends in an error in state: 442. ## ## ne_injection(Record,field_assignment) -> Record sep_or_term_list(field_assignment,SEMI) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3619,26 +3590,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 390, spurious reduction of production field_assignment -> Ident EQ expr -## In state 395, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 394, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 388, spurious reduction of production field_assignment -> Ident EQ expr +## In state 393, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 392, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Record LBRACKET Ident EQ Bytes End ## -## Ends in an error in state: 442. +## Ends in an error in state: 440. ## ## ne_injection(Record,field_assignment) -> Record LBRACKET sep_or_term_list(field_assignment,SEMI) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3649,26 +3620,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 390, spurious reduction of production field_assignment -> Ident EQ expr -## In state 395, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 394, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 388, spurious reduction of production field_assignment -> Ident EQ expr +## In state 393, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 392, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Record LBRACKET With ## -## Ends in an error in state: 441. +## Ends in an error in state: 439. ## ## ne_injection(Record,field_assignment) -> Record LBRACKET . sep_or_term_list(field_assignment,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3680,7 +3651,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Record With ## -## Ends in an error in state: 440. +## Ends in an error in state: 438. ## ## ne_injection(Record,field_assignment) -> Record . sep_or_term_list(field_assignment,SEMI) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## ne_injection(Record,field_assignment) -> Record . LBRACKET sep_or_term_list(field_assignment,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3693,7 +3664,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Set LBRACKET Verbatim End ## -## Ends in an error in state: 436. +## Ends in an error in state: 434. ## ## ne_injection(Set,expr) -> Set LBRACKET sep_or_term_list(expr,SEMI) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3704,27 +3675,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 371, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 370, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 369, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 368, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Set LBRACKET With ## -## Ends in an error in state: 435. +## Ends in an error in state: 433. ## -## code_insert_expr -> LBRACKET . PERCENT Constr expr RBRACKET [ TIMES SLASH SEMI PLUS Or NE Mod MINUS LT LE GT GE End EQ Contains CONS CAT And ] ## ne_injection(Set,expr) -> Set LBRACKET . sep_or_term_list(expr,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: @@ -3735,7 +3705,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Set Verbatim RBRACKET ## -## Ends in an error in state: 438. +## Ends in an error in state: 436. ## ## ne_injection(Set,expr) -> Set sep_or_term_list(expr,SEMI) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3746,25 +3716,25 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr -## In state 371, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 370, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr +## In state 369, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 368, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Set With ## -## Ends in an error in state: 434. +## Ends in an error in state: 432. ## ## ne_injection(Set,expr) -> Set . sep_or_term_list(expr,SEMI) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## ne_injection(Set,expr) -> Set . LBRACKET sep_or_term_list(expr,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3777,7 +3747,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With With ## -## Ends in an error in state: 433. +## Ends in an error in state: 431. ## ## map_patch -> Patch path With . ne_injection(Map,binding) [ VBAR SEMI RBRACKET RBRACE End Else ] ## record_patch -> Patch path With . ne_injection(Record,field_assignment) [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3791,7 +3761,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch With ## -## Ends in an error in state: 431. +## Ends in an error in state: 429. ## ## map_patch -> Patch . path With ne_injection(Map,binding) [ VBAR SEMI RBRACKET RBRACE End Else ] ## record_patch -> Patch . path With ne_injection(Record,field_assignment) [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3805,7 +3775,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim From Map With ## -## Ends in an error in state: 429. +## Ends in an error in state: 427. ## ## map_remove -> Remove expr From Map . path [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3817,7 +3787,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim From Set With ## -## Ends in an error in state: 427. +## Ends in an error in state: 425. ## ## set_remove -> Remove expr From Set . path [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3829,7 +3799,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim From With ## -## Ends in an error in state: 426. +## Ends in an error in state: 424. ## ## map_remove -> Remove expr From . Map path [ VBAR SEMI RBRACKET RBRACE End Else ] ## set_remove -> Remove expr From . Set path [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3842,7 +3812,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim VBAR ## -## Ends in an error in state: 425. +## Ends in an error in state: 423. ## ## map_remove -> Remove expr . From Map path [ VBAR SEMI RBRACKET RBRACE End Else ] ## set_remove -> Remove expr . From Set path [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3854,23 +3824,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove With ## -## Ends in an error in state: 424. +## Ends in an error in state: 422. ## ## map_remove -> Remove . expr From Map path [ VBAR SEMI RBRACKET RBRACE End Else ] ## set_remove -> Remove . expr From Set path [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3883,7 +3853,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End While ## -## Ends in an error in state: 467. +## Ends in an error in state: 465. ## ## open_fun_decl -> Function Ident parameters COLON type_expr Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -3895,7 +3865,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End With With ## -## Ends in an error in state: 468. +## Ends in an error in state: 466. ## ## open_fun_decl -> Function Ident parameters COLON type_expr Is block With . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -3907,7 +3877,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip RBRACE ## -## Ends in an error in state: 578. +## Ends in an error in state: 576. ## ## block -> Begin sep_or_term_list(statement,SEMI) . End [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3918,15 +3888,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 556, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 573, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 554, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 571, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip SEMI Skip SEMI With ## -## Ends in an error in state: 559. +## Ends in an error in state: 557. ## ## nsepseq(statement,SEMI) -> statement SEMI . nsepseq(statement,SEMI) [ RBRACE End ] ## seq(__anonymous_0(statement,SEMI)) -> statement SEMI . seq(__anonymous_0(statement,SEMI)) [ RBRACE End ] @@ -3939,7 +3909,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip SEMI Skip With ## -## Ends in an error in state: 558. +## Ends in an error in state: 556. ## ## nsepseq(statement,SEMI) -> statement . [ RBRACE End ] ## nsepseq(statement,SEMI) -> statement . SEMI nsepseq(statement,SEMI) [ RBRACE End ] @@ -3953,7 +3923,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip SEMI With ## -## Ends in an error in state: 557. +## Ends in an error in state: 555. ## ## nsepseq(statement,SEMI) -> statement SEMI . nsepseq(statement,SEMI) [ RBRACE End ] ## nseq(__anonymous_0(statement,SEMI)) -> statement SEMI . seq(__anonymous_0(statement,SEMI)) [ RBRACE End ] @@ -3966,7 +3936,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip With ## -## Ends in an error in state: 556. +## Ends in an error in state: 554. ## ## nsepseq(statement,SEMI) -> statement . [ RBRACE End ] ## nsepseq(statement,SEMI) -> statement . SEMI nsepseq(statement,SEMI) [ RBRACE End ] @@ -3980,7 +3950,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var Ident COLON String ASS With ## -## Ends in an error in state: 420. +## Ends in an error in state: 418. ## ## unqualified_decl(ASS) -> Ident COLON type_expr ASS . expr [ SEMI RBRACE End ] ## @@ -3992,7 +3962,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var Ident COLON String VBAR ## -## Ends in an error in state: 419. +## Ends in an error in state: 417. ## ## unqualified_decl(ASS) -> Ident COLON type_expr . ASS expr [ SEMI RBRACE End ] ## @@ -4012,7 +3982,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var Ident COLON With ## -## Ends in an error in state: 418. +## Ends in an error in state: 416. ## ## unqualified_decl(ASS) -> Ident COLON . type_expr ASS expr [ SEMI RBRACE End ] ## @@ -4024,7 +3994,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var Ident With ## -## Ends in an error in state: 417. +## Ends in an error in state: 415. ## ## unqualified_decl(ASS) -> Ident . COLON type_expr ASS expr [ SEMI RBRACE End ] ## @@ -4036,7 +4006,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var With ## -## Ends in an error in state: 416. +## Ends in an error in state: 414. ## ## open_var_decl -> Var . unqualified_decl(ASS) [ SEMI RBRACE End ] ## @@ -4048,7 +4018,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin While Verbatim VBAR ## -## Ends in an error in state: 414. +## Ends in an error in state: 412. ## ## while_loop -> While expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4059,23 +4029,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 199, spurious reduction of production unary_expr -> core_expr -## In state 146, spurious reduction of production mult_expr -> unary_expr -## In state 175, spurious reduction of production add_expr -> mult_expr -## In state 205, spurious reduction of production cons_expr -> add_expr -## In state 202, spurious reduction of production cat_expr -> cons_expr -## In state 225, spurious reduction of production comp_expr -> cat_expr -## In state 212, spurious reduction of production set_membership -> comp_expr -## In state 148, spurious reduction of production conj_expr -> set_membership -## In state 229, spurious reduction of production disj_expr -> conj_expr -## In state 197, spurious reduction of production expr -> disj_expr +## In state 197, spurious reduction of production unary_expr -> core_expr +## In state 144, spurious reduction of production mult_expr -> unary_expr +## In state 173, spurious reduction of production add_expr -> mult_expr +## In state 203, spurious reduction of production cons_expr -> add_expr +## In state 200, spurious reduction of production cat_expr -> cons_expr +## In state 223, spurious reduction of production comp_expr -> cat_expr +## In state 210, spurious reduction of production set_membership -> comp_expr +## In state 146, spurious reduction of production conj_expr -> set_membership +## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 195, spurious reduction of production expr -> disj_expr ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin While With ## -## Ends in an error in state: 413. +## Ends in an error in state: 411. ## ## while_loop -> While . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4087,7 +4057,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin With ## -## Ends in an error in state: 415. +## Ends in an error in state: 413. ## ## block -> Begin . sep_or_term_list(statement,SEMI) End [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4099,7 +4069,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block LBRACE Skip End ## -## Ends in an error in state: 581. +## Ends in an error in state: 579. ## ## block -> Block LBRACE sep_or_term_list(statement,SEMI) . RBRACE [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4110,15 +4080,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 556, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 573, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 554, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 571, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block LBRACE With ## -## Ends in an error in state: 412. +## Ends in an error in state: 410. ## ## block -> Block LBRACE . sep_or_term_list(statement,SEMI) RBRACE [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4130,7 +4100,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block With ## -## Ends in an error in state: 411. +## Ends in an error in state: 409. ## ## block -> Block . LBRACE sep_or_term_list(statement,SEMI) RBRACE [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4142,7 +4112,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is With ## -## Ends in an error in state: 465. +## Ends in an error in state: 463. ## ## open_fun_decl -> Function Ident parameters COLON type_expr Is . block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Function Ident parameters COLON type_expr Is . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4155,7 +4125,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is With contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String VBAR ## -## Ends in an error in state: 464. +## Ends in an error in state: 462. ## ## open_fun_decl -> Function Ident parameters COLON type_expr . Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Function Ident parameters COLON type_expr . Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4176,7 +4146,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String VBAR contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON With ## -## Ends in an error in state: 463. +## Ends in an error in state: 461. ## ## open_fun_decl -> Function Ident parameters COLON . type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Function Ident parameters COLON . type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4189,7 +4159,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON With contract: Function Ident LPAR Const Ident COLON Ident RPAR With ## -## Ends in an error in state: 462. +## Ends in an error in state: 460. ## ## open_fun_decl -> Function Ident parameters . COLON type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Function Ident parameters . COLON type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4202,7 +4172,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR With contract: Function Ident With ## -## Ends in an error in state: 461. +## Ends in an error in state: 459. ## ## open_fun_decl -> Function Ident . parameters COLON type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Function Ident . parameters COLON type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4215,7 +4185,7 @@ contract: Function Ident With contract: Function With ## -## Ends in an error in state: 460. +## Ends in an error in state: 458. ## ## open_fun_decl -> Function . Ident parameters COLON type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Function . Ident parameters COLON type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4228,7 +4198,7 @@ contract: Function With contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End While ## -## Ends in an error in state: 584. +## Ends in an error in state: 582. ## ## open_fun_decl -> Recursive Function Ident parameters COLON type_expr Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -4240,7 +4210,7 @@ contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Strin contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End With With ## -## Ends in an error in state: 585. +## Ends in an error in state: 583. ## ## open_fun_decl -> Recursive Function Ident parameters COLON type_expr Is block With . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## diff --git a/src/passes/01-parser/reasonligo/LexToken.mli b/src/passes/01-parser/reasonligo/LexToken.mli index 7a5de35d3..3f91a0f71 100644 --- a/src/passes/01-parser/reasonligo/LexToken.mli +++ b/src/passes/01-parser/reasonligo/LexToken.mli @@ -29,9 +29,22 @@ type lexeme = string (* TOKENS *) type t = + (* Identifiers, labels, numbers and strings *) + +| Ident of string Region.reg +| Constr of string Region.reg +| Int of (string * Z.t) Region.reg +| Nat of (string * Z.t) Region.reg +| Mutez of (string * Z.t) Region.reg +| String of string Region.reg +| Verbatim of string Region.reg +| Bytes of (string * Hex.t) Region.reg +| Attr of string Region.reg +| Lang of lexeme Region.reg Region.reg + (* Symbols *) - CAT of Region.t (* "++" *) +| CAT of Region.t (* "++" *) (* Arithmetics *) @@ -39,7 +52,6 @@ type t = | PLUS of Region.t (* "+" *) | SLASH of Region.t (* "/" *) | TIMES of Region.t (* "*" *) -| PERCENT of Region.t (* "%" *) (* Compounds *) @@ -80,18 +92,6 @@ type t = | BOOL_AND of Region.t (* "&&" *) | NOT of Region.t (* ! *) - (* Identifiers, labels, numbers and strings *) - -| Ident of string Region.reg -| Constr of string Region.reg -| Int of (string * Z.t) Region.reg -| Nat of (string * Z.t) Region.reg -| Mutez of (string * Z.t) Region.reg -| String of string Region.reg -| Verbatim of string Region.reg -| Bytes of (string * Hex.t) Region.reg -| Attr of string Region.reg - (* Keywords *) | Else of Region.t @@ -147,13 +147,14 @@ val mk_int : lexeme -> Region.t -> (token, int_err) result val mk_nat : lexeme -> Region.t -> (token, nat_err) result val mk_mutez : lexeme -> Region.t -> (token, int_err) result val mk_ident : lexeme -> Region.t -> (token, ident_err) result -val mk_attr : string -> lexeme -> Region.t -> (token, attr_err) result val mk_sym : lexeme -> Region.t -> (token, sym_err) result val mk_kwd : lexeme -> Region.t -> (token, kwd_err) result val mk_string : lexeme -> Region.t -> token val mk_verbatim : lexeme -> Region.t -> token val mk_bytes : lexeme -> Region.t -> token val mk_constr : lexeme -> Region.t -> token +val mk_attr : string -> lexeme -> Region.t -> (token, attr_err) result +val mk_lang : lexeme Region.reg -> Region.t -> token val eof : Region.t -> token (* Predicates *) diff --git a/src/passes/01-parser/reasonligo/LexToken.mll b/src/passes/01-parser/reasonligo/LexToken.mll index 360c23a7a..4e7fa6079 100644 --- a/src/passes/01-parser/reasonligo/LexToken.mll +++ b/src/passes/01-parser/reasonligo/LexToken.mll @@ -15,9 +15,22 @@ let sprintf = Printf.sprintf (* TOKENS *) type t = + (* Identifiers, labels, numbers and strings *) + +| Ident of string Region.reg +| Constr of string Region.reg +| Int of (string * Z.t) Region.reg +| Nat of (string * Z.t) Region.reg +| Mutez of (string * Z.t) Region.reg +| String of string Region.reg +| Verbatim of string Region.reg +| Bytes of (string * Hex.t) Region.reg +| Attr of string Region.reg +| Lang of lexeme Region.reg Region.reg + (* Symbols *) - CAT of Region.t (* "++" *) +| CAT of Region.t (* "++" *) (* Arithmetics *) @@ -25,7 +38,6 @@ type t = | PLUS of Region.t (* "+" *) | SLASH of Region.t (* "/" *) | TIMES of Region.t (* "*" *) -| PERCENT of Region.t (* "%" *) (* Compounds *) @@ -66,18 +78,6 @@ type t = | BOOL_AND of Region.t (* "&&" *) | NOT of Region.t (* ! *) - (* Identifiers, labels, numbers and strings *) - -| Ident of string Region.reg -| Constr of string Region.reg -| Int of (string * Z.t) Region.reg -| Nat of (string * Z.t) Region.reg -| Mutez of (string * Z.t) Region.reg -| String of string Region.reg -| Verbatim of string Region.reg -| Bytes of (string * Hex.t) Region.reg -| Attr of string Region.reg - (* Keywords *) | Else of Region.t @@ -109,22 +109,26 @@ let proj_token = function (* Literals *) String Region.{region; value} -> - region, sprintf "String %s" value + region, sprintf "String %S" value | Verbatim Region.{region; value} -> - region, sprintf "Verbatim {|%s|}" value + region, sprintf "Verbatim %S" value | Bytes Region.{region; value = s,b} -> region, - sprintf "Bytes (\"%s\", \"0x%s\")" s (Hex.show b) + sprintf "Bytes (%S, \"0x%s\")" s (Hex.show b) | Int Region.{region; value = s,n} -> - region, sprintf "Int (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Int (%S, %s)" s (Z.to_string n) | Nat Region.{region; value = s,n} -> - region, sprintf "Nat (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Nat (%S, %s)" s (Z.to_string n) | Mutez Region.{region; value = s,n} -> - region, sprintf "Mutez (\"%s\", %s)" s (Z.to_string n) + region, sprintf "Mutez (%S, %s)" s (Z.to_string n) | Ident Region.{region; value} -> - region, sprintf "Ident %s" value + region, sprintf "Ident %S" value | Constr Region.{region; value} -> - region, sprintf "Constr %s" value + region, sprintf "Constr %S" value +| Attr Region.{region; value} -> + region, sprintf "Attr %S" value +| Lang Region.{region; value} -> + region, sprintf "Lang %S" (value.Region.value) (* Symbols *) @@ -133,7 +137,6 @@ let proj_token = function | PLUS region -> region, "PLUS" | SLASH region -> region, "SLASH" | TIMES region -> region, "TIMES" -| PERCENT region -> region, "PERCENT" | LPAR region -> region, "LPAR" | RPAR region -> region, "RPAR" | LBRACKET region -> region, "LBRACKET" @@ -170,7 +173,6 @@ let proj_token = function | Type region -> region, "Type" | C_None region -> region, "C_None" | C_Some region -> region, "C_Some" -| Attr Region.{region; value} -> region, sprintf "Attr %s" value | EOF region -> region, "EOF" let to_lexeme = function @@ -185,6 +187,7 @@ let to_lexeme = function | Ident id -> id.Region.value | Constr id -> id.Region.value | Attr a -> a.Region.value +| Lang lang -> Region.(lang.value.value) (* Symbols *) @@ -193,7 +196,6 @@ let to_lexeme = function | PLUS _ -> "+" | SLASH _ -> "/" | TIMES _ -> "*" -| PERCENT _ -> "%" | LPAR _ -> "(" | RPAR _ -> ")" | LBRACKET _ -> "[" @@ -432,7 +434,6 @@ let mk_sym lexeme region = | "+" -> Ok (PLUS region) | "/" -> Ok (SLASH region) | "*" -> Ok (TIMES region) - | "%" -> Ok (PERCENT region) | "[" -> Ok (LBRACKET region) | "]" -> Ok (RBRACKET region) | "{" -> Ok (LBRACE region) @@ -488,6 +489,10 @@ let mk_attr header lexeme region = Ok (Attr Region.{value=lexeme; region}) else Error Invalid_attribute +(* Language injection *) + +let mk_lang lang region = Lang Region.{value=lang; region} + (* Predicates *) let is_string = function String _ -> true | _ -> false @@ -549,7 +554,7 @@ let check_right_context token next_token buffer : unit = else () else if is_bytes token - then if is_string next || is_ident next + then if is_string next || is_ident next then fail region Missing_break else if is_int next then fail region Odd_lengthed_bytes diff --git a/src/passes/01-parser/reasonligo/ParToken.mly b/src/passes/01-parser/reasonligo/ParToken.mly index 13b56efb8..01bbc839c 100644 --- a/src/passes/01-parser/reasonligo/ParToken.mly +++ b/src/passes/01-parser/reasonligo/ParToken.mly @@ -5,15 +5,16 @@ (* Literals *) -%token String "" -%token Verbatim "" -%token <(LexToken.lexeme * Hex.t) Region.reg> Bytes "" -%token <(string * Z.t) Region.reg> Int "" -%token <(string * Z.t) Region.reg> Nat "" -%token <(string * Z.t) Region.reg> Mutez "" -%token Ident "" -%token Constr "" -%token Attr "" +%token String "" +%token Verbatim "" +%token <(LexToken.lexeme * Hex.t) Region.reg> Bytes "" +%token <(string * Z.t) Region.reg> Int "" +%token <(string * Z.t) Region.reg> Nat "" +%token <(string * Z.t) Region.reg> Mutez "" +%token Ident "" +%token Constr "" +%token Attr "" +%token Lang "" (* Symbols *) @@ -21,7 +22,6 @@ %token PLUS "+" %token SLASH "/" %token TIMES "*" -%token PERCENT "%" %token LPAR "(" %token RPAR ")" diff --git a/src/passes/01-parser/reasonligo/Parser.mly b/src/passes/01-parser/reasonligo/Parser.mly index a564c9152..003128f61 100644 --- a/src/passes/01-parser/reasonligo/Parser.mly +++ b/src/passes/01-parser/reasonligo/Parser.mly @@ -801,20 +801,20 @@ call_expr: in ECall {region; value} } common_expr: - "" { EArith (Int $1) } -| "" { EArith (Mutez $1) } -| "" { EArith (Nat $1) } -| "" { EBytes $1 } -| "" | module_field { EVar $1 } -| projection { EProj $1 } -| "_" { EVar {value = "_"; region = $1} } -| update_record { EUpdate $1 } -| "" { EString (String $1) } -| "" { EString (Verbatim $1) } -| unit { EUnit $1 } -| "false" { ELogic (BoolExpr (False $1)) } -| "true" { ELogic (BoolExpr (True $1)) } -| code_insert { ECodeInsert $1 } + "" { EArith (Int $1) } +| "" { EArith (Mutez $1) } +| "" { EArith (Nat $1) } +| "" { EBytes $1 } +| "" | module_field { EVar $1 } +| projection { EProj $1 } +| "_" { EVar {value = "_"; region = $1} } +| update_record { EUpdate $1 } +| "" { EString (String $1) } +| "" { EString (Verbatim $1) } +| unit { EUnit $1 } +| "false" { ELogic (BoolExpr (False $1)) } +| "true" { ELogic (BoolExpr (True $1)) } +| code_inj { ECodeInj $1 } core_expr_2: common_expr { $1 } @@ -920,15 +920,10 @@ update_record: rbrace = $6} in {region; value} } -code_insert: - "[" "%" Constr expr "]" { - let region = cover $1 $5 in - let value = { - lbracket =$1; - percent =$2; - language =$3; - code =$4; - rbracket =$5} +code_inj: + "" expr "]" { + let region = cover $1.region $3 + and value = {language=$1; code=$2; rbracket=$3} in {region; value} } expr_with_let_expr: diff --git a/src/passes/01-parser/reasonligo/Pretty.ml b/src/passes/01-parser/reasonligo/Pretty.ml index 284a00360..a9e566c47 100644 --- a/src/passes/01-parser/reasonligo/Pretty.ml +++ b/src/passes/01-parser/reasonligo/Pretty.ml @@ -159,7 +159,7 @@ and pp_expr = function | ELetIn e -> pp_let_in e | EFun e -> pp_fun e | ESeq e -> pp_seq e -| ECodeInsert e -> pp_code_insert e +| ECodeInj e -> pp_code_inj e and pp_case_expr {value; _} = let {expr; cases; _} = value in @@ -180,7 +180,7 @@ and pp_clause {value; _} = and pp_cond_expr {value; _} = let {test; ifso; kwd_else; ifnot; _} = value in let if_then = - string "if" ^^ string " (" ^^ pp_expr test ^^ string ")" ^^ string " {" ^^ break 0 + string "if" ^^ string " (" ^^ pp_expr test ^^ string ")" ^^ string " {" ^^ break 0 ^^ group (nest 2 (break 2 ^^ pp_expr ifso)) ^^ hardline ^^ string "}" in if kwd_else#is_ghost then if_then @@ -320,11 +320,11 @@ and pp_update {value; _} = string "{..." ^^ record ^^ string "," ^^ nest 2 (break 1 ^^ updates ^^ string "}") -and pp_code_insert {value; _} = +and pp_code_inj {value; _} = let {language; code; _} = value in - let language = pp_string language - and code = pp_expr code in - string "[%" ^^ language ^^ string " " ^^ code ^^ string " ]" + let language = pp_string language.value + and code = pp_expr code in + string "[%" ^^ language ^/^ code ^^ string "]" and pp_field_path_assign {value; _} = let {field_path; field_expr; _} = value in diff --git a/src/passes/01-parser/reasonligo/error.messages.checked-in b/src/passes/01-parser/reasonligo/error.messages.checked-in index 80ce7b399..3b0ab3715 100644 --- a/src/passes/01-parser/reasonligo/error.messages.checked-in +++ b/src/passes/01-parser/reasonligo/error.messages.checked-in @@ -1,6 +1,6 @@ interactive_expr: C_None WILD ## -## Ends in an error in state: 179. +## Ends in an error in state: 178. ## ## call_expr_level -> call_expr_level_in . option(type_annotation_simple) [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -12,7 +12,7 @@ interactive_expr: C_None WILD interactive_expr: C_Some VBAR ## -## Ends in an error in state: 131. +## Ends in an error in state: 130. ## ## constr_expr -> C_Some . core_expr [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -24,7 +24,7 @@ interactive_expr: C_Some VBAR interactive_expr: Constr DOT Ident WILD ## -## Ends in an error in state: 113. +## Ends in an error in state: 114. ## ## module_fun -> Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## projection -> Constr DOT Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -37,7 +37,7 @@ interactive_expr: Constr DOT Ident WILD interactive_expr: Constr DOT WILD ## -## Ends in an error in state: 111. +## Ends in an error in state: 112. ## ## module_field -> Constr DOT . module_fun [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## projection -> Constr DOT . Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -50,7 +50,7 @@ interactive_expr: Constr DOT WILD interactive_expr: Constr Switch ## -## Ends in an error in state: 110. +## Ends in an error in state: 111. ## ## constr_expr -> Constr . core_expr [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## constr_expr -> Constr . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -65,7 +65,7 @@ interactive_expr: Constr Switch interactive_expr: Ident DOT Ident WILD ## -## Ends in an error in state: 105. +## Ends in an error in state: 106. ## ## selection -> DOT Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## selection -> DOT Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -78,7 +78,7 @@ interactive_expr: Ident DOT Ident WILD interactive_expr: Ident DOT WILD ## -## Ends in an error in state: 104. +## Ends in an error in state: 105. ## ## selection -> DOT . Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## selection -> DOT . Ident [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -91,7 +91,7 @@ interactive_expr: Ident DOT WILD interactive_expr: Ident LBRACKET Int RBRACKET WILD ## -## Ends in an error in state: 103. +## Ends in an error in state: 104. ## ## selection -> LBRACKET Int RBRACKET . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## selection -> LBRACKET Int RBRACKET . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -104,7 +104,7 @@ interactive_expr: Ident LBRACKET Int RBRACKET WILD interactive_expr: Ident LBRACKET Int WILD ## -## Ends in an error in state: 102. +## Ends in an error in state: 103. ## ## selection -> LBRACKET Int . RBRACKET selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## selection -> LBRACKET Int . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -117,7 +117,7 @@ interactive_expr: Ident LBRACKET Int WILD interactive_expr: Ident LBRACKET WILD ## -## Ends in an error in state: 101. +## Ends in an error in state: 102. ## ## selection -> LBRACKET . Int RBRACKET selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## selection -> LBRACKET . Int RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -130,7 +130,7 @@ interactive_expr: Ident LBRACKET WILD interactive_expr: Ident WILD ## -## Ends in an error in state: 100. +## Ends in an error in state: 101. ## ## common_expr -> Ident . [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## projection -> Ident . selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -143,7 +143,7 @@ interactive_expr: Ident WILD interactive_expr: If LBRACE VBAR ## -## Ends in an error in state: 233. +## Ends in an error in state: 232. ## ## parenthesized_expr -> LBRACE . expr RBRACE [ LBRACE ] ## @@ -155,7 +155,7 @@ interactive_expr: If LBRACE VBAR interactive_expr: If LBRACE WILD VBAR ## -## Ends in an error in state: 234. +## Ends in an error in state: 233. ## ## parenthesized_expr -> LBRACE expr . RBRACE [ LBRACE ] ## @@ -166,26 +166,26 @@ interactive_expr: If LBRACE WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: If LPAR VBAR ## -## Ends in an error in state: 99. +## Ends in an error in state: 100. ## ## parenthesized_expr -> LPAR . expr RPAR [ LBRACE ] ## @@ -197,7 +197,7 @@ interactive_expr: If LPAR VBAR interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE VBAR ## -## Ends in an error in state: 357. +## Ends in an error in state: 352. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -209,7 +209,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE VBAR interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE Else LBRACE VBAR ## -## Ends in an error in state: 417. +## Ends in an error in state: 412. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -221,7 +221,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE Else LBRACE WILD SEMI PLUS ## -## Ends in an error in state: 419. +## Ends in an error in state: 414. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) . RBRACE [ SEMI RBRACE ] ## @@ -233,7 +233,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE Else LBRACE WILD VBAR ## -## Ends in an error in state: 418. +## Ends in an error in state: 413. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if . option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -244,26 +244,26 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 422, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr -## In state 421, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 417, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr +## In state 416, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE Else WILD ## -## Ends in an error in state: 416. +## Ends in an error in state: 411. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -275,7 +275,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE WILD ## -## Ends in an error in state: 415. +## Ends in an error in state: 410. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -287,7 +287,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD RBRACE interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD SEMI PLUS ## -## Ends in an error in state: 414. +## Ends in an error in state: 409. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -299,7 +299,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD SEMI P interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD VBAR ## -## Ends in an error in state: 413. +## Ends in an error in state: 408. ## ## if_then_else(closed_if) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -310,26 +310,26 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR LBRACE WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 422, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr -## In state 421, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 417, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr +## In state 416, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR WILD ## -## Ends in an error in state: 356. +## Ends in an error in state: 351. ## ## if_then_else(closed_if) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -341,7 +341,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If LPAR Bytes RPAR WILD interactive_expr: If LPAR WILD RPAR LBRACE If WILD ## -## Ends in an error in state: 355. +## Ends in an error in state: 350. ## ## if_then_else(closed_if) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE closed_if option(SEMI) RBRACE [ SEMI RBRACE ] ## @@ -353,7 +353,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE If WILD interactive_expr: If LPAR WILD RPAR LBRACE Switch VBAR ## -## Ends in an error in state: 238. +## Ends in an error in state: 237. ## ## switch_expr(base_if_then_else) -> Switch . switch_expr_ LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -365,7 +365,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch VBAR interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR VBAR ## -## Ends in an error in state: 281. +## Ends in an error in state: 276. ## ## case_clause(base_if_then_else) -> VBAR . pattern ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -377,7 +377,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR VBAR interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW Bytes SEMI WILD ## -## Ends in an error in state: 440. +## Ends in an error in state: 435. ## ## nseq(case_clause(base_if_then_else)) -> case_clause(base_if_then_else) . seq(case_clause(base_if_then_else)) [ RBRACE ] ## @@ -389,7 +389,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW By interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW Bytes VBAR Bytes ARROW Bytes SEMI WILD ## -## Ends in an error in state: 442. +## Ends in an error in state: 437. ## ## seq(case_clause(base_if_then_else)) -> case_clause(base_if_then_else) . seq(case_clause(base_if_then_else)) [ RBRACE ] ## @@ -401,7 +401,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW By interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE VBAR ## -## Ends in an error in state: 354. +## Ends in an error in state: 349. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -413,7 +413,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD RBRACE Else LBRACE VBAR ## -## Ends in an error in state: 427. +## Ends in an error in state: 422. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -425,7 +425,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD RBRACE Else LBRACE WILD SEMI PLUS ## -## Ends in an error in state: 431. +## Ends in an error in state: 426. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) . RBRACE [ VBAR SEMI RBRACE ] ## @@ -437,7 +437,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD RBRACE Else LBRACE WILD VBAR ## -## Ends in an error in state: 430. +## Ends in an error in state: 425. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else . option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -448,26 +448,26 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 433, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr -## In state 429, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 428, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr +## In state 424, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) ## interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD RBRACE Else WILD ## -## Ends in an error in state: 426. +## Ends in an error in state: 421. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -479,7 +479,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD RBRACE WILD ## -## Ends in an error in state: 425. +## Ends in an error in state: 420. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -491,7 +491,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD SEMI PLUS ## -## Ends in an error in state: 424. +## Ends in an error in state: 419. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -503,7 +503,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR LBRACE WILD VBAR ## -## Ends in an error in state: 423. +## Ends in an error in state: 418. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -514,26 +514,26 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 422, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr -## In state 421, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 417, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr +## In state 416, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If LPAR Bytes RPAR WILD ## -## Ends in an error in state: 353. +## Ends in an error in state: 348. ## ## if_then_else(base_if_then_else) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -545,7 +545,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If WILD ## -## Ends in an error in state: 352. +## Ends in an error in state: 347. ## ## if_then_else(base_if_then_else) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE base_if_then_else option(SEMI) RBRACE [ VBAR SEMI RBRACE ] ## @@ -557,7 +557,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW If interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW VBAR ## -## Ends in an error in state: 351. +## Ends in an error in state: 346. ## ## case_clause(base_if_then_else) -> VBAR pattern ARROW . base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -569,7 +569,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW VB interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW WILD Type ## -## Ends in an error in state: 434. +## Ends in an error in state: 429. ## ## case_clause(base_if_then_else) -> VBAR pattern ARROW base_if_then_else . option(SEMI) [ VBAR RBRACE ] ## @@ -580,26 +580,26 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD ARROW WI ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 433, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr -## In state 429, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 428, spurious reduction of production base_if_then_else__open(base_if_then_else) -> base_expr +## In state 424, spurious reduction of production base_if_then_else -> base_if_then_else__open(base_if_then_else) ## interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD COMMA Bytes RPAR ## -## Ends in an error in state: 350. +## Ends in an error in state: 345. ## ## case_clause(base_if_then_else) -> VBAR pattern . ARROW base_if_then_else option(SEMI) [ VBAR RBRACE ] ## @@ -610,16 +610,16 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE VBAR WILD COMMA By ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 336, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 339, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 348, spurious reduction of production pattern -> tuple(sub_pattern) +## In state 331, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 334, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 343, spurious reduction of production pattern -> tuple(sub_pattern) ## interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE WILD ## -## Ends in an error in state: 280. +## Ends in an error in state: 275. ## ## switch_expr(base_if_then_else) -> Switch switch_expr_ LBRACE . cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -631,7 +631,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD LBRACE WILD interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD WILD ## -## Ends in an error in state: 279. +## Ends in an error in state: 274. ## ## switch_expr(base_if_then_else) -> Switch switch_expr_ . LBRACE cases(base_if_then_else) RBRACE [ SEMI RBRACE ] ## @@ -643,7 +643,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE Switch WILD WILD interactive_expr: If LPAR WILD RPAR LBRACE VBAR ## -## Ends in an error in state: 237. +## Ends in an error in state: 236. ## ## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE . closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] @@ -656,7 +656,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE VBAR interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else LBRACE VBAR ## -## Ends in an error in state: 452. +## Ends in an error in state: 447. ## ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE . expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## @@ -668,7 +668,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else LBRACE VBAR interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else LBRACE WILD SEMI PLUS ## -## Ends in an error in state: 454. +## Ends in an error in state: 449. ## ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) . RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## @@ -680,7 +680,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else LBRACE WILD SEMI PLU interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else LBRACE WILD VBAR ## -## Ends in an error in state: 453. +## Ends in an error in state: 448. ## ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr . option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## @@ -691,27 +691,27 @@ interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else LBRACE WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 407, spurious reduction of production expr_with_let_expr -> expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 402, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else WILD ## -## Ends in an error in state: 451. +## Ends in an error in state: 446. ## ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else . LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## @@ -723,7 +723,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE Else WILD interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE WILD ## -## Ends in an error in state: 450. +## Ends in an error in state: 445. ## ## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) RBRACE . Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] @@ -736,7 +736,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE WILD RBRACE WILD interactive_expr: If LPAR WILD RPAR LBRACE WILD SEMI PLUS ## -## Ends in an error in state: 449. +## Ends in an error in state: 444. ## ## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if option(SEMI) . RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] @@ -749,7 +749,7 @@ interactive_expr: If LPAR WILD RPAR LBRACE WILD SEMI PLUS interactive_expr: If LPAR WILD RPAR LBRACE WILD VBAR ## -## Ends in an error in state: 448. +## Ends in an error in state: 443. ## ## if_then(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## if_then_else(expr_with_let_expr) -> If parenthesized_expr LBRACE closed_if . option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] @@ -761,26 +761,26 @@ interactive_expr: If LPAR WILD RPAR LBRACE WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 422, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr -## In state 421, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 417, spurious reduction of production base_if_then_else__open(closed_if) -> base_expr +## In state 416, spurious reduction of production closed_if -> base_if_then_else__open(closed_if) ## interactive_expr: If LPAR WILD RPAR WILD ## -## Ends in an error in state: 236. +## Ends in an error in state: 235. ## ## if_then(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## if_then_else(expr_with_let_expr) -> If parenthesized_expr . LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] @@ -793,7 +793,7 @@ interactive_expr: If LPAR WILD RPAR WILD interactive_expr: If LPAR WILD VBAR ## -## Ends in an error in state: 231. +## Ends in an error in state: 230. ## ## parenthesized_expr -> LPAR expr . RPAR [ LBRACE ] ## @@ -804,26 +804,26 @@ interactive_expr: If LPAR WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: If WILD ## -## Ends in an error in state: 98. +## Ends in an error in state: 99. ## ## if_then(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## if_then_else(expr_with_let_expr) -> If . parenthesized_expr LBRACE closed_if option(SEMI) RBRACE Else LBRACE expr_with_let_expr option(SEMI) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] @@ -836,7 +836,7 @@ interactive_expr: If WILD interactive_expr: LBRACE ELLIPSIS Constr DOT Ident WILD ## -## Ends in an error in state: 257. +## Ends in an error in state: 256. ## ## projection -> Constr DOT Ident . selection [ COMMA COLON ] ## @@ -848,7 +848,7 @@ interactive_expr: LBRACE ELLIPSIS Constr DOT Ident WILD interactive_expr: LBRACE ELLIPSIS Constr DOT WILD ## -## Ends in an error in state: 256. +## Ends in an error in state: 255. ## ## projection -> Constr DOT . Ident selection [ COMMA COLON ] ## @@ -860,7 +860,7 @@ interactive_expr: LBRACE ELLIPSIS Constr DOT WILD interactive_expr: LBRACE ELLIPSIS Constr WILD ## -## Ends in an error in state: 255. +## Ends in an error in state: 254. ## ## projection -> Constr . DOT Ident selection [ COMMA COLON ] ## @@ -872,7 +872,7 @@ interactive_expr: LBRACE ELLIPSIS Constr WILD interactive_expr: LBRACE ELLIPSIS Ident COLON ## -## Ends in an error in state: 272. +## Ends in an error in state: 258. ## ## update_record -> LBRACE ELLIPSIS path . COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -883,27 +883,14 @@ interactive_expr: LBRACE ELLIPSIS Ident COLON ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 271, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr +## In state 253, spurious reduction of production path -> Ident ## interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes COMMA Ident COLON Bytes COMMA WILD ## -## Ends in an error in state: 270. +## Ends in an error in state: 272. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment COMMA . nsepseq(field_path_assignment,COMMA) [ RBRACE ] ## seq(__anonymous_0(field_path_assignment,COMMA)) -> field_path_assignment COMMA . seq(__anonymous_0(field_path_assignment,COMMA)) [ RBRACE ] @@ -916,7 +903,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes COMMA Ident COLO interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 276. +## Ends in an error in state: 271. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . COMMA nsepseq(field_path_assignment,COMMA) [ RBRACE ] @@ -929,27 +916,27 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes COMMA Ident COLO ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 271, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) COLON expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 264, spurious reduction of production field_path_assignment -> path COLON expr ## interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes COMMA WILD ## -## Ends in an error in state: 273. +## Ends in an error in state: 268. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment COMMA . nsepseq(field_path_assignment,COMMA) [ RBRACE ] ## nseq(__anonymous_0(field_path_assignment,COMMA)) -> field_path_assignment COMMA . seq(__anonymous_0(field_path_assignment,COMMA)) [ RBRACE ] @@ -962,7 +949,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes COMMA WILD interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 263. +## Ends in an error in state: 267. ## ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . [ RBRACE ] ## nsepseq(field_path_assignment,COMMA) -> field_path_assignment . COMMA nsepseq(field_path_assignment,COMMA) [ RBRACE ] @@ -975,27 +962,27 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 158, spurious reduction of production call_expr_level_in -> core_expr -## In state 176, spurious reduction of production option(type_annotation_simple) -> -## In state 177, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 178, spurious reduction of production unary_expr_level -> call_expr_level -## In state 131, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 155, spurious reduction of production add_expr_level -> mult_expr_level -## In state 186, spurious reduction of production cat_expr_level -> add_expr_level -## In state 207, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 214, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 221, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 168, spurious reduction of production base_expr -> disj_expr_level -## In state 225, spurious reduction of production base_cond -> base_expr -## In state 226, spurious reduction of production expr -> base_cond -## In state 262, spurious reduction of production field_path_assignment -> path COLON expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 264, spurious reduction of production field_path_assignment -> path COLON expr ## interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON VBAR ## -## Ends in an error in state: 262. +## Ends in an error in state: 263. ## ## field_path_assignment -> path COLON . expr [ RBRACE COMMA ] ## @@ -1007,7 +994,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COLON VBAR interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA ## -## Ends in an error in state: 261. +## Ends in an error in state: 262. ## ## field_path_assignment -> path . COLON expr [ RBRACE COMMA ] ## @@ -1018,14 +1005,14 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA Ident COMMA ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 251, spurious reduction of production path -> Ident +## In state 253, spurious reduction of production path -> Ident ## interactive_expr: LBRACE ELLIPSIS Ident COMMA WILD ## -## Ends in an error in state: 260. +## Ends in an error in state: 259. ## ## update_record -> LBRACE ELLIPSIS path COMMA . sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -1037,7 +1024,7 @@ interactive_expr: LBRACE ELLIPSIS Ident COMMA WILD interactive_expr: LBRACE ELLIPSIS Ident WILD ## -## Ends in an error in state: 254. +## Ends in an error in state: 253. ## ## path -> Ident . [ COMMA COLON ] ## projection -> Ident . selection [ COMMA COLON ] @@ -1050,7 +1037,7 @@ interactive_expr: LBRACE ELLIPSIS Ident WILD interactive_expr: LBRACE ELLIPSIS WILD ## -## Ends in an error in state: 253. +## Ends in an error in state: 252. ## ## update_record -> LBRACE ELLIPSIS . path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -1062,7 +1049,7 @@ interactive_expr: LBRACE ELLIPSIS WILD interactive_expr: LBRACE Ident COLON Bytes VBAR ## -## Ends in an error in state: 484. +## Ends in an error in state: 469. ## ## record -> LBRACE field_assignment . option(more_field_assignments) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -1073,27 +1060,27 @@ interactive_expr: LBRACE Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 470, spurious reduction of production field_assignment -> Ident COLON expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 455, spurious reduction of production field_assignment -> Ident COLON expr ## interactive_expr: LBRACE Ident COLON VBAR ## -## Ends in an error in state: 469. +## Ends in an error in state: 454. ## ## field_assignment -> Ident COLON . expr [ RBRACE COMMA ] ## @@ -1105,7 +1092,7 @@ interactive_expr: LBRACE Ident COLON VBAR interactive_expr: LBRACE Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 474. +## Ends in an error in state: 459. ## ## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . [ RBRACE ] ## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . COMMA nsepseq(field_assignment_punning,COMMA) [ RBRACE ] @@ -1118,28 +1105,28 @@ interactive_expr: LBRACE Ident COMMA Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 470, spurious reduction of production field_assignment -> Ident COLON expr -## In state 481, spurious reduction of production field_assignment_punning -> field_assignment +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 455, spurious reduction of production field_assignment -> Ident COLON expr +## In state 466, spurious reduction of production field_assignment_punning -> field_assignment ## interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COLON Bytes VBAR ## -## Ends in an error in state: 478. +## Ends in an error in state: 463. ## ## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . [ RBRACE ] ## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning . COMMA nsepseq(field_assignment_punning,COMMA) [ RBRACE ] @@ -1152,28 +1139,28 @@ interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COLON Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 470, spurious reduction of production field_assignment -> Ident COLON expr -## In state 481, spurious reduction of production field_assignment_punning -> field_assignment +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 455, spurious reduction of production field_assignment -> Ident COLON expr +## In state 466, spurious reduction of production field_assignment_punning -> field_assignment ## interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COMMA WILD ## -## Ends in an error in state: 479. +## Ends in an error in state: 464. ## ## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning COMMA . nsepseq(field_assignment_punning,COMMA) [ RBRACE ] ## seq(__anonymous_0(field_assignment_punning,COMMA)) -> field_assignment_punning COMMA . seq(__anonymous_0(field_assignment_punning,COMMA)) [ RBRACE ] @@ -1186,7 +1173,7 @@ interactive_expr: LBRACE Ident COMMA Ident COMMA Ident COMMA WILD interactive_expr: LBRACE Ident COMMA Ident COMMA WILD ## -## Ends in an error in state: 475. +## Ends in an error in state: 460. ## ## nsepseq(field_assignment_punning,COMMA) -> field_assignment_punning COMMA . nsepseq(field_assignment_punning,COMMA) [ RBRACE ] ## nseq(__anonymous_0(field_assignment_punning,COMMA)) -> field_assignment_punning COMMA . seq(__anonymous_0(field_assignment_punning,COMMA)) [ RBRACE ] @@ -1199,7 +1186,7 @@ interactive_expr: LBRACE Ident COMMA Ident COMMA WILD interactive_expr: LBRACE Ident COMMA Ident WILD ## -## Ends in an error in state: 468. +## Ends in an error in state: 453. ## ## field_assignment -> Ident . COLON expr [ RBRACE COMMA ] ## field_assignment_punning -> Ident . [ RBRACE COMMA ] @@ -1212,7 +1199,7 @@ interactive_expr: LBRACE Ident COMMA Ident WILD interactive_expr: LBRACE Ident COMMA WILD ## -## Ends in an error in state: 467. +## Ends in an error in state: 452. ## ## more_field_assignments -> COMMA . sep_or_term_list(field_assignment_punning,COMMA) [ RBRACE ] ## @@ -1224,7 +1211,7 @@ interactive_expr: LBRACE Ident COMMA WILD interactive_expr: LBRACE Ident WILD ## -## Ends in an error in state: 466. +## Ends in an error in state: 451. ## ## common_expr -> Ident . [ TIMES SLASH SEMI RBRACE PLUS Or NE Mod MINUS LT LPAR LE GT GE EQEQ COLON CAT BOOL_OR BOOL_AND ARROW ] ## field_assignment -> Ident . COLON expr [ RBRACE COMMA ] @@ -1239,7 +1226,7 @@ interactive_expr: LBRACE Ident WILD interactive_expr: LBRACE VBAR ## -## Ends in an error in state: 95. +## Ends in an error in state: 97. ## ## record -> LBRACE . field_assignment option(more_field_assignments) RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## record -> LBRACE . Ident more_field_assignments RBRACE [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -1254,7 +1241,7 @@ interactive_expr: LBRACE VBAR interactive_expr: LBRACE WILD SEMI VBAR ## -## Ends in an error in state: 491. +## Ends in an error in state: 476. ## ## exprs -> expr_with_let_expr SEMI . exprs [ RBRACE ] ## option(SEMI) -> SEMI . [ RBRACE ] @@ -1267,7 +1254,7 @@ interactive_expr: LBRACE WILD SEMI VBAR interactive_expr: LBRACE WILD VBAR ## -## Ends in an error in state: 490. +## Ends in an error in state: 475. ## ## exprs -> expr_with_let_expr . option(SEMI) [ RBRACE ] ## exprs -> expr_with_let_expr . SEMI exprs [ RBRACE ] @@ -1279,81 +1266,27 @@ interactive_expr: LBRACE WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 407, spurious reduction of production expr_with_let_expr -> expr -## - - - -interactive_expr: LBRACKET PERCENT Constr VBAR -## -## Ends in an error in state: 95. -## -## code_insert -> LBRACKET PERCENT Constr . expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT Constr -## - - - -interactive_expr: LBRACKET PERCENT Constr WILD VBAR -## -## Ends in an error in state: 495. -## -## code_insert -> LBRACKET PERCENT Constr expr . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT Constr 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 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## - - - -interactive_expr: LBRACKET PERCENT WILD -## -## Ends in an error in state: 94. -## -## code_insert -> LBRACKET PERCENT . Constr expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] -## -## The known suffix of the stack is as follows: -## LBRACKET PERCENT +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 402, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: LBRACKET VBAR ## -## Ends in an error in state: 93. +## Ends in an error in state: 95. ## ## list_or_spread -> LBRACKET . expr COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## list_or_spread -> LBRACKET . expr COMMA ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -1367,7 +1300,7 @@ interactive_expr: LBRACKET VBAR interactive_expr: LBRACKET WILD COMMA ELLIPSIS VBAR ## -## Ends in an error in state: 501. +## Ends in an error in state: 493. ## ## list_or_spread -> LBRACKET expr COMMA ELLIPSIS . expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -1379,7 +1312,7 @@ interactive_expr: LBRACKET WILD COMMA ELLIPSIS VBAR interactive_expr: LBRACKET WILD COMMA ELLIPSIS WILD VBAR ## -## Ends in an error in state: 502. +## Ends in an error in state: 494. ## ## list_or_spread -> LBRACKET expr COMMA ELLIPSIS expr . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -1390,26 +1323,26 @@ interactive_expr: LBRACKET WILD COMMA ELLIPSIS WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: LBRACKET WILD COMMA VBAR ## -## Ends in an error in state: 500. +## Ends in an error in state: 492. ## ## list_or_spread -> LBRACKET expr COMMA . sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## list_or_spread -> LBRACKET expr COMMA . ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -1422,7 +1355,7 @@ interactive_expr: LBRACKET WILD COMMA VBAR interactive_expr: LBRACKET WILD COMMA WILD COMMA VBAR ## -## Ends in an error in state: 509. +## Ends in an error in state: 501. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] ## nseq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] @@ -1435,7 +1368,7 @@ interactive_expr: LBRACKET WILD COMMA WILD COMMA VBAR interactive_expr: LBRACKET WILD COMMA WILD COMMA WILD COMMA VBAR ## -## Ends in an error in state: 512. +## Ends in an error in state: 504. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RBRACKET ] ## seq(__anonymous_0(expr,COMMA)) -> expr COMMA . seq(__anonymous_0(expr,COMMA)) [ RBRACKET ] @@ -1448,7 +1381,7 @@ interactive_expr: LBRACKET WILD COMMA WILD COMMA WILD COMMA VBAR interactive_expr: LBRACKET WILD COMMA WILD COMMA WILD VBAR ## -## Ends in an error in state: 511. +## Ends in an error in state: 503. ## ## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] @@ -1461,26 +1394,26 @@ interactive_expr: LBRACKET WILD COMMA WILD COMMA WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: LBRACKET WILD COMMA WILD VBAR ## -## Ends in an error in state: 508. +## Ends in an error in state: 500. ## ## nsepseq(expr,COMMA) -> expr . [ RBRACKET ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RBRACKET ] @@ -1493,26 +1426,26 @@ interactive_expr: LBRACKET WILD COMMA WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: LBRACKET WILD VBAR ## -## Ends in an error in state: 499. +## Ends in an error in state: 491. ## ## list_or_spread -> LBRACKET expr . COMMA sep_or_term_list(expr,COMMA) RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## list_or_spread -> LBRACKET expr . COMMA ELLIPSIS expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -1525,19 +1458,19 @@ interactive_expr: LBRACKET WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## @@ -1558,7 +1491,7 @@ interactive_expr: LPAR VBAR interactive_expr: LPAR WILD COMMA Bytes RPAR COLON Ident TIMES ## -## Ends in an error in state: 171. +## Ends in an error in state: 170. ## ## base_expr -> disj_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] @@ -1572,18 +1505,18 @@ interactive_expr: LPAR WILD COMMA Bytes RPAR COLON Ident TIMES ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 136, spurious reduction of production option(type_expr_simple_args) -> -## In state 145, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) -## In state 152, spurious reduction of production type_annotation_simple -> COLON type_expr_simple -## In state 153, spurious reduction of production option(type_annotation_simple) -> type_annotation_simple -## In state 154, spurious reduction of production disj_expr_level -> par(tuple(disj_expr_level)) option(type_annotation_simple) +## In state 138, spurious reduction of production option(type_expr_simple_args) -> +## In state 147, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 154, spurious reduction of production type_annotation_simple -> COLON type_expr_simple +## In state 155, spurious reduction of production option(type_annotation_simple) -> type_annotation_simple +## In state 156, spurious reduction of production disj_expr_level -> par(tuple(disj_expr_level)) option(type_annotation_simple) ## interactive_expr: LPAR WILD COMMA Bytes RPAR WILD ## -## Ends in an error in state: 133. +## Ends in an error in state: 135. ## ## disj_expr_level -> par(tuple(disj_expr_level)) . option(type_annotation_simple) [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] ## @@ -1595,7 +1528,7 @@ interactive_expr: LPAR WILD COMMA Bytes RPAR WILD interactive_expr: LPAR WILD COMMA VBAR ## -## Ends in an error in state: 454. +## Ends in an error in state: 484. ## ## tuple(disj_expr_level) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] ## @@ -1607,7 +1540,7 @@ interactive_expr: LPAR WILD COMMA VBAR interactive_expr: LPAR WILD COMMA WILD COMMA VBAR ## -## Ends in an error in state: 457. +## Ends in an error in state: 487. ## ## nsepseq(disj_expr_level,COMMA) -> disj_expr_level COMMA . nsepseq(disj_expr_level,COMMA) [ RPAR ] ## @@ -1619,7 +1552,7 @@ interactive_expr: LPAR WILD COMMA WILD COMMA VBAR interactive_expr: LPAR WILD COMMA WILD VBAR ## -## Ends in an error in state: 456. +## Ends in an error in state: 486. ## ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ RPAR Or COMMA BOOL_OR ] ## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level . Or conj_expr_level [ RPAR Or COMMA BOOL_OR ] @@ -1633,23 +1566,23 @@ interactive_expr: LPAR WILD COMMA WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 158, spurious reduction of production call_expr_level_in -> core_expr -## In state 176, spurious reduction of production option(type_annotation_simple) -> -## In state 177, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 178, spurious reduction of production unary_expr_level -> call_expr_level -## In state 131, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 155, spurious reduction of production add_expr_level -> mult_expr_level -## In state 186, spurious reduction of production cat_expr_level -> add_expr_level -## In state 207, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 214, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 221, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level ## interactive_expr: LPAR WILD VBAR ## -## Ends in an error in state: 453. +## Ends in an error in state: 483. ## ## base_expr -> disj_expr_level . [ RPAR ] ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level . BOOL_OR conj_expr_level [ RPAR Or COMMA BOOL_OR ARROW ] @@ -1664,23 +1597,65 @@ interactive_expr: LPAR WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 158, spurious reduction of production call_expr_level_in -> core_expr -## In state 176, spurious reduction of production option(type_annotation_simple) -> -## In state 177, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 178, spurious reduction of production unary_expr_level -> call_expr_level -## In state 131, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 155, spurious reduction of production add_expr_level -> mult_expr_level -## In state 186, spurious reduction of production cat_expr_level -> add_expr_level -## In state 207, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 214, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 221, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## + + + +interactive_expr: Lang VBAR +## +## Ends in an error in state: 90. +## +## code_inj -> Lang . expr RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Lang +## + + + +interactive_expr: Lang WILD VBAR +## +## Ends in an error in state: 508. +## +## code_inj -> Lang expr . RBRACKET [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] +## +## The known suffix of the stack is as follows: +## Lang 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 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: Let Rec Verbatim ## -## Ends in an error in state: 354. +## Ends in an error in state: 356. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let Rec . let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1692,7 +1667,7 @@ interactive_expr: Let Rec Verbatim interactive_expr: Let Rec WILD EQ Bytes SEMI VBAR ## -## Ends in an error in state: 397. +## Ends in an error in state: 399. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let Rec let_binding SEMI . expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1704,7 +1679,7 @@ interactive_expr: Let Rec WILD EQ Bytes SEMI VBAR interactive_expr: Let Rec WILD EQ Bytes VBAR ## -## Ends in an error in state: 396. +## Ends in an error in state: 398. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let Rec let_binding . SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1715,27 +1690,27 @@ interactive_expr: Let Rec WILD EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 158, spurious reduction of production call_expr_level_in -> core_expr -## In state 176, spurious reduction of production option(type_annotation_simple) -> -## In state 177, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 178, spurious reduction of production unary_expr_level -> call_expr_level -## In state 131, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 155, spurious reduction of production add_expr_level -> mult_expr_level -## In state 186, spurious reduction of production cat_expr_level -> add_expr_level -## In state 207, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 214, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 221, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 168, spurious reduction of production base_expr -> disj_expr_level -## In state 225, spurious reduction of production base_cond -> base_expr -## In state 226, spurious reduction of production expr -> base_cond -## In state 520, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 524, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr ## interactive_expr: Let Verbatim ## -## Ends in an error in state: 353. +## Ends in an error in state: 355. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let . let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## let_expr(expr_with_let_expr) -> seq(Attr) Let . Rec let_binding SEMI expr_with_let_expr [ SEMI RBRACE EOF ] @@ -1748,7 +1723,7 @@ interactive_expr: Let Verbatim interactive_expr: Let WILD EQ Bytes SEMI VBAR ## -## Ends in an error in state: 409. +## Ends in an error in state: 404. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let let_binding SEMI . expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1760,7 +1735,7 @@ interactive_expr: Let WILD EQ Bytes SEMI VBAR interactive_expr: Let WILD EQ Bytes VBAR ## -## Ends in an error in state: 408. +## Ends in an error in state: 403. ## ## let_expr(expr_with_let_expr) -> seq(Attr) Let let_binding . SEMI expr_with_let_expr [ SEMI RBRACE EOF ] ## @@ -1771,20 +1746,20 @@ interactive_expr: Let WILD EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 529, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 524, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr ## @@ -1803,7 +1778,7 @@ interactive_expr: MINUS VBAR interactive_expr: NOT VBAR ## -## Ends in an error in state: 92. +## Ends in an error in state: 91. ## ## unary_expr_level -> NOT . call_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -1815,7 +1790,7 @@ interactive_expr: NOT VBAR interactive_expr: Switch Constr WILD ## -## Ends in an error in state: 116. +## Ends in an error in state: 117. ## ## module_field -> Constr . DOT module_fun [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## projection -> Constr . DOT Ident selection [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -1828,7 +1803,7 @@ interactive_expr: Switch Constr WILD interactive_expr: Switch LBRACE WILD ## -## Ends in an error in state: 252. +## Ends in an error in state: 251. ## ## update_record -> LBRACE . ELLIPSIS path COMMA sep_or_term_list(field_path_assignment,COMMA) RBRACE [ LBRACE ] ## @@ -1840,7 +1815,7 @@ interactive_expr: Switch LBRACE WILD interactive_expr: Switch LBRACKET VBAR ## -## Ends in an error in state: 239. +## Ends in an error in state: 238. ## ## list__(expr) -> LBRACKET . option(sep_or_term_list(expr,SEMI)) RBRACKET [ LBRACE ] ## @@ -1852,7 +1827,7 @@ interactive_expr: Switch LBRACKET VBAR interactive_expr: Switch LBRACKET WILD SEMI VBAR ## -## Ends in an error in state: 246. +## Ends in an error in state: 245. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -1865,7 +1840,7 @@ interactive_expr: Switch LBRACKET WILD SEMI VBAR interactive_expr: Switch LBRACKET WILD SEMI WILD SEMI VBAR ## -## Ends in an error in state: 250. +## Ends in an error in state: 249. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET ] ## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET ] @@ -1878,7 +1853,7 @@ interactive_expr: Switch LBRACKET WILD SEMI WILD SEMI VBAR interactive_expr: Switch LBRACKET WILD SEMI WILD VBAR ## -## Ends in an error in state: 249. +## Ends in an error in state: 248. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -1891,26 +1866,26 @@ interactive_expr: Switch LBRACKET WILD SEMI WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: Switch LBRACKET WILD VBAR ## -## Ends in an error in state: 245. +## Ends in an error in state: 244. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET ] @@ -1923,26 +1898,26 @@ interactive_expr: Switch LBRACKET WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## interactive_expr: Switch LPAR VBAR ## -## Ends in an error in state: 90. +## Ends in an error in state: 92. ## ## par(expr) -> LPAR . expr RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -1955,7 +1930,7 @@ interactive_expr: Switch LPAR VBAR interactive_expr: Switch LPAR WILD VBAR ## -## Ends in an error in state: 458. +## Ends in an error in state: 481. ## ## par(expr) -> LPAR expr . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LPAR LE LBRACE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -1966,19 +1941,19 @@ interactive_expr: Switch LPAR WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## @@ -1997,7 +1972,7 @@ interactive_expr: Switch VBAR interactive_expr: Switch WILD LBRACE VBAR LBRACKET VBAR ## -## Ends in an error in state: 342. +## Ends in an error in state: 337. ## ## list__(sub_pattern) -> LBRACKET . option(sep_or_term_list(sub_pattern,SEMI)) RBRACKET [ COMMA ARROW ] ## pattern -> LBRACKET . sub_pattern COMMA ELLIPSIS sub_pattern RBRACKET [ ARROW ] @@ -2010,7 +1985,7 @@ interactive_expr: Switch WILD LBRACE VBAR LBRACKET VBAR interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS VBAR ## -## Ends in an error in state: 345. +## Ends in an error in state: 340. ## ## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS . sub_pattern RBRACKET [ ARROW ] ## @@ -2022,7 +1997,7 @@ interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS VBAR interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS WILD WILD ## -## Ends in an error in state: 346. +## Ends in an error in state: 341. ## ## pattern -> LBRACKET sub_pattern COMMA ELLIPSIS sub_pattern . RBRACKET [ ARROW ] ## @@ -2034,7 +2009,7 @@ interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD COMMA ELLIPSIS WILD WILD interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD COMMA WILD ## -## Ends in an error in state: 344. +## Ends in an error in state: 339. ## ## pattern -> LBRACKET sub_pattern COMMA . ELLIPSIS sub_pattern RBRACKET [ ARROW ] ## @@ -2046,7 +2021,7 @@ interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD COMMA WILD interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD WILD ## -## Ends in an error in state: 343. +## Ends in an error in state: 338. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -2061,7 +2036,7 @@ interactive_expr: Switch WILD LBRACE VBAR LBRACKET WILD WILD interactive_expr: Switch WILD LBRACE VBAR LPAR Bytes RPAR WILD ## -## Ends in an error in state: 349. +## Ends in an error in state: 344. ## ## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ ARROW ] ## @@ -2073,7 +2048,7 @@ interactive_expr: Switch WILD LBRACE VBAR LPAR Bytes RPAR WILD interactive_expr: Switch WILD LBRACE VBAR VBAR ## -## Ends in an error in state: 517. +## Ends in an error in state: 512. ## ## case_clause(base_cond) -> VBAR . pattern ARROW base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2085,7 +2060,7 @@ interactive_expr: Switch WILD LBRACE VBAR VBAR interactive_expr: Switch WILD LBRACE VBAR WILD ARROW Bytes SEMI WILD ## -## Ends in an error in state: 525. +## Ends in an error in state: 520. ## ## nseq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] ## @@ -2097,7 +2072,7 @@ interactive_expr: Switch WILD LBRACE VBAR WILD ARROW Bytes SEMI WILD interactive_expr: Switch WILD LBRACE VBAR WILD ARROW Bytes VBAR Bytes ARROW Bytes SEMI WILD ## -## Ends in an error in state: 527. +## Ends in an error in state: 522. ## ## seq(case_clause(base_cond)) -> case_clause(base_cond) . seq(case_clause(base_cond)) [ RBRACE ] ## @@ -2109,7 +2084,7 @@ interactive_expr: Switch WILD LBRACE VBAR WILD ARROW Bytes VBAR Bytes ARROW Byte interactive_expr: Switch WILD LBRACE VBAR WILD ARROW VBAR ## -## Ends in an error in state: 519. +## Ends in an error in state: 514. ## ## case_clause(base_cond) -> VBAR pattern ARROW . base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2121,7 +2096,7 @@ interactive_expr: Switch WILD LBRACE VBAR WILD ARROW VBAR interactive_expr: Switch WILD LBRACE VBAR WILD ARROW WILD Type ## -## Ends in an error in state: 520. +## Ends in an error in state: 515. ## ## case_clause(base_cond) -> VBAR pattern ARROW base_cond . option(SEMI) [ VBAR RBRACE ] ## @@ -2132,25 +2107,25 @@ interactive_expr: Switch WILD LBRACE VBAR WILD ARROW WILD Type ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr ## interactive_expr: Switch WILD LBRACE VBAR WILD COMMA Bytes RPAR ## -## Ends in an error in state: 518. +## Ends in an error in state: 513. ## ## case_clause(base_cond) -> VBAR pattern . ARROW base_cond option(SEMI) [ VBAR RBRACE ] ## @@ -2161,16 +2136,16 @@ interactive_expr: Switch WILD LBRACE VBAR WILD COMMA Bytes RPAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 336, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 339, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 348, spurious reduction of production pattern -> tuple(sub_pattern) +## In state 331, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 334, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 343, spurious reduction of production pattern -> tuple(sub_pattern) ## interactive_expr: Switch WILD LBRACE VBAR WILD COMMA VBAR ## -## Ends in an error in state: 335. +## Ends in an error in state: 330. ## ## tuple(sub_pattern) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] ## @@ -2182,7 +2157,7 @@ interactive_expr: Switch WILD LBRACE VBAR WILD COMMA VBAR interactive_expr: Switch WILD LBRACE VBAR WILD COMMA WILD COMMA VBAR ## -## Ends in an error in state: 337. +## Ends in an error in state: 332. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern COMMA . nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] ## @@ -2194,7 +2169,7 @@ interactive_expr: Switch WILD LBRACE VBAR WILD COMMA WILD COMMA VBAR interactive_expr: Switch WILD LBRACE VBAR WILD COMMA WILD WILD ## -## Ends in an error in state: 336. +## Ends in an error in state: 331. ## ## nsepseq(sub_pattern,COMMA) -> sub_pattern . [ RPAR ARROW ] ## nsepseq(sub_pattern,COMMA) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ARROW ] @@ -2207,7 +2182,7 @@ interactive_expr: Switch WILD LBRACE VBAR WILD COMMA WILD WILD interactive_expr: Switch WILD LBRACE VBAR WILD WILD ## -## Ends in an error in state: 436. +## Ends in an error in state: 431. ## ## pattern -> core_pattern . [ ARROW ] ## sub_pattern -> core_pattern . [ COMMA ] @@ -2220,7 +2195,7 @@ interactive_expr: Switch WILD LBRACE VBAR WILD WILD interactive_expr: Switch WILD LBRACE WILD ## -## Ends in an error in state: 516. +## Ends in an error in state: 511. ## ## switch_expr(base_cond) -> Switch switch_expr_ LBRACE . cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## @@ -2232,7 +2207,7 @@ interactive_expr: Switch WILD LBRACE WILD interactive_expr: Switch WILD WILD ## -## Ends in an error in state: 515. +## Ends in an error in state: 510. ## ## switch_expr(base_cond) -> Switch switch_expr_ . LBRACE cases(base_cond) RBRACE [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## @@ -2244,7 +2219,7 @@ interactive_expr: Switch WILD WILD interactive_expr: VBAR ## -## Ends in an error in state: 540. +## Ends in an error in state: 535. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -2256,7 +2231,7 @@ interactive_expr: VBAR interactive_expr: WILD ARROW VBAR ## -## Ends in an error in state: 221. +## Ends in an error in state: 220. ## ## fun_expr(expr) -> disj_expr_level ARROW . expr [ VBAR Type SEMI RPAR RBRACKET RBRACE Let EOF COMMA Attr ] ## @@ -2268,7 +2243,7 @@ interactive_expr: WILD ARROW VBAR interactive_expr: WILD BOOL_AND VBAR ## -## Ends in an error in state: 175. +## Ends in an error in state: 174. ## ## bin_op(conj_expr_level,BOOL_AND,comp_expr_level) -> conj_expr_level BOOL_AND . comp_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2280,7 +2255,7 @@ interactive_expr: WILD BOOL_AND VBAR interactive_expr: WILD BOOL_OR VBAR ## -## Ends in an error in state: 219. +## Ends in an error in state: 218. ## ## bin_op(disj_expr_level,BOOL_OR,conj_expr_level) -> disj_expr_level BOOL_OR . conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] ## @@ -2292,7 +2267,7 @@ interactive_expr: WILD BOOL_OR VBAR interactive_expr: WILD CAT VBAR ## -## Ends in an error in state: 198. +## Ends in an error in state: 197. ## ## bin_op(add_expr_level,CAT,cat_expr_level) -> add_expr_level CAT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2304,7 +2279,7 @@ interactive_expr: WILD CAT VBAR interactive_expr: WILD COLON Ident LPAR Ident VBAR ## -## Ends in an error in state: 141. +## Ends in an error in state: 140. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] @@ -2316,15 +2291,15 @@ interactive_expr: WILD COLON Ident LPAR Ident VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 139, spurious reduction of production option(type_expr_simple_args) -> -## In state 148, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 138, spurious reduction of production option(type_expr_simple_args) -> +## In state 147, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) ## interactive_expr: WILD COLON Ident LPAR WILD ## -## Ends in an error in state: 140. +## Ends in an error in state: 139. ## ## par(nsepseq(type_expr_simple,COMMA)) -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2336,7 +2311,7 @@ interactive_expr: WILD COLON Ident LPAR WILD interactive_expr: WILD COLON Ident WILD ## -## Ends in an error in state: 139. +## Ends in an error in state: 138. ## ## type_expr_simple -> Ident . option(type_expr_simple_args) [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2348,7 +2323,7 @@ interactive_expr: WILD COLON Ident WILD interactive_expr: WILD COLON LPAR Ident ARROW Ident VBAR ## -## Ends in an error in state: 151. +## Ends in an error in state: 150. ## ## type_expr_simple -> LPAR type_expr_simple ARROW type_expr_simple . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2359,15 +2334,15 @@ interactive_expr: WILD COLON LPAR Ident ARROW Ident VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 139, spurious reduction of production option(type_expr_simple_args) -> -## In state 148, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 138, spurious reduction of production option(type_expr_simple_args) -> +## In state 147, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) ## interactive_expr: WILD COLON LPAR Ident ARROW WILD ## -## Ends in an error in state: 150. +## Ends in an error in state: 149. ## ## type_expr_simple -> LPAR type_expr_simple ARROW . type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2379,7 +2354,7 @@ interactive_expr: WILD COLON LPAR Ident ARROW WILD interactive_expr: WILD COLON LPAR Ident COMMA WILD ## -## Ends in an error in state: 142. +## Ends in an error in state: 141. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple COMMA . nsepseq(type_expr_simple,COMMA) [ RPAR ] ## @@ -2391,7 +2366,7 @@ interactive_expr: WILD COLON LPAR Ident COMMA WILD interactive_expr: WILD COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 158. +## Ends in an error in state: 157. ## ## add_expr_level -> mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -2406,7 +2381,7 @@ interactive_expr: WILD COLON LPAR Ident RPAR WILD interactive_expr: WILD COLON LPAR Ident VBAR ## -## Ends in an error in state: 149. +## Ends in an error in state: 148. ## ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . [ RPAR ] ## nsepseq(type_expr_simple,COMMA) -> type_expr_simple . COMMA nsepseq(type_expr_simple,COMMA) [ RPAR ] @@ -2419,15 +2394,15 @@ interactive_expr: WILD COLON LPAR Ident VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 139, spurious reduction of production option(type_expr_simple_args) -> -## In state 148, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) +## In state 138, spurious reduction of production option(type_expr_simple_args) -> +## In state 147, spurious reduction of production type_expr_simple -> Ident option(type_expr_simple_args) ## interactive_expr: WILD COLON LPAR WILD ## -## Ends in an error in state: 138. +## Ends in an error in state: 137. ## ## type_expr_simple -> LPAR . nsepseq(type_expr_simple,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## type_expr_simple -> LPAR . type_expr_simple ARROW type_expr_simple RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -2440,7 +2415,7 @@ interactive_expr: WILD COLON LPAR WILD interactive_expr: WILD COLON WILD ## -## Ends in an error in state: 137. +## Ends in an error in state: 136. ## ## type_annotation_simple -> COLON . type_expr_simple [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2452,7 +2427,7 @@ interactive_expr: WILD COLON WILD interactive_expr: WILD EQEQ VBAR ## -## Ends in an error in state: 208. +## Ends in an error in state: 207. ## ## bin_op(comp_expr_level,EQEQ,cat_expr_level) -> comp_expr_level EQEQ . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2464,7 +2439,7 @@ interactive_expr: WILD EQEQ VBAR interactive_expr: WILD GE VBAR ## -## Ends in an error in state: 206. +## Ends in an error in state: 205. ## ## bin_op(comp_expr_level,GE,cat_expr_level) -> comp_expr_level GE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2476,7 +2451,7 @@ interactive_expr: WILD GE VBAR interactive_expr: WILD GT VBAR ## -## Ends in an error in state: 201. +## Ends in an error in state: 203. ## ## bin_op(comp_expr_level,GT,cat_expr_level) -> comp_expr_level GT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2488,7 +2463,7 @@ interactive_expr: WILD GT VBAR interactive_expr: WILD LE VBAR ## -## Ends in an error in state: 199. +## Ends in an error in state: 201. ## ## bin_op(comp_expr_level,LE,cat_expr_level) -> comp_expr_level LE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2500,7 +2475,7 @@ interactive_expr: WILD LE VBAR interactive_expr: WILD LPAR VBAR ## -## Ends in an error in state: 159. +## Ends in an error in state: 161. ## ## call_expr -> core_expr LPAR . nsepseq(expr,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## unit -> LPAR . RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -2513,7 +2488,7 @@ interactive_expr: WILD LPAR VBAR interactive_expr: WILD LPAR WILD COMMA VBAR ## -## Ends in an error in state: 166. +## Ends in an error in state: 168. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] ## @@ -2525,7 +2500,7 @@ interactive_expr: WILD LPAR WILD COMMA VBAR interactive_expr: WILD LPAR WILD VBAR ## -## Ends in an error in state: 165. +## Ends in an error in state: 167. ## ## nsepseq(expr,COMMA) -> expr . [ RPAR ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RPAR ] @@ -2537,26 +2512,26 @@ interactive_expr: WILD LPAR WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 158, spurious reduction of production call_expr_level_in -> core_expr -## In state 176, spurious reduction of production option(type_annotation_simple) -> -## In state 177, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 178, spurious reduction of production unary_expr_level -> call_expr_level -## In state 131, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 155, spurious reduction of production add_expr_level -> mult_expr_level -## In state 186, spurious reduction of production cat_expr_level -> add_expr_level -## In state 207, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 214, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 221, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 168, spurious reduction of production base_expr -> disj_expr_level -## In state 225, spurious reduction of production base_cond -> base_expr -## In state 226, spurious reduction of production expr -> base_cond +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond ## Missing `)`. interactive_expr: WILD LT VBAR ## -## Ends in an error in state: 197. +## Ends in an error in state: 199. ## ## bin_op(comp_expr_level,LT,cat_expr_level) -> comp_expr_level LT . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2568,7 +2543,7 @@ interactive_expr: WILD LT VBAR interactive_expr: WILD MINUS VBAR ## -## Ends in an error in state: 193. +## Ends in an error in state: 195. ## ## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS . mult_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2580,7 +2555,7 @@ interactive_expr: WILD MINUS VBAR interactive_expr: WILD MINUS WILD COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 194. +## Ends in an error in state: 196. ## ## bin_op(add_expr_level,MINUS,mult_expr_level) -> add_expr_level MINUS mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -2595,7 +2570,7 @@ interactive_expr: WILD MINUS WILD COLON LPAR Ident RPAR WILD interactive_expr: WILD Mod VBAR ## -## Ends in an error in state: 191. +## Ends in an error in state: 193. ## ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level Mod . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2607,7 +2582,7 @@ interactive_expr: WILD Mod VBAR interactive_expr: WILD NE VBAR ## -## Ends in an error in state: 177. +## Ends in an error in state: 176. ## ## bin_op(comp_expr_level,NE,cat_expr_level) -> comp_expr_level NE . cat_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or NE Let LT LE GT GE EQEQ EOF COMMA BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2619,7 +2594,7 @@ interactive_expr: WILD NE VBAR interactive_expr: WILD Or VBAR ## -## Ends in an error in state: 172. +## Ends in an error in state: 171. ## ## bin_op(disj_expr_level,Or,conj_expr_level) -> disj_expr_level Or . conj_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE Or Let EOF COMMA BOOL_OR Attr ARROW ] ## @@ -2631,7 +2606,7 @@ interactive_expr: WILD Or VBAR interactive_expr: WILD PLUS VBAR ## -## Ends in an error in state: 190. +## Ends in an error in state: 189. ## ## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS . mult_expr_level [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2643,7 +2618,7 @@ interactive_expr: WILD PLUS VBAR interactive_expr: WILD PLUS WILD COLON LPAR Ident RPAR WILD ## -## Ends in an error in state: 191. +## Ends in an error in state: 190. ## ## bin_op(add_expr_level,PLUS,mult_expr_level) -> add_expr_level PLUS mult_expr_level . [ VBAR Type SEMI RPAR RBRACKET RBRACE PLUS Or NE MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## bin_op(mult_expr_level,Mod,unary_expr_level) -> mult_expr_level . Mod unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -2658,7 +2633,7 @@ interactive_expr: WILD PLUS WILD COLON LPAR Ident RPAR WILD interactive_expr: WILD SLASH VBAR ## -## Ends in an error in state: 192. +## Ends in an error in state: 191. ## ## bin_op(mult_expr_level,SLASH,unary_expr_level) -> mult_expr_level SLASH . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2670,7 +2645,7 @@ interactive_expr: WILD SLASH VBAR interactive_expr: WILD TIMES VBAR ## -## Ends in an error in state: 159. +## Ends in an error in state: 158. ## ## bin_op(mult_expr_level,TIMES,unary_expr_level) -> mult_expr_level TIMES . unary_expr_level [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA CAT BOOL_OR BOOL_AND Attr ARROW ] ## @@ -2682,7 +2657,7 @@ interactive_expr: WILD TIMES VBAR interactive_expr: WILD VBAR ## -## Ends in an error in state: 542. +## Ends in an error in state: 537. ## ## interactive_expr -> expr_with_let_expr . EOF [ # ] ## @@ -2693,27 +2668,27 @@ interactive_expr: WILD VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 407, spurious reduction of production expr_with_let_expr -> expr +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 402, spurious reduction of production expr_with_let_expr -> expr ## interactive_expr: WILD WILD ## -## Ends in an error in state: 161. +## Ends in an error in state: 160. ## ## call_expr -> core_expr . LPAR nsepseq(expr,COMMA) RPAR [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] ## call_expr -> core_expr . unit [ VBAR Type TIMES SLASH SEMI RPAR RBRACKET RBRACE PLUS Or NE Mod MINUS Let LT LE GT GE EQEQ EOF COMMA COLON CAT BOOL_OR BOOL_AND Attr ARROW ] @@ -2739,7 +2714,7 @@ contract: Attr WILD contract: Let Ident COLON String WILD ## -## Ends in an error in state: 383. +## Ends in an error in state: 378. ## ## let_binding -> Ident option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## @@ -2751,7 +2726,7 @@ contract: Let Ident COLON String WILD contract: Let Ident EQ VBAR ## -## Ends in an error in state: 384. +## Ends in an error in state: 379. ## ## let_binding -> Ident option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## @@ -2768,7 +2743,7 @@ let func = (a: int, b: int) => a + b; contract: Let Ident WILD ## -## Ends in an error in state: 382. +## Ends in an error in state: 377. ## ## let_binding -> Ident . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> Ident . [ COMMA ] @@ -2781,7 +2756,7 @@ contract: Let Ident WILD contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes COMMA WILD ## -## Ends in an error in state: 318. +## Ends in an error in state: 313. ## ## nsepseq(field_pattern,COMMA) -> field_pattern COMMA . nsepseq(field_pattern,COMMA) [ RBRACE ] ## seq(__anonymous_0(field_pattern,COMMA)) -> field_pattern COMMA . seq(__anonymous_0(field_pattern,COMMA)) [ RBRACE ] @@ -2794,7 +2769,7 @@ contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes COMMA WILD contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes WILD ## -## Ends in an error in state: 310. +## Ends in an error in state: 312. ## ## nsepseq(field_pattern,COMMA) -> field_pattern . [ RBRACE ] ## nsepseq(field_pattern,COMMA) -> field_pattern . COMMA nsepseq(field_pattern,COMMA) [ RBRACE ] @@ -2808,7 +2783,7 @@ contract: Let LBRACE Ident EQ Bytes COMMA Ident EQ Bytes WILD contract: Let LBRACE Ident EQ Bytes COMMA WILD ## -## Ends in an error in state: 307. +## Ends in an error in state: 309. ## ## nsepseq(field_pattern,COMMA) -> field_pattern COMMA . nsepseq(field_pattern,COMMA) [ RBRACE ] ## nseq(__anonymous_0(field_pattern,COMMA)) -> field_pattern COMMA . seq(__anonymous_0(field_pattern,COMMA)) [ RBRACE ] @@ -2821,7 +2796,7 @@ contract: Let LBRACE Ident EQ Bytes COMMA WILD contract: Let LBRACE Ident EQ Bytes RBRACE COLON String WILD ## -## Ends in an error in state: 389. +## Ends in an error in state: 391. ## ## let_binding -> record_pattern option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## @@ -2833,7 +2808,7 @@ contract: Let LBRACE Ident EQ Bytes RBRACE COLON String WILD contract: Let LBRACE Ident EQ Bytes RBRACE EQ VBAR ## -## Ends in an error in state: 390. +## Ends in an error in state: 392. ## ## let_binding -> record_pattern option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## @@ -2845,7 +2820,7 @@ contract: Let LBRACE Ident EQ Bytes RBRACE EQ VBAR contract: Let LBRACE Ident EQ Bytes RBRACE WILD ## -## Ends in an error in state: 388. +## Ends in an error in state: 390. ## ## let_binding -> record_pattern . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> record_pattern . [ COMMA ] @@ -2858,7 +2833,7 @@ contract: Let LBRACE Ident EQ Bytes RBRACE WILD contract: Let LBRACE Ident EQ Bytes WILD ## -## Ends in an error in state: 306. +## Ends in an error in state: 308. ## ## nsepseq(field_pattern,COMMA) -> field_pattern . [ RBRACE ] ## nsepseq(field_pattern,COMMA) -> field_pattern . COMMA nsepseq(field_pattern,COMMA) [ RBRACE ] @@ -2872,7 +2847,7 @@ contract: Let LBRACE Ident EQ Bytes WILD contract: Let LBRACE Ident EQ VBAR ## -## Ends in an error in state: 284. +## Ends in an error in state: 286. ## ## field_pattern -> Ident EQ . sub_pattern [ RBRACE COMMA ] ## @@ -2884,7 +2859,7 @@ contract: Let LBRACE Ident EQ VBAR contract: Let LBRACE Ident WILD ## -## Ends in an error in state: 283. +## Ends in an error in state: 285. ## ## field_pattern -> Ident . EQ sub_pattern [ RBRACE COMMA ] ## @@ -2896,7 +2871,7 @@ contract: Let LBRACE Ident WILD contract: Let LBRACE WILD ## -## Ends in an error in state: 282. +## Ends in an error in state: 284. ## ## record_pattern -> LBRACE . sep_or_term_list(field_pattern,COMMA) RBRACE [ SEMI RPAR RBRACKET RBRACE EQ COMMA COLON ARROW ] ## @@ -2908,7 +2883,7 @@ contract: Let LBRACE WILD contract: Let LPAR C_Some VBAR ## -## Ends in an error in state: 289. +## Ends in an error in state: 291. ## ## constr_pattern -> C_Some . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -2920,7 +2895,7 @@ contract: Let LPAR C_Some VBAR contract: Let LPAR Constr LBRACKET VBAR ## -## Ends in an error in state: 281. +## Ends in an error in state: 283. ## ## list__(sub_pattern) -> LBRACKET . option(sep_or_term_list(sub_pattern,SEMI)) RBRACKET [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -2932,7 +2907,7 @@ contract: Let LPAR Constr LBRACKET VBAR contract: Let LPAR Constr LBRACKET WILD SEMI VBAR ## -## Ends in an error in state: 314. +## Ends in an error in state: 316. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern SEMI . nsepseq(sub_pattern,SEMI) [ RBRACKET ] ## nseq(__anonymous_0(sub_pattern,SEMI)) -> sub_pattern SEMI . seq(__anonymous_0(sub_pattern,SEMI)) [ RBRACKET ] @@ -2945,7 +2920,7 @@ contract: Let LPAR Constr LBRACKET WILD SEMI VBAR contract: Let LPAR Constr LBRACKET WILD SEMI WILD SEMI VBAR ## -## Ends in an error in state: 323. +## Ends in an error in state: 318. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern SEMI . nsepseq(sub_pattern,SEMI) [ RBRACKET ] ## seq(__anonymous_0(sub_pattern,SEMI)) -> sub_pattern SEMI . seq(__anonymous_0(sub_pattern,SEMI)) [ RBRACKET ] @@ -2958,7 +2933,7 @@ contract: Let LPAR Constr LBRACKET WILD SEMI WILD SEMI VBAR contract: Let LPAR Constr LBRACKET WILD SEMI WILD WILD ## -## Ends in an error in state: 322. +## Ends in an error in state: 317. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -2972,7 +2947,7 @@ contract: Let LPAR Constr LBRACKET WILD SEMI WILD WILD contract: Let LPAR Constr LBRACKET WILD WILD ## -## Ends in an error in state: 320. +## Ends in an error in state: 315. ## ## nsepseq(sub_pattern,SEMI) -> sub_pattern . [ RBRACKET ] ## nsepseq(sub_pattern,SEMI) -> sub_pattern . SEMI nsepseq(sub_pattern,SEMI) [ RBRACKET ] @@ -2986,7 +2961,7 @@ contract: Let LPAR Constr LBRACKET WILD WILD contract: Let LPAR Constr LPAR VBAR ## -## Ends in an error in state: 287. +## Ends in an error in state: 282. ## ## par(ptuple) -> LPAR . ptuple RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## par(sub_pattern) -> LPAR . sub_pattern RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] @@ -3000,7 +2975,7 @@ contract: Let LPAR Constr LPAR VBAR contract: Let LPAR Constr LPAR WILD COMMA Bytes ARROW ## -## Ends in an error in state: 340. +## Ends in an error in state: 335. ## ## par(ptuple) -> LPAR ptuple . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## @@ -3011,16 +2986,16 @@ contract: Let LPAR Constr LPAR WILD COMMA Bytes ARROW ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 336, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern -## In state 339, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) -## In state 332, spurious reduction of production ptuple -> tuple(sub_pattern) +## In state 331, spurious reduction of production nsepseq(sub_pattern,COMMA) -> sub_pattern +## In state 334, spurious reduction of production tuple(sub_pattern) -> sub_pattern COMMA nsepseq(sub_pattern,COMMA) +## In state 327, spurious reduction of production ptuple -> tuple(sub_pattern) ## contract: Let LPAR Constr LPAR WILD WILD ## -## Ends in an error in state: 333. +## Ends in an error in state: 328. ## ## par(sub_pattern) -> LPAR sub_pattern . RPAR [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## tuple(sub_pattern) -> sub_pattern . COMMA nsepseq(sub_pattern,COMMA) [ RPAR ] @@ -3033,7 +3008,7 @@ contract: Let LPAR Constr LPAR WILD WILD contract: Let LPAR Constr SEMI ## -## Ends in an error in state: 380. +## Ends in an error in state: 375. ## ## par(closed_irrefutable) -> LPAR closed_irrefutable . RPAR [ RPAR EQ COMMA COLON ] ## @@ -3044,15 +3019,15 @@ contract: Let LPAR Constr SEMI ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 295, spurious reduction of production constr_pattern -> Constr -## In state 379, spurious reduction of production closed_irrefutable -> constr_pattern +## In state 290, spurious reduction of production constr_pattern -> Constr +## In state 374, spurious reduction of production closed_irrefutable -> constr_pattern ## contract: Let LPAR Constr VBAR ## -## Ends in an error in state: 295. +## Ends in an error in state: 290. ## ## constr_pattern -> Constr . sub_pattern [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] ## constr_pattern -> Constr . [ SEMI RPAR RBRACKET RBRACE COMMA ARROW ] @@ -3065,7 +3040,7 @@ contract: Let LPAR Constr VBAR contract: Let LPAR RPAR COLON String WILD ## -## Ends in an error in state: 387. +## Ends in an error in state: 382. ## ## let_binding -> unit option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## @@ -3077,7 +3052,7 @@ contract: Let LPAR RPAR COLON String WILD contract: Let LPAR RPAR EQ VBAR ## -## Ends in an error in state: 388. +## Ends in an error in state: 383. ## ## let_binding -> unit option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## @@ -3089,7 +3064,7 @@ contract: Let LPAR RPAR EQ VBAR contract: Let LPAR RPAR WILD ## -## Ends in an error in state: 386. +## Ends in an error in state: 381. ## ## let_binding -> unit . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> unit . [ COMMA ] @@ -3102,7 +3077,7 @@ contract: Let LPAR RPAR WILD contract: Let LPAR Verbatim ## -## Ends in an error in state: 362. +## Ends in an error in state: 357. ## ## par(closed_irrefutable) -> LPAR . closed_irrefutable RPAR [ RPAR EQ COMMA COLON ] ## unit -> LPAR . RPAR [ RPAR EQ COMMA COLON ] @@ -3115,7 +3090,7 @@ contract: Let LPAR Verbatim contract: Let LPAR WILD COLON WILD ## -## Ends in an error in state: 377. +## Ends in an error in state: 372. ## ## typed_pattern -> irrefutable COLON . type_expr [ RPAR ] ## @@ -3127,7 +3102,7 @@ contract: Let LPAR WILD COLON WILD contract: Let LPAR WILD COMMA Ident EQ ## -## Ends in an error in state: 376. +## Ends in an error in state: 371. ## ## closed_irrefutable -> irrefutable . [ RPAR ] ## typed_pattern -> irrefutable . COLON type_expr [ RPAR ] @@ -3139,16 +3114,16 @@ contract: Let LPAR WILD COMMA Ident EQ ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 370, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable -## In state 375, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) -## In state 367, spurious reduction of production irrefutable -> tuple(sub_irrefutable) +## In state 365, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 370, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) +## In state 362, spurious reduction of production irrefutable -> tuple(sub_irrefutable) ## contract: Let LPAR WILD RPAR COLON String WILD ## -## Ends in an error in state: 400. +## Ends in an error in state: 395. ## ## let_binding -> par(closed_irrefutable) option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## @@ -3160,7 +3135,7 @@ contract: Let LPAR WILD RPAR COLON String WILD contract: Let LPAR WILD RPAR EQ VBAR ## -## Ends in an error in state: 401. +## Ends in an error in state: 396. ## ## let_binding -> par(closed_irrefutable) option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## @@ -3172,7 +3147,7 @@ contract: Let LPAR WILD RPAR EQ VBAR contract: Let LPAR WILD RPAR WILD ## -## Ends in an error in state: 399. +## Ends in an error in state: 394. ## ## let_binding -> par(closed_irrefutable) . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## sub_irrefutable -> par(closed_irrefutable) . [ COMMA ] @@ -3185,7 +3160,7 @@ contract: Let LPAR WILD RPAR WILD contract: Let LPAR WILD WILD ## -## Ends in an error in state: 368. +## Ends in an error in state: 363. ## ## irrefutable -> sub_irrefutable . [ RPAR COLON ] ## tuple(sub_irrefutable) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR COLON ] @@ -3198,7 +3173,7 @@ contract: Let LPAR WILD WILD contract: Let Rec Verbatim ## -## Ends in an error in state: 530. +## Ends in an error in state: 525. ## ## let_declaration -> seq(Attr) Let Rec . let_binding [ Type SEMI Let EOF Attr ] ## @@ -3247,7 +3222,7 @@ contract: Let WILD COLON WILD contract: Let WILD COMMA Ident COLON String WILD ## -## Ends in an error in state: 391. +## Ends in an error in state: 386. ## ## let_binding -> tuple(sub_irrefutable) option(type_annotation) . EQ expr [ Type SEMI Let EOF Attr ] ## @@ -3259,7 +3234,7 @@ contract: Let WILD COMMA Ident COLON String WILD contract: Let WILD COMMA Ident EQ VBAR ## -## Ends in an error in state: 392. +## Ends in an error in state: 387. ## ## let_binding -> tuple(sub_irrefutable) option(type_annotation) EQ . expr [ Type SEMI Let EOF Attr ] ## @@ -3271,7 +3246,7 @@ contract: Let WILD COMMA Ident EQ VBAR contract: Let WILD COMMA Ident RPAR ## -## Ends in an error in state: 390. +## Ends in an error in state: 385. ## ## let_binding -> tuple(sub_irrefutable) . option(type_annotation) EQ expr [ Type SEMI Let EOF Attr ] ## @@ -3282,15 +3257,15 @@ contract: Let WILD COMMA Ident RPAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 370, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable -## In state 375, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) +## In state 365, spurious reduction of production nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable +## In state 370, spurious reduction of production tuple(sub_irrefutable) -> sub_irrefutable COMMA nsepseq(sub_irrefutable,COMMA) ## contract: Let WILD COMMA Verbatim ## -## Ends in an error in state: 369. +## Ends in an error in state: 364. ## ## tuple(sub_irrefutable) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] ## @@ -3302,7 +3277,7 @@ contract: Let WILD COMMA Verbatim contract: Let WILD COMMA WILD COMMA Verbatim ## -## Ends in an error in state: 371. +## Ends in an error in state: 366. ## ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable COMMA . nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] ## @@ -3314,7 +3289,7 @@ contract: Let WILD COMMA WILD COMMA Verbatim contract: Let WILD COMMA WILD WILD ## -## Ends in an error in state: 370. +## Ends in an error in state: 365. ## ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . [ RPAR EQ COLON ] ## nsepseq(sub_irrefutable,COMMA) -> sub_irrefutable . COMMA nsepseq(sub_irrefutable,COMMA) [ RPAR EQ COLON ] @@ -3327,7 +3302,7 @@ contract: Let WILD COMMA WILD WILD contract: Let WILD EQ Bytes VBAR ## -## Ends in an error in state: 533. +## Ends in an error in state: 528. ## ## declaration -> let_declaration . option(SEMI) [ Type Let EOF Attr ] ## @@ -3338,21 +3313,21 @@ contract: Let WILD EQ Bytes VBAR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 161, spurious reduction of production call_expr_level_in -> core_expr -## In state 179, spurious reduction of production option(type_annotation_simple) -> -## In state 180, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) -## In state 181, spurious reduction of production unary_expr_level -> call_expr_level -## In state 134, spurious reduction of production mult_expr_level -> unary_expr_level -## In state 158, spurious reduction of production add_expr_level -> mult_expr_level -## In state 189, spurious reduction of production cat_expr_level -> add_expr_level -## In state 210, spurious reduction of production comp_expr_level -> cat_expr_level -## In state 217, spurious reduction of production conj_expr_level -> comp_expr_level -## In state 224, spurious reduction of production disj_expr_level -> conj_expr_level -## In state 171, spurious reduction of production base_expr -> disj_expr_level -## In state 228, spurious reduction of production base_cond -> base_expr -## In state 229, spurious reduction of production expr -> base_cond -## In state 529, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr -## In state 532, spurious reduction of production let_declaration -> seq(Attr) Let let_binding +## In state 160, spurious reduction of production call_expr_level_in -> core_expr +## In state 178, spurious reduction of production option(type_annotation_simple) -> +## In state 179, spurious reduction of production call_expr_level -> call_expr_level_in option(type_annotation_simple) +## In state 180, spurious reduction of production unary_expr_level -> call_expr_level +## In state 133, spurious reduction of production mult_expr_level -> unary_expr_level +## In state 157, spurious reduction of production add_expr_level -> mult_expr_level +## In state 188, spurious reduction of production cat_expr_level -> add_expr_level +## In state 209, spurious reduction of production comp_expr_level -> cat_expr_level +## In state 216, spurious reduction of production conj_expr_level -> comp_expr_level +## In state 223, spurious reduction of production disj_expr_level -> conj_expr_level +## In state 170, spurious reduction of production base_expr -> disj_expr_level +## In state 227, spurious reduction of production base_cond -> base_expr +## In state 228, spurious reduction of production expr -> base_cond +## In state 524, spurious reduction of production let_binding -> WILD option(type_annotation) EQ expr +## In state 527, spurious reduction of production let_declaration -> seq(Attr) Let let_binding ## @@ -3433,7 +3408,7 @@ contract: Type Ident EQ Constr LPAR WILD contract: Type Ident EQ Constr SEMI WILD ## -## Ends in an error in state: 537. +## Ends in an error in state: 532. ## ## declarations -> declaration . [ EOF ] ## declarations -> declaration . declarations [ EOF ] @@ -3861,3 +3836,4 @@ contract: WILD ## + diff --git a/src/passes/01-parser/shared/Lexer.mli b/src/passes/01-parser/shared/Lexer.mli index fd94773ed..27b7628ab 100644 --- a/src/passes/01-parser/shared/Lexer.mli +++ b/src/passes/01-parser/shared/Lexer.mli @@ -79,6 +79,7 @@ module type TOKEN = val mk_bytes : lexeme -> Region.t -> token val mk_constr : lexeme -> Region.t -> token val mk_attr : string -> lexeme -> Region.t -> (token, attr_err) result + val mk_lang : lexeme Region.reg -> Region.t -> token val eof : Region.t -> token (* Predicates *) diff --git a/src/passes/01-parser/shared/Lexer.mll b/src/passes/01-parser/shared/Lexer.mll index 2d432891a..172c957ca 100644 --- a/src/passes/01-parser/shared/Lexer.mll +++ b/src/passes/01-parser/shared/Lexer.mll @@ -43,6 +43,7 @@ module type TOKEN = val mk_bytes : lexeme -> Region.t -> token val mk_constr : lexeme -> Region.t -> token val mk_attr : string -> lexeme -> Region.t -> (token, attr_err) result + val mk_lang : lexeme Region.reg -> Region.t -> token val eof : Region.t -> token (* Predicates *) @@ -273,6 +274,15 @@ module Make (Token : TOKEN) : (S with module Token = Token) = let token = Token.mk_constr lexeme region in state#enqueue token + let mk_lang lang state buffer = + let region, _, state = state#sync buffer in + let start = region#start#shift_bytes 1 in + let stop = region#stop in + let lang_reg = Region.make ~start ~stop in + let lang = Region.{value=lang; region=lang_reg} in + let token = Token.mk_lang lang region + in state#enqueue token + let mk_sym state buffer = let region, lexeme, state = state#sync buffer in match Token.mk_sym lexeme region with @@ -314,7 +324,7 @@ let esc = "\\n" | "\\\"" | "\\\\" | "\\b" let common_sym = ';' | ',' | '(' | ')' | '[' | ']' | '{' | '}' | '=' | ':' | '|' | "->" | '.' | '_' | '^' - | '+' | '-' | '*' | '/' | '%' | '<' | "<=" | '>' | ">=" + | '+' | '-' | '*' | '/' | '<' | "<=" | '>' | ">=" let pascaligo_sym = "=/=" | '#' | ":=" let cameligo_sym = "<>" | "::" | "||" | "&&" let reasonligo_sym = '!' | "=>" | "!=" | "==" | "++" | "..." | "||" | "&&" @@ -388,6 +398,7 @@ and scan state = parse | eof { mk_eof state lexbuf } | "[@" (attr as a) "]" { mk_attr "[@" a state lexbuf } | "[@@" (attr as a) "]" { mk_attr "[@@" a state lexbuf } +| "[%" (attr as l) { mk_lang l state lexbuf } (* Management of #include preprocessing directives @@ -512,7 +523,7 @@ and scan_string thread state = parse and scan_verbatim thread state = parse | eof { fail thread#opening Unterminated_verbatim} -| "|}" { let _, _, state = state#sync lexbuf +| "|}" { let _, _, state = state#sync lexbuf in thread, state } | _ as c { let _, _, state = state#sync lexbuf in scan_verbatim (thread#push_char c) state lexbuf } diff --git a/src/passes/02-concrete_to_imperative/cameligo.ml b/src/passes/02-concrete_to_imperative/cameligo.ml index ed32b2c27..a274a318c 100644 --- a/src/passes/02-concrete_to_imperative/cameligo.ml +++ b/src/passes/02-concrete_to_imperative/cameligo.ml @@ -631,19 +631,17 @@ in trace (abstracting_expr t) @@ return @@ e_sequence a e1' in List.fold_left apply expr' more) ) - | ECond c -> ( + | ECond c -> let (c , loc) = r_split c in let%bind expr = compile_expression c.test in let%bind match_true = compile_expression c.ifso in let%bind match_false = compile_expression c.ifnot in return @@ e_cond ~loc expr match_true match_false - ) - | ECodeInsert ci -> ( - let (ci, loc) = r_split ci in - let language = ci.language.value in - let%bind code = compile_expression ci.code in - return @@ e_raw_code ~loc language code - ) + | ECodeInj ci -> + let ci, loc = r_split ci in + let language = ci.language.value.value in + let%bind code = compile_expression ci.code + in ok @@ e_raw_code ~loc language code and compile_fun lamb' : expr result = let return x = ok x in diff --git a/src/passes/02-concrete_to_imperative/pascaligo.ml b/src/passes/02-concrete_to_imperative/pascaligo.ml index 0f999db18..ed5dffa4f 100644 --- a/src/passes/02-concrete_to_imperative/pascaligo.ml +++ b/src/passes/02-concrete_to_imperative/pascaligo.ml @@ -459,11 +459,11 @@ let rec compile_expression (t:Raw.expr) : expr result = let (f , loc) = r_split f in let%bind (_ty_opt, f') = compile_fun_expression ~loc f in return @@ f' - | ECodeInsert ci -> - let (ci, loc) = r_split ci in - let language = ci.language.value in - let%bind code = compile_expression ci.code in - return @@ e_raw_code ~loc language code + | ECodeInj ci -> + let ci, loc = r_split ci in + let language = ci.language.value.value in + let%bind code = compile_expression ci.code + in ok @@ e_raw_code ~loc language code and compile_update (u: Raw.update Region.reg) = let u, loc = r_split u in From b3da13251c2067580957bc20a5497350984ae2e2 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Mon, 15 Jun 2020 18:16:03 +0200 Subject: [PATCH 2/5] Added comments. --- src/passes/01-parser/cameligo/AST.ml | 4 ++++ src/passes/01-parser/cameligo/Parser.mly | 13 ++++++------- src/passes/01-parser/pascaligo/AST.ml | 4 ++++ 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/passes/01-parser/cameligo/AST.ml b/src/passes/01-parser/cameligo/AST.ml index 60c9c0157..abe29b615 100644 --- a/src/passes/01-parser/cameligo/AST.ml +++ b/src/passes/01-parser/cameligo/AST.ml @@ -400,6 +400,10 @@ and cond_expr = { ifnot : expr } +(* Code injection. Note how the field [language] wraps a region in + another: the outermost region covers the header "[%" and + the innermost covers the . *) + and code_inj = { language : string reg reg; code : expr; diff --git a/src/passes/01-parser/cameligo/Parser.mly b/src/passes/01-parser/cameligo/Parser.mly index de79c2854..807bc6dd3 100644 --- a/src/passes/01-parser/cameligo/Parser.mly +++ b/src/passes/01-parser/cameligo/Parser.mly @@ -121,11 +121,10 @@ type_decl: "type" type_name "=" type_expr { Scoping.check_reserved_name $2; let region = cover $1 (type_expr_to_region $4) in - let value = { - kwd_type = $1; - name = $2; - eq = $3; - type_expr = $4} + let value = {kwd_type = $1; + name = $2; + eq = $3; + type_expr = $4} in {region; value} } type_expr: @@ -710,6 +709,6 @@ seq_expr: code_inj: "" expr "]" { - let region = cover $1.region $3 - and value = {language=$1; code=$2; rbracket=$3} + let region = cover $1.region $3 + and value = {language=$1; code=$2; rbracket=$3} in {region; value} } diff --git a/src/passes/01-parser/pascaligo/AST.ml b/src/passes/01-parser/pascaligo/AST.ml index 0fd1cb70b..5b66b1967 100644 --- a/src/passes/01-parser/pascaligo/AST.ml +++ b/src/passes/01-parser/pascaligo/AST.ml @@ -436,6 +436,10 @@ and for_collect = { block : block reg } +(* Code injection. Note how the field [language] wraps a region in + another: the outermost region covers the header "[%" and + the innermost covers the . *) + and code_inj = { language : string reg reg; code : expr; From d34b345edc99c40b834d5bdc94505a808c736255 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Tue, 23 Jun 2020 11:52:39 +0200 Subject: [PATCH 3/5] Merged first changes towards handling comments. Refactoring. --- src/passes/01-parser/pascaligo/Parser.mly | 48 ++- src/passes/01-parser/pascaligo/ParserLog.ml | 141 +++++---- src/passes/01-parser/pascaligo/Pretty.ml | 73 +++-- .../pascaligo/error.messages.checked-in | 292 +++++++++--------- src/passes/01-parser/shared/Lexer.mll | 94 +++--- src/passes/01-parser/shared/LexerLib.ml | 116 ++++--- src/passes/01-parser/shared/LexerLib.mli | 25 +- src/passes/01-parser/shared/Markup.ml | 6 + src/passes/01-parser/shared/Markup.mli | 13 +- .../02-concrete_to_imperative/pascaligo.ml | 5 +- 10 files changed, 441 insertions(+), 372 deletions(-) diff --git a/src/passes/01-parser/pascaligo/Parser.mly b/src/passes/01-parser/pascaligo/Parser.mly index a6043a26c..b06653555 100644 --- a/src/passes/01-parser/pascaligo/Parser.mly +++ b/src/passes/01-parser/pascaligo/Parser.mly @@ -142,7 +142,9 @@ type_decl: terminator = $5} in {region; value} } -type_expr_colon: ":" type_expr { $1,$2 } +type_annot: + ":" type_expr { $1,$2 } + type_expr: fun_type | sum_type | record_type { $1 } @@ -240,7 +242,7 @@ field_decl: fun_expr: - "function" parameters type_expr_colon? "is" expr { + "function" parameters type_annot? "is" expr { let stop = expr_to_region $5 in let region = cover $1 stop and value = {kwd_function = $1; @@ -253,7 +255,7 @@ fun_expr: (* Function declarations *) open_fun_decl: - ioption ("recursive") "function" fun_name parameters type_expr_colon? "is" + ioption ("recursive") "function" fun_name parameters type_annot? "is" block "with" expr { Scoping.check_reserved_name $3; let stop = expr_to_region $9 in @@ -270,7 +272,7 @@ open_fun_decl: attributes = None} in {region; value} } -| ioption ("recursive") "function" fun_name parameters type_expr_colon? "is" +| ioption ("recursive") "function" fun_name parameters type_annot? "is" expr { Scoping.check_reserved_name $3; let stop = expr_to_region $7 in @@ -372,7 +374,7 @@ open_var_decl: in {region; value} } unqualified_decl(OP): - var type_expr_colon? OP expr { + var type_annot? OP expr { Scoping.check_reserved_name $1; let region = expr_to_region $4 in $1, $2, $3, $4, region } @@ -610,28 +612,17 @@ while_loop: in While {region; value} } for_loop: - "for" var ":=" expr "to" expr block { - let region = cover $1 $7.region in - let value = {kwd_for = $1; - binder = $2; - assign = $3; - init = $4; - kwd_to = $5; - bound = $6; - step = None; - block = $7} - in For (ForInt {region; value}) - } -| "for" var ":=" expr "to" expr "step" expr block { - let region = cover $1 $9.region in - let value = {kwd_for = $1; - binder = $2; - assign = $3; - init = $4; - kwd_to = $5; - bound = $6; - step = Some ($7, $8); - block = $9} + "for" var ":=" expr "to" expr step_clause? block { + Scoping.check_reserved_name $2; + let region = cover $1 $8.region in + let value = {kwd_for = $1; + binder = $2; + assign = $3; + init = $4; + kwd_to = $5; + bound = $6; + step = $7; + block = $8} in For (ForInt {region; value}) } | "for" var arrow_clause? "in" collection expr block { @@ -646,6 +637,9 @@ for_loop: block = $7} in For (ForCollect {region; value}) } +step_clause: + "step" expr { $1,$2 } + collection: "map" { Map $1 } | "set" { Set $1 } diff --git a/src/passes/01-parser/pascaligo/ParserLog.ml b/src/passes/01-parser/pascaligo/ParserLog.ml index 511140ea7..3af36ee2c 100644 --- a/src/passes/01-parser/pascaligo/ParserLog.ml +++ b/src/passes/01-parser/pascaligo/ParserLog.ml @@ -64,7 +64,7 @@ let print_sepseq : None -> () | Some seq -> print_nsepseq state sep print seq -let print_option : state -> (state -> 'a -> unit ) -> 'a option -> unit = +let print_option : state -> (state -> 'a -> unit) -> 'a option -> unit = fun state print -> function None -> () | Some opt -> print state opt @@ -141,7 +141,7 @@ and print_const_decl state {value; _} = equal; init; terminator; _} = value in print_token state kwd_const "const"; print_var state name; - print_option state print_colon_type_expr const_type; + print_option state print_type_annot const_type; print_token state equal "="; print_expr state init; print_terminator state terminator @@ -165,7 +165,7 @@ and print_type_expr state = function | TVar type_var -> print_var state type_var | TString str -> print_string state str -and print_colon_type_expr state (colon, type_expr) = +and print_type_annot state (colon, type_expr) = print_token state colon ":"; print_type_expr state type_expr; @@ -223,7 +223,7 @@ and print_fun_decl state {value; _} = print_token state kwd_function "function"; print_var state fun_name; print_parameters state param; - print_option state print_colon_type_expr ret_type; + print_option state print_type_annot ret_type; print_token state kwd_is "is"; (match block_with with None -> () @@ -238,7 +238,7 @@ and print_fun_expr state {value; _} = ret_type; kwd_is; return} : fun_expr = value in print_token state kwd_function "function"; print_parameters state param; - print_option state print_colon_type_expr ret_type; + print_option state print_type_annot ret_type; print_token state kwd_is "is"; print_expr state return @@ -254,9 +254,9 @@ and print_code_inj state {value; _} = and print_parameters state {value; _} = let {lpar; inside; rpar} = value in - print_token state lpar "("; + print_token state lpar "("; print_nsepseq state ";" print_param_decl inside; - print_token state rpar ")" + print_token state rpar ")" and print_param_decl state = function ParamConst param_const -> print_param_const state param_const @@ -264,15 +264,15 @@ and print_param_decl state = function and print_param_const state {value; _} = let {kwd_const; var; param_type} = value in - print_token state kwd_const "const"; - print_var state var; - print_option state print_colon_type_expr param_type + print_token state kwd_const "const"; + print_var state var; + print_option state print_type_annot param_type and print_param_var state {value; _} = let {kwd_var; var; param_type} = value in print_token state kwd_var "var"; print_var state var; - print_option state print_colon_type_expr param_type + print_option state print_type_annot param_type and print_block state block = let {enclosing; statements; terminator} = block.value in @@ -299,7 +299,7 @@ and print_var_decl state {value; _} = assign; init; terminator} = value in print_token state kwd_var "var"; print_var state name; - print_option state print_colon_type_expr var_type; + print_option state print_type_annot var_type; print_token state assign ":="; print_expr state init; print_terminator state terminator @@ -917,43 +917,59 @@ and pp_declaration state = function and pp_attr_decl state = pp_ne_injection pp_string state and pp_fun_decl state decl = - let arity, start = + let kwd_recursive = if decl.kwd_recursive = None then 0 else 1 in + let ret_type = if decl.ret_type = None then 0 else 1 in + let block_with = if decl.block_with = None then 0 else 1 in + let arity = kwd_recursive + ret_type + block_with + 3 in + let index = 0 in + let index = match decl.kwd_recursive with - None -> 5,0 - | Some _ -> - let state = state#pad 6 0 in - let () = pp_node state "recursive" - in 6,1 in - let () = - let state = state#pad arity start in - pp_ident state decl.fun_name in - let () = - let state = state#pad arity (start + 1) in + None -> index + | Some _ -> let state = state#pad arity index in + pp_node state "recursive"; + index + 1 in + let index = + let state = state#pad arity index in + pp_ident state decl.fun_name; + index + 1 in + let index = + let state = state#pad arity index in pp_node state ""; - pp_parameters state decl.param in + pp_parameters state decl.param; + index + 1 in + let index = + match decl.ret_type with + None -> index + | Some (_, t_expr) -> + let state = state#pad arity index in + pp_node state ""; + pp_type_expr (state#pad 1 0) t_expr; + index+1 in + let index = + match decl.block_with with + None -> index + | Some (block,_) -> + let statements = block.value.statements in + let state = state#pad arity index in + pp_node state ""; + pp_statements state statements; + index+1 in let () = - let state = state#pad arity (start + 2) in - pp_node state ""; - print_option (state#pad 1 0) pp_type_expr @@ Option.map snd decl.ret_type in - let () = - let state = state#pad arity (start + 3) in - pp_node state ""; - let statements = - match decl.block_with with - Some (block,_) -> block.value.statements - | None -> Instr (Skip Region.ghost), [] in - pp_statements state statements in - let () = - let state = state#pad arity (start + 4) in + let state = state#pad arity index in pp_node state ""; pp_expr (state#pad 1 0) decl.return in () and pp_const_decl state decl = - let arity = 3 in - pp_ident (state#pad arity 0) decl.name; - print_option (state#pad arity 1) pp_type_expr @@ Option.map snd decl.const_type; - pp_expr (state#pad arity 2) decl.init + let arity = if decl.const_type = None then 2 else 3 in + let index = 0 in + let index = + pp_ident (state#pad arity 0) decl.name; index+1 in + let index = + pp_type_annot (state#pad arity index) index decl.const_type in + let () = + pp_expr (state#pad arity index) decl.init + in () and pp_type_expr state = function TProd cartesian -> @@ -1014,16 +1030,23 @@ and pp_type_tuple state {value; _} = in List.iteri (List.length components |> apply) components and pp_fun_expr state (expr: fun_expr) = - let () = - let state = state#pad 3 0 in + let arity = if expr.ret_type = None then 2 else 3 in + let index = 0 in + let index = + let state = state#pad arity index in pp_node state ""; - pp_parameters state expr.param in + pp_parameters state expr.param; + index + 1 in + let index = + match expr.ret_type with + None -> index + | Some (_, t_expr) -> + let state = state#pad arity index in + pp_node state ""; + pp_type_expr (state#pad 1 0) t_expr; + index + 1 in let () = - let state = state#pad 3 1 in - pp_node state ""; - print_option (state#pad 1 0) pp_type_expr @@ Option.map snd expr.ret_type in - let () = - let state = state#pad 3 2 in + let state = state#pad arity index in pp_node state ""; pp_expr (state#pad 1 0) expr.return in () @@ -1047,13 +1070,15 @@ and pp_parameters state {value; _} = and pp_param_decl state = function ParamConst {value; region} -> + let arity = if value.param_type = None then 1 else 2 in pp_loc_node state "ParamConst" region; - pp_ident (state#pad 2 0) value.var; - print_option (state#pad 2 1) pp_type_expr @@ Option.map snd value.param_type + pp_ident (state#pad arity 0) value.var; + ignore (pp_type_annot (state#pad arity 1) 1 value.param_type) | ParamVar {value; region} -> + let arity = if value.param_type = None then 1 else 2 in pp_loc_node state "ParamVar" region; pp_ident (state#pad 2 0) value.var; - print_option (state#pad 2 1) pp_type_expr @@ Option.map snd value.param_type + ignore (pp_type_annot (state#pad arity 1) 1 value.param_type) and pp_statements state statements = let statements = Utils.nsepseq_to_list statements in @@ -1454,9 +1479,11 @@ and pp_data_decl state = function pp_fun_decl state value and pp_var_decl state decl = - pp_ident (state#pad 3 0) decl.name; - print_option (state#pad 3 1) pp_type_expr @@ Option.map snd decl.var_type; - pp_expr (state#pad 3 2) decl.init + let arity = if decl.var_type = None then 2 else 3 in + let index = 0 in + let index = pp_ident (state#pad arity index) decl.name; index+1 in + let index = pp_type_annot (state#pad arity index) index decl.var_type + in pp_expr (state#pad arity index) decl.init and pp_expr state = function ECase {value; region} -> @@ -1653,3 +1680,7 @@ and pp_bin_op node region state op = pp_loc_node state node region; pp_expr (state#pad 2 0) op.arg1; pp_expr (state#pad 2 1) op.arg2 + +and pp_type_annot state index = function + None -> index +| Some (_, e) -> pp_type_expr state e; index+1 diff --git a/src/passes/01-parser/pascaligo/Pretty.ml b/src/passes/01-parser/pascaligo/Pretty.ml index 52e1b1b7a..9718d6d12 100644 --- a/src/passes/01-parser/pascaligo/Pretty.ml +++ b/src/passes/01-parser/pascaligo/Pretty.ml @@ -39,12 +39,16 @@ and pp_attr_decl decl = pp_ne_injection pp_string decl and pp_const_decl {value; _} = let {name; const_type; init; attributes; _} = value in + let attr = match attributes with + None -> empty + | Some a -> hardline ^^ pp_attr_decl a in let start = string ("const " ^ name.value) in - let t_expr = const_type in - let attr = match attributes with - None -> empty - | Some a -> hardline ^^ pp_attr_decl a in - group (start ^/^ pp_option (fun (_, d) -> nest 2 (string ": " ^^ pp_type_expr d)) t_expr) + let start = + match const_type with + None -> start + | Some (_, e) -> + group (start ^/^ nest 2 (string ": " ^^ pp_type_expr e)) in + start ^^ group (break 1 ^^ nest 2 (string "= " ^^ pp_expr init)) ^^ attr @@ -126,35 +130,47 @@ and pp_type_tuple {value; _} = and pp_fun_expr {value; _} = let {param; ret_type; return; _} : fun_expr = value in - let start = string "function" in + let start = string "function" in let parameters = pp_par pp_parameters param in - let expr = pp_expr return in + let t_annot = + match ret_type with + None -> empty + | Some (_, e) -> + group (break 1 ^^ nest 2 (string ": " ^^ pp_type_expr e)) in group (start ^^ nest 2 (break 1 ^^ parameters)) - ^^ pp_option (fun (_,d) -> group (break 1 ^^ nest 2 (string ": " ^^ pp_type_expr d))) ret_type - ^^ string " is" ^^ group (nest 4 (break 1 ^^ expr)) + ^^ t_annot + ^^ string " is" ^^ group (nest 4 (break 1 ^^ pp_expr return)) and pp_fun_decl {value; _} = - let {kwd_recursive; fun_name; param; - ret_type; block_with; return; attributes; _} = value in + let {kwd_recursive; fun_name; param; ret_type; + block_with; return; attributes; _} = value in let start = match kwd_recursive with None -> string "function" | Some _ -> string "recursive" ^/^ string "function" in - let start = start ^^ group (break 1 ^^ nest 2 (pp_ident fun_name)) in - let parameters = pp_par pp_parameters param in - let expr = pp_expr return in - let body = + let start = start ^^ group (break 1 ^^ nest 2 (pp_ident fun_name)) + and parameters = pp_par pp_parameters param + and t_annot_is = + match ret_type with + None -> string " is" + | Some (_, e) -> + let ret_type = pp_type_expr e in + group (nest 2 (break 1 ^^ string ": " ^^ nest 2 ret_type + ^^ string " is")) + and body = + let expr = pp_expr return in match block_with with None -> group (nest 2 (break 1 ^^ expr)) | Some (b,_) -> hardline ^^ pp_block b ^^ string " with" ^^ group (nest 4 (break 1 ^^ expr)) and attr = match attributes with - None -> empty + None -> empty | Some a -> hardline ^^ pp_attr_decl a in prefix 2 1 start parameters - ^^ group (nest 2 (pp_option (fun (_, d) -> break 1 ^^ string ": " ^^ nest 2 (pp_type_expr d)) ret_type ^^ string " is")) - ^^ body ^^ attr + ^^ t_annot_is + ^^ body + ^^ attr and pp_parameters p = pp_nsepseq ";" pp_param_decl p @@ -164,13 +180,19 @@ and pp_param_decl = function and pp_param_const {value; _} = let {var; param_type; _} : param_const = value in - let name = string ("const " ^ var.value) - in prefix 2 1 name @@ pp_option (fun (_,d) -> string ": " ^^ pp_type_expr d) param_type + let name = string ("const " ^ var.value) in + match param_type with + None -> name + | Some (_, e) -> + prefix 2 1 (name ^^ string " :") (pp_type_expr e) and pp_param_var {value; _} = let {var; param_type; _} : param_var = value in - let name = string ("var " ^ var.value) - in prefix 2 1 name @@ pp_option (fun (_,d) -> string ": " ^^ pp_type_expr d) param_type + let name = string ("var " ^ var.value) in + match param_type with + None -> name + | Some (_, e) -> + prefix 2 1 (name ^^ string " :") (pp_type_expr e) and pp_block {value; _} = string "block {" @@ -192,7 +214,12 @@ and pp_data_decl = function and pp_var_decl {value; _} = let {name; var_type; init; _} = value in let start = string ("var " ^ name.value) in - group (start ^/^ pp_option (fun (_,d) -> nest 2 (string ": " ^^ pp_type_expr d)) var_type) + let start = + match const_type with + None -> start + | Some (_, e) -> + group (start ^/^ nest 2 (string ": " ^^ pp_type_expr e)) in + start ^^ group (break 1 ^^ nest 2 (string ":= " ^^ pp_expr init)) and pp_instruction = function diff --git a/src/passes/01-parser/pascaligo/error.messages.checked-in b/src/passes/01-parser/pascaligo/error.messages.checked-in index 868b42a79..53308c1c4 100644 --- a/src/passes/01-parser/pascaligo/error.messages.checked-in +++ b/src/passes/01-parser/pascaligo/error.messages.checked-in @@ -703,10 +703,10 @@ interactive_expr: Function LPAR Const Ident RPAR COLON Ident VBAR ## ## Ends in an error in state: 116. ## -## fun_expr -> Function parameters option(type_expr_colon) . Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] +## fun_expr -> Function parameters option(type_annot) . Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## ## The known suffix of the stack is as follows: -## Function parameters option(type_expr_colon) +## Function parameters option(type_annot) ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an @@ -716,8 +716,8 @@ interactive_expr: Function LPAR Const Ident RPAR COLON Ident VBAR ## In state 30, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 44, spurious reduction of production type_expr -> fun_type -## In state 88, spurious reduction of production type_expr_colon -> COLON type_expr -## In state 89, spurious reduction of production option(type_expr_colon) -> type_expr_colon +## In state 88, spurious reduction of production type_annot -> COLON type_expr +## In state 89, spurious reduction of production option(type_annot) -> type_annot ## @@ -726,10 +726,10 @@ interactive_expr: Function LPAR Const Ident RPAR Is With ## ## Ends in an error in state: 117. ## -## fun_expr -> Function parameters option(type_expr_colon) Is . expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] +## fun_expr -> Function parameters option(type_annot) Is . expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## ## The known suffix of the stack is as follows: -## Function parameters option(type_expr_colon) Is +## Function parameters option(type_annot) Is ## @@ -738,7 +738,7 @@ interactive_expr: Function LPAR Const Ident RPAR With ## ## Ends in an error in state: 115. ## -## fun_expr -> Function parameters . option(type_expr_colon) Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] +## fun_expr -> Function parameters . option(type_annot) Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## ## The known suffix of the stack is as follows: ## Function parameters @@ -857,7 +857,7 @@ interactive_expr: Function With ## ## Ends in an error in state: 114. ## -## fun_expr -> Function . parameters option(type_expr_colon) Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] +## fun_expr -> Function . parameters option(type_annot) Is expr [ VBAR Type To Then Step SEMI Recursive RPAR RBRACKET RBRACE Of Function From End Else EOF Const COMMA Block Begin Attributes ARROW ] ## ## The known suffix of the stack is as follows: ## Function @@ -2515,7 +2515,7 @@ interactive_expr: Verbatim TIMES With interactive_expr: Verbatim VBAR ## -## Ends in an error in state: 601. +## Ends in an error in state: 602. ## ## interactive_expr -> expr . EOF [ # ] ## @@ -2555,7 +2555,7 @@ interactive_expr: Verbatim With interactive_expr: With ## -## Ends in an error in state: 599. +## Ends in an error in state: 600. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -2567,7 +2567,7 @@ interactive_expr: With contract: Attributes LBRACKET String End ## -## Ends in an error in state: 545. +## Ends in an error in state: 546. ## ## ne_injection(Attributes,String) -> Attributes LBRACKET sep_or_term_list(String,SEMI) . RBRACKET [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2578,15 +2578,15 @@ contract: Attributes LBRACKET String End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 537, spurious reduction of production nsepseq(String,SEMI) -> String -## In state 548, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) +## In state 538, spurious reduction of production nsepseq(String,SEMI) -> String +## In state 549, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) ## contract: Attributes LBRACKET With ## -## Ends in an error in state: 544. +## Ends in an error in state: 545. ## ## ne_injection(Attributes,String) -> Attributes LBRACKET . sep_or_term_list(String,SEMI) RBRACKET [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2598,7 +2598,7 @@ contract: Attributes LBRACKET With contract: Attributes String End Attributes String End SEMI With ## -## Ends in an error in state: 594. +## Ends in an error in state: 595. ## ## seq(declaration) -> declaration . seq(declaration) [ EOF ] ## @@ -2610,7 +2610,7 @@ contract: Attributes String End Attributes String End SEMI With contract: Attributes String End SEMI With ## -## Ends in an error in state: 592. +## Ends in an error in state: 593. ## ## nseq(declaration) -> declaration . seq(declaration) [ EOF ] ## @@ -2622,7 +2622,7 @@ contract: Attributes String End SEMI With contract: Attributes String End With ## -## Ends in an error in state: 587. +## Ends in an error in state: 588. ## ## attr_decl -> open_attr_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -2634,7 +2634,7 @@ contract: Attributes String End With contract: Attributes String RBRACKET ## -## Ends in an error in state: 549. +## Ends in an error in state: 550. ## ## ne_injection(Attributes,String) -> Attributes sep_or_term_list(String,SEMI) . End [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2645,15 +2645,15 @@ contract: Attributes String RBRACKET ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 537, spurious reduction of production nsepseq(String,SEMI) -> String -## In state 548, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) +## In state 538, spurious reduction of production nsepseq(String,SEMI) -> String +## In state 549, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) ## contract: Attributes String SEMI String SEMI With ## -## Ends in an error in state: 540. +## Ends in an error in state: 541. ## ## nsepseq(String,SEMI) -> String SEMI . nsepseq(String,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(String,SEMI)) -> String SEMI . seq(__anonymous_0(String,SEMI)) [ RBRACKET End ] @@ -2666,7 +2666,7 @@ contract: Attributes String SEMI String SEMI With contract: Attributes String SEMI String With ## -## Ends in an error in state: 539. +## Ends in an error in state: 540. ## ## nsepseq(String,SEMI) -> String . [ RBRACKET End ] ## nsepseq(String,SEMI) -> String . SEMI nsepseq(String,SEMI) [ RBRACKET End ] @@ -2680,7 +2680,7 @@ contract: Attributes String SEMI String With contract: Attributes String SEMI With ## -## Ends in an error in state: 538. +## Ends in an error in state: 539. ## ## nsepseq(String,SEMI) -> String SEMI . nsepseq(String,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(String,SEMI)) -> String SEMI . seq(__anonymous_0(String,SEMI)) [ RBRACKET End ] @@ -2693,7 +2693,7 @@ contract: Attributes String SEMI With contract: Attributes String With ## -## Ends in an error in state: 537. +## Ends in an error in state: 538. ## ## nsepseq(String,SEMI) -> String . [ RBRACKET End ] ## nsepseq(String,SEMI) -> String . SEMI nsepseq(String,SEMI) [ RBRACKET End ] @@ -2707,7 +2707,7 @@ contract: Attributes String With contract: Attributes With ## -## Ends in an error in state: 536. +## Ends in an error in state: 537. ## ## ne_injection(Attributes,String) -> Attributes . sep_or_term_list(String,SEMI) End [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ne_injection(Attributes,String) -> Attributes . LBRACKET sep_or_term_list(String,SEMI) RBRACKET [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -2720,12 +2720,12 @@ contract: Attributes With contract: Const Ident COLON Ident VBAR ## -## Ends in an error in state: 491. +## Ends in an error in state: 492. ## -## unqualified_decl(EQ) -> Ident option(type_expr_colon) . EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## unqualified_decl(EQ) -> Ident option(type_annot) . EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Ident option(type_expr_colon) +## Ident option(type_annot) ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an @@ -2735,8 +2735,8 @@ contract: Const Ident COLON Ident VBAR ## In state 30, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 44, spurious reduction of production type_expr -> fun_type -## In state 88, spurious reduction of production type_expr_colon -> COLON type_expr -## In state 89, spurious reduction of production option(type_expr_colon) -> type_expr_colon +## In state 88, spurious reduction of production type_annot -> COLON type_expr +## In state 89, spurious reduction of production option(type_annot) -> type_annot ## @@ -2745,7 +2745,7 @@ contract: Const Ident COLON With ## ## Ends in an error in state: 87. ## -## type_expr_colon -> COLON . type_expr [ Is EQ ASS ] +## type_annot -> COLON . type_expr [ Is EQ ASS ] ## ## The known suffix of the stack is as follows: ## COLON @@ -2755,7 +2755,7 @@ contract: Const Ident COLON With contract: Const Ident EQ Bytes VBAR ## -## Ends in an error in state: 585. +## Ends in an error in state: 586. ## ## const_decl -> open_const_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -2776,29 +2776,29 @@ contract: Const Ident EQ Bytes VBAR ## In state 147, spurious reduction of production conj_expr -> set_membership ## In state 228, spurious reduction of production disj_expr -> conj_expr ## In state 196, spurious reduction of production expr -> disj_expr -## In state 493, spurious reduction of production unqualified_decl(EQ) -> Ident option(type_expr_colon) EQ expr -## In state 494, spurious reduction of production open_const_decl -> Const unqualified_decl(EQ) +## In state 494, spurious reduction of production unqualified_decl(EQ) -> Ident option(type_annot) EQ expr +## In state 495, spurious reduction of production open_const_decl -> Const unqualified_decl(EQ) ## contract: Const Ident EQ With ## -## Ends in an error in state: 492. +## Ends in an error in state: 493. ## -## unqualified_decl(EQ) -> Ident option(type_expr_colon) EQ . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## unqualified_decl(EQ) -> Ident option(type_annot) EQ . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Ident option(type_expr_colon) EQ +## Ident option(type_annot) EQ ## contract: Const Ident With ## -## Ends in an error in state: 490. +## Ends in an error in state: 491. ## -## unqualified_decl(EQ) -> Ident . option(type_expr_colon) EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## unqualified_decl(EQ) -> Ident . option(type_annot) EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Ident @@ -2808,7 +2808,7 @@ contract: Const Ident With contract: Const With ## -## Ends in an error in state: 489. +## Ends in an error in state: 490. ## ## open_const_decl -> Const . unqualified_decl(EQ) [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2822,11 +2822,11 @@ contract: Function Ident LPAR Const Ident RPAR COLON Ident VBAR ## ## Ends in an error in state: 461. ## -## open_fun_decl -> Function Ident parameters option(type_expr_colon) . Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Function Ident parameters option(type_expr_colon) . Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters option(type_annot) . Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters option(type_annot) . Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Function Ident parameters option(type_expr_colon) +## Function Ident parameters option(type_annot) ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an @@ -2836,15 +2836,15 @@ contract: Function Ident LPAR Const Ident RPAR COLON Ident VBAR ## In state 30, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 44, spurious reduction of production type_expr -> fun_type -## In state 88, spurious reduction of production type_expr_colon -> COLON type_expr -## In state 89, spurious reduction of production option(type_expr_colon) -> type_expr_colon +## In state 88, spurious reduction of production type_annot -> COLON type_expr +## In state 89, spurious reduction of production option(type_annot) -> type_annot ## contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of LBRACKET VBAR Block ## -## Ends in an error in state: 499. +## Ends in an error in state: 500. ## ## case(if_clause) -> Case expr Of LBRACKET option(VBAR) . cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2856,7 +2856,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of LBRACKE contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of LBRACKET WILD ARROW Skip End ## -## Ends in an error in state: 528. +## Ends in an error in state: 529. ## ## case(if_clause) -> Case expr Of LBRACKET option(VBAR) cases(if_clause) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2867,15 +2867,15 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of LBRACKE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 530, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) -## In state 527, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) +## In state 531, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) +## In state 528, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) ## contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of LBRACKET With ## -## Ends in an error in state: 498. +## Ends in an error in state: 499. ## ## case(if_clause) -> Case expr Of LBRACKET . option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2887,7 +2887,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of LBRACKE contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of VBAR Block ## -## Ends in an error in state: 533. +## Ends in an error in state: 534. ## ## case(if_clause) -> Case expr Of option(VBAR) . cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2899,7 +2899,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of VBAR Bl contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD ARROW Skip RBRACKET ## -## Ends in an error in state: 534. +## Ends in an error in state: 535. ## ## case(if_clause) -> Case expr Of option(VBAR) cases(if_clause) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2910,15 +2910,15 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD AR ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 530, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) -## In state 527, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) +## In state 531, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) +## In state 528, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) ## contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD ARROW Skip VBAR With ## -## Ends in an error in state: 531. +## Ends in an error in state: 532. ## ## nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) VBAR . nsepseq(case_clause(if_clause),VBAR) [ RBRACKET End ] ## @@ -2930,7 +2930,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD AR contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD ARROW Skip With ## -## Ends in an error in state: 530. +## Ends in an error in state: 531. ## ## nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) . [ RBRACKET End ] ## nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) . VBAR nsepseq(case_clause(if_clause),VBAR) [ RBRACKET End ] @@ -2943,7 +2943,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD AR contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD ARROW With ## -## Ends in an error in state: 501. +## Ends in an error in state: 502. ## ## case_clause(if_clause) -> pattern ARROW . if_clause [ VBAR RBRACKET End ] ## @@ -2955,7 +2955,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD AR contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD RPAR ## -## Ends in an error in state: 500. +## Ends in an error in state: 501. ## ## case_clause(if_clause) -> pattern . ARROW if_clause [ VBAR RBRACKET End ] ## @@ -2973,7 +2973,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of WILD RP contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of With ## -## Ends in an error in state: 497. +## Ends in an error in state: 498. ## ## case(if_clause) -> Case expr Of . option(VBAR) cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## case(if_clause) -> Case expr Of . LBRACKET option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -2986,7 +2986,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim Of With contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim VBAR ## -## Ends in an error in state: 496. +## Ends in an error in state: 497. ## ## case(if_clause) -> Case expr . Of option(VBAR) cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## case(if_clause) -> Case expr . Of LBRACKET option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3014,7 +3014,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case Verbatim VBAR contract: Function Ident LPAR Const Ident RPAR Is Begin Case With ## -## Ends in an error in state: 495. +## Ends in an error in state: 496. ## ## case(if_clause) -> Case . expr Of option(VBAR) cases(if_clause) End [ VBAR SEMI RBRACKET RBRACE End Else ] ## case(if_clause) -> Case . expr Of LBRACKET option(VBAR) cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] @@ -3027,7 +3027,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Case With contract: Function Ident LPAR Const Ident RPAR Is Begin Constr DOT And With ## -## Ends in an error in state: 508. +## Ends in an error in state: 509. ## ## fun_call -> module_field . arguments [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3039,7 +3039,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Constr DOT And With contract: Function Ident LPAR Const Ident RPAR Is Begin Constr With ## -## Ends in an error in state: 488. +## Ends in an error in state: 489. ## ## module_field -> Constr . DOT module_fun [ LPAR ] ## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ LBRACKET ASS ] @@ -3052,7 +3052,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Constr With contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ARROW Ident With ## -## Ends in an error in state: 479. +## Ends in an error in state: 480. ## ## for_loop -> For Ident option(arrow_clause) . In collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3064,7 +3064,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ARROW Ident Wi contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ARROW With ## -## Ends in an error in state: 477. +## Ends in an error in state: 478. ## ## arrow_clause -> ARROW . Ident [ In ] ## @@ -3076,12 +3076,12 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ARROW With contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS Verbatim To Verbatim Step Verbatim VBAR ## -## Ends in an error in state: 474. +## Ends in an error in state: 476. ## -## for_loop -> For Ident ASS expr To expr Step expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] +## for_loop -> For Ident ASS expr To expr option(step_clause) . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: -## For Ident ASS expr To expr Step expr +## For Ident ASS expr To expr option(step_clause) ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an @@ -3097,6 +3097,8 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS Verbatim T ## In state 147, spurious reduction of production conj_expr -> set_membership ## In state 228, spurious reduction of production disj_expr -> conj_expr ## In state 196, spurious reduction of production expr -> disj_expr +## In state 474, spurious reduction of production step_clause -> Step expr +## In state 475, spurious reduction of production option(step_clause) -> step_clause ## @@ -3105,10 +3107,10 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS Verbatim T ## ## Ends in an error in state: 473. ## -## for_loop -> For Ident ASS expr To expr Step . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] +## step_clause -> Step . expr [ Block Begin ] ## ## The known suffix of the stack is as follows: -## For Ident ASS expr To expr Step +## Step ## @@ -3117,8 +3119,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS Verbatim T ## ## Ends in an error in state: 472. ## -## for_loop -> For Ident ASS expr To expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] -## for_loop -> For Ident ASS expr To expr . Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] +## for_loop -> For Ident ASS expr To expr . option(step_clause) block [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: ## For Ident ASS expr To expr @@ -3145,8 +3146,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS Verbatim T ## ## Ends in an error in state: 471. ## -## for_loop -> For Ident ASS expr To . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] -## for_loop -> For Ident ASS expr To . expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] +## for_loop -> For Ident ASS expr To . expr option(step_clause) block [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: ## For Ident ASS expr To @@ -3158,8 +3158,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS Verbatim V ## ## Ends in an error in state: 470. ## -## for_loop -> For Ident ASS expr . To expr block [ VBAR SEMI RBRACKET RBRACE End Else ] -## for_loop -> For Ident ASS expr . To expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] +## for_loop -> For Ident ASS expr . To expr option(step_clause) block [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: ## For Ident ASS expr @@ -3186,8 +3185,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS With ## ## Ends in an error in state: 469. ## -## for_loop -> For Ident ASS . expr To expr block [ VBAR SEMI RBRACKET RBRACE End Else ] -## for_loop -> For Ident ASS . expr To expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] +## for_loop -> For Ident ASS . expr To expr option(step_clause) block [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: ## For Ident ASS @@ -3197,7 +3195,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident ASS With contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident In Set Verbatim VBAR ## -## Ends in an error in state: 485. +## Ends in an error in state: 486. ## ## for_loop -> For Ident option(arrow_clause) In collection expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3224,7 +3222,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident In Set Verbati contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident In Set With ## -## Ends in an error in state: 484. +## Ends in an error in state: 485. ## ## for_loop -> For Ident option(arrow_clause) In collection . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3236,7 +3234,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident In Set With contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident In With ## -## Ends in an error in state: 480. +## Ends in an error in state: 481. ## ## for_loop -> For Ident option(arrow_clause) In . collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3250,8 +3248,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For Ident With ## ## Ends in an error in state: 468. ## -## for_loop -> For Ident . ASS expr To expr block [ VBAR SEMI RBRACKET RBRACE End Else ] -## for_loop -> For Ident . ASS expr To expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] +## for_loop -> For Ident . ASS expr To expr option(step_clause) block [ VBAR SEMI RBRACKET RBRACE End Else ] ## for_loop -> For Ident . option(arrow_clause) In collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: @@ -3264,8 +3261,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For With ## ## Ends in an error in state: 467. ## -## for_loop -> For . Ident ASS expr To expr block [ VBAR SEMI RBRACKET RBRACE End Else ] -## for_loop -> For . Ident ASS expr To expr Step expr block [ VBAR SEMI RBRACKET RBRACE End Else ] +## for_loop -> For . Ident ASS expr To expr option(step_clause) block [ VBAR SEMI RBRACKET RBRACE End Else ] ## for_loop -> For . Ident option(arrow_clause) In collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## ## The known suffix of the stack is as follows: @@ -3276,7 +3272,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin For With contract: Function Ident LPAR Const Ident RPAR Is Begin Ident ASS With ## -## Ends in an error in state: 514. +## Ends in an error in state: 515. ## ## assignment -> lhs ASS . rhs [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3288,7 +3284,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Ident ASS With contract: Function Ident LPAR Const Ident RPAR Is Begin Ident DOT Ident With ## -## Ends in an error in state: 507. +## Ends in an error in state: 508. ## ## lhs -> path . [ ASS ] ## map_lookup -> path . brackets(expr) [ ASS ] @@ -3309,7 +3305,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Ident DOT Ident With contract: Function Ident LPAR Const Ident RPAR Is Begin Ident LBRACKET Bytes RBRACKET With ## -## Ends in an error in state: 513. +## Ends in an error in state: 514. ## ## assignment -> lhs . ASS rhs [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3335,7 +3331,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Ident With contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then LBRACE Skip End ## -## Ends in an error in state: 565. +## Ends in an error in state: 566. ## ## clause_block -> LBRACE sep_or_term_list(statement,SEMI) . RBRACE [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3346,8 +3342,8 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then LBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 551, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 568, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 552, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 569, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## @@ -3366,7 +3362,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then LBRACE contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then Skip Else With ## -## Ends in an error in state: 571. +## Ends in an error in state: 572. ## ## conditional -> If expr Then if_clause option(SEMI) Else . if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3378,7 +3374,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then Skip El contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then Skip SEMI EQ ## -## Ends in an error in state: 570. +## Ends in an error in state: 571. ## ## conditional -> If expr Then if_clause option(SEMI) . Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3390,7 +3386,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then Skip SE contract: Function Ident LPAR Const Ident RPAR Is Begin If Verbatim Then Skip With ## -## Ends in an error in state: 569. +## Ends in an error in state: 570. ## ## conditional -> If expr Then if_clause . option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3834,10 +3830,10 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Skip End While ## ## Ends in an error in state: 464. ## -## open_fun_decl -> Function Ident parameters option(type_expr_colon) Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters option(type_annot) Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Function Ident parameters option(type_expr_colon) Is block +## Function Ident parameters option(type_annot) Is block ## @@ -3846,17 +3842,17 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Skip End With With ## ## Ends in an error in state: 465. ## -## open_fun_decl -> Function Ident parameters option(type_expr_colon) Is block With . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters option(type_annot) Is block With . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Function Ident parameters option(type_expr_colon) Is block With +## Function Ident parameters option(type_annot) Is block With ## contract: Function Ident LPAR Const Ident RPAR Is Begin Skip RBRACE ## -## Ends in an error in state: 573. +## Ends in an error in state: 574. ## ## block -> Begin sep_or_term_list(statement,SEMI) . End [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3867,15 +3863,15 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Skip RBRACE ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 551, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 568, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 552, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 569, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## contract: Function Ident LPAR Const Ident RPAR Is Begin Skip SEMI Skip SEMI With ## -## Ends in an error in state: 554. +## Ends in an error in state: 555. ## ## nsepseq(statement,SEMI) -> statement SEMI . nsepseq(statement,SEMI) [ RBRACE End ] ## seq(__anonymous_0(statement,SEMI)) -> statement SEMI . seq(__anonymous_0(statement,SEMI)) [ RBRACE End ] @@ -3888,7 +3884,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Skip SEMI Skip SEMI With contract: Function Ident LPAR Const Ident RPAR Is Begin Skip SEMI Skip With ## -## Ends in an error in state: 553. +## Ends in an error in state: 554. ## ## nsepseq(statement,SEMI) -> statement . [ RBRACE End ] ## nsepseq(statement,SEMI) -> statement . SEMI nsepseq(statement,SEMI) [ RBRACE End ] @@ -3902,7 +3898,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Skip SEMI Skip With contract: Function Ident LPAR Const Ident RPAR Is Begin Skip SEMI With ## -## Ends in an error in state: 552. +## Ends in an error in state: 553. ## ## nsepseq(statement,SEMI) -> statement SEMI . nsepseq(statement,SEMI) [ RBRACE End ] ## nseq(__anonymous_0(statement,SEMI)) -> statement SEMI . seq(__anonymous_0(statement,SEMI)) [ RBRACE End ] @@ -3915,7 +3911,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Skip SEMI With contract: Function Ident LPAR Const Ident RPAR Is Begin Skip With ## -## Ends in an error in state: 551. +## Ends in an error in state: 552. ## ## nsepseq(statement,SEMI) -> statement . [ RBRACE End ] ## nsepseq(statement,SEMI) -> statement . SEMI nsepseq(statement,SEMI) [ RBRACE End ] @@ -3931,10 +3927,10 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Var Ident ASS With ## ## Ends in an error in state: 418. ## -## unqualified_decl(ASS) -> Ident option(type_expr_colon) ASS . expr [ SEMI RBRACE End ] +## unqualified_decl(ASS) -> Ident option(type_annot) ASS . expr [ SEMI RBRACE End ] ## ## The known suffix of the stack is as follows: -## Ident option(type_expr_colon) ASS +## Ident option(type_annot) ASS ## @@ -3943,10 +3939,10 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Var Ident COLON Ident VB ## ## Ends in an error in state: 417. ## -## unqualified_decl(ASS) -> Ident option(type_expr_colon) . ASS expr [ SEMI RBRACE End ] +## unqualified_decl(ASS) -> Ident option(type_annot) . ASS expr [ SEMI RBRACE End ] ## ## The known suffix of the stack is as follows: -## Ident option(type_expr_colon) +## Ident option(type_annot) ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an @@ -3956,8 +3952,8 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Var Ident COLON Ident VB ## In state 30, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 44, spurious reduction of production type_expr -> fun_type -## In state 88, spurious reduction of production type_expr_colon -> COLON type_expr -## In state 89, spurious reduction of production option(type_expr_colon) -> type_expr_colon +## In state 88, spurious reduction of production type_annot -> COLON type_expr +## In state 89, spurious reduction of production option(type_annot) -> type_annot ## @@ -3966,7 +3962,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin Var Ident With ## ## Ends in an error in state: 416. ## -## unqualified_decl(ASS) -> Ident . option(type_expr_colon) ASS expr [ SEMI RBRACE End ] +## unqualified_decl(ASS) -> Ident . option(type_annot) ASS expr [ SEMI RBRACE End ] ## ## The known suffix of the stack is as follows: ## Ident @@ -4039,7 +4035,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Begin With contract: Function Ident LPAR Const Ident RPAR Is Block LBRACE Skip End ## -## Ends in an error in state: 576. +## Ends in an error in state: 577. ## ## block -> Block LBRACE sep_or_term_list(statement,SEMI) . RBRACE [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4050,8 +4046,8 @@ contract: Function Ident LPAR Const Ident RPAR Is Block LBRACE Skip End ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 551, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 568, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 552, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 569, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## @@ -4082,7 +4078,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Block With contract: Function Ident LPAR Const Ident RPAR Is Bytes VBAR ## -## Ends in an error in state: 583. +## Ends in an error in state: 584. ## ## fun_decl -> open_fun_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -4103,7 +4099,7 @@ contract: Function Ident LPAR Const Ident RPAR Is Bytes VBAR ## In state 147, spurious reduction of production conj_expr -> set_membership ## In state 228, spurious reduction of production disj_expr -> conj_expr ## In state 196, spurious reduction of production expr -> disj_expr -## In state 463, spurious reduction of production open_fun_decl -> Function Ident parameters option(type_expr_colon) Is expr +## In state 463, spurious reduction of production open_fun_decl -> Function Ident parameters option(type_annot) Is expr ## @@ -4112,11 +4108,11 @@ contract: Function Ident LPAR Const Ident RPAR Is With ## ## Ends in an error in state: 462. ## -## open_fun_decl -> Function Ident parameters option(type_expr_colon) Is . block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Function Ident parameters option(type_expr_colon) Is . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters option(type_annot) Is . block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters option(type_annot) Is . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Function Ident parameters option(type_expr_colon) Is +## Function Ident parameters option(type_annot) Is ## @@ -4125,8 +4121,8 @@ contract: Function Ident LPAR Const Ident RPAR With ## ## Ends in an error in state: 460. ## -## open_fun_decl -> Function Ident parameters . option(type_expr_colon) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Function Ident parameters . option(type_expr_colon) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters . option(type_annot) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident parameters . option(type_annot) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Function Ident parameters @@ -4138,8 +4134,8 @@ contract: Function Ident With ## ## Ends in an error in state: 459. ## -## open_fun_decl -> Function Ident . parameters option(type_expr_colon) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Function Ident . parameters option(type_expr_colon) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident . parameters option(type_annot) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function Ident . parameters option(type_annot) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Function Ident @@ -4151,8 +4147,8 @@ contract: Function With ## ## Ends in an error in state: 458. ## -## open_fun_decl -> Function . Ident parameters option(type_expr_colon) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Function . Ident parameters option(type_expr_colon) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function . Ident parameters option(type_annot) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Function . Ident parameters option(type_annot) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Function @@ -4164,11 +4160,11 @@ contract: Recursive Function Ident LPAR Const Ident RPAR COLON String VBAR ## ## Ends in an error in state: 90. ## -## open_fun_decl -> Recursive Function Ident parameters option(type_expr_colon) . Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Recursive Function Ident parameters option(type_expr_colon) . Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters option(type_annot) . Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters option(type_annot) . Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Recursive Function Ident parameters option(type_expr_colon) +## Recursive Function Ident parameters option(type_annot) ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an @@ -4177,32 +4173,32 @@ contract: Recursive Function Ident LPAR Const Ident RPAR COLON String VBAR ## In state 30, spurious reduction of production cartesian -> core_type ## In state 36, spurious reduction of production fun_type -> cartesian ## In state 44, spurious reduction of production type_expr -> fun_type -## In state 88, spurious reduction of production type_expr_colon -> COLON type_expr -## In state 89, spurious reduction of production option(type_expr_colon) -> type_expr_colon +## In state 88, spurious reduction of production type_annot -> COLON type_expr +## In state 89, spurious reduction of production option(type_annot) -> type_annot ## contract: Recursive Function Ident LPAR Const Ident RPAR Is Begin Skip End While ## -## Ends in an error in state: 579. +## Ends in an error in state: 580. ## -## open_fun_decl -> Recursive Function Ident parameters option(type_expr_colon) Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters option(type_annot) Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Recursive Function Ident parameters option(type_expr_colon) Is block +## Recursive Function Ident parameters option(type_annot) Is block ## contract: Recursive Function Ident LPAR Const Ident RPAR Is Begin Skip End With With ## -## Ends in an error in state: 580. +## Ends in an error in state: 581. ## -## open_fun_decl -> Recursive Function Ident parameters option(type_expr_colon) Is block With . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters option(type_annot) Is block With . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Recursive Function Ident parameters option(type_expr_colon) Is block With +## Recursive Function Ident parameters option(type_annot) Is block With ## @@ -4211,11 +4207,11 @@ contract: Recursive Function Ident LPAR Const Ident RPAR Is With ## ## Ends in an error in state: 91. ## -## open_fun_decl -> Recursive Function Ident parameters option(type_expr_colon) Is . block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Recursive Function Ident parameters option(type_expr_colon) Is . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters option(type_annot) Is . block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters option(type_annot) Is . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: -## Recursive Function Ident parameters option(type_expr_colon) Is +## Recursive Function Ident parameters option(type_annot) Is ## @@ -4224,8 +4220,8 @@ contract: Recursive Function Ident LPAR Const Ident RPAR With ## ## Ends in an error in state: 86. ## -## open_fun_decl -> Recursive Function Ident parameters . option(type_expr_colon) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Recursive Function Ident parameters . option(type_expr_colon) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters . option(type_annot) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident parameters . option(type_annot) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Recursive Function Ident parameters @@ -4237,8 +4233,8 @@ contract: Recursive Function Ident With ## ## Ends in an error in state: 70. ## -## open_fun_decl -> Recursive Function Ident . parameters option(type_expr_colon) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Recursive Function Ident . parameters option(type_expr_colon) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident . parameters option(type_annot) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function Ident . parameters option(type_annot) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Recursive Function Ident @@ -4250,8 +4246,8 @@ contract: Recursive Function With ## ## Ends in an error in state: 69. ## -## open_fun_decl -> Recursive Function . Ident parameters option(type_expr_colon) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Recursive Function . Ident parameters option(type_expr_colon) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function . Ident parameters option(type_annot) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive Function . Ident parameters option(type_annot) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Recursive Function @@ -4263,8 +4259,8 @@ contract: Recursive With ## ## Ends in an error in state: 68. ## -## open_fun_decl -> Recursive . Function Ident parameters option(type_expr_colon) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] -## open_fun_decl -> Recursive . Function Ident parameters option(type_expr_colon) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive . Function Ident parameters option(type_annot) Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] +## open_fun_decl -> Recursive . Function Ident parameters option(type_annot) Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## ## The known suffix of the stack is as follows: ## Recursive diff --git a/src/passes/01-parser/shared/Lexer.mll b/src/passes/01-parser/shared/Lexer.mll index 172c957ca..787a21a9b 100644 --- a/src/passes/01-parser/shared/Lexer.mll +++ b/src/passes/01-parser/shared/Lexer.mll @@ -438,13 +438,13 @@ and scan state = parse (* String *) -| '"' { let opening, _, state = state#sync lexbuf in - let thread = LexerLib.mk_thread opening "" in - scan_string thread state lexbuf |> mk_string } +| '"' { let opening, _, state = state#sync lexbuf in + let thread = LexerLib.mk_thread opening in + scan_string thread state lexbuf |> mk_string } | "{|" { let opening, _, state = state#sync lexbuf in - let thread = LexerLib.mk_thread opening "" in - scan_verbatim thread state lexbuf |> mk_verbatim } + let thread = LexerLib.mk_thread opening in + scan_verbatim thread state lexbuf |> mk_verbatim } (* Comments *) @@ -453,33 +453,28 @@ and scan state = parse match state#block with Some block when block#opening = lexeme -> let opening, _, state = state#sync lexbuf in - let thread = LexerLib.mk_thread opening lexeme in - let thread, state = scan_block block thread state lexbuf in - let state = state#push_block thread - in scan state lexbuf - | Some _ | None -> - let n = String.length lexeme in - begin - LexerLib.rollback lexbuf; - assert (n > 0); - scan (scan_n_sym n state lexbuf) lexbuf - end } + let thread = LexerLib.mk_thread opening in + let thread = thread#push_string lexeme in + let thread, state = scan_block block thread state lexbuf + in scan (state#push_block thread) lexbuf + | Some _ | None -> (* Not a comment for this LIGO syntax *) + let n = String.length lexeme in + let () = LexerLib.rollback lexbuf in + scan (scan_n_sym n state lexbuf) lexbuf } | line_comments { let lexeme = Lexing.lexeme lexbuf in match state#line with Some line when line = lexeme -> let opening, _, state = state#sync lexbuf in - let thread = LexerLib.mk_thread opening lexeme in - let thread, state = scan_line thread state lexbuf in - let state = state#push_line thread - in scan state lexbuf - | Some _ | None -> - let n = String.length lexeme in - begin - LexerLib.rollback lexbuf; - scan (scan_n_sym n state lexbuf) lexbuf - end } + let thread = LexerLib.mk_thread opening in + let thread = thread#push_string lexeme in + let thread, state = scan_line thread state lexbuf + in scan (state#push_line thread) lexbuf + | Some _ | None -> (* Not a comment for this LIGO syntax *) + let n = String.length lexeme in + let () = LexerLib.rollback lexbuf in + scan (scan_n_sym n state lexbuf) lexbuf } | _ as c { let region, _, _ = state#sync lexbuf in fail region (Unexpected_character c) } @@ -488,8 +483,7 @@ and scan state = parse and scan_n_sym n state = parse symbol { let state = mk_sym state lexbuf in - if n = 1 then state - else scan_n_sym (n-1) state lexbuf } + if n = 1 then state else scan_n_sym (n-1) state lexbuf } (* Scanning #include flag *) @@ -552,7 +546,6 @@ and scan_block block thread state = parse in scan_block block thread state lexbuf else let () = LexerLib.rollback lexbuf in let n = String.length lexeme in - let () = assert (n > 0) in let state = scan_n_sym n state lexbuf in scan_block block thread state lexbuf } @@ -563,7 +556,6 @@ and scan_block block thread state = parse in thread#push_string lexeme, state else let () = LexerLib.rollback lexbuf in let n = String.length lexeme in - let () = assert (n > 0) in let state = scan_n_sym n state lexbuf in scan_block block thread state lexbuf } @@ -588,27 +580,6 @@ and scan_block block thread state = parse let region = Region.make ~start:state#pos ~stop:pos in fail region error } -(* Finishing a line comment *) - -and scan_line thread state = parse - nl as nl { let () = Lexing.new_line lexbuf - and thread = thread#push_string nl - and state = state#set_pos (state#pos#new_line nl) - in thread, state } -| eof { thread, state } -| _ { let () = LexerLib.rollback lexbuf in - let len = thread#length in - let thread, - status = scan_utf8_inline thread state lexbuf in - let delta = thread#length - len in - let pos = state#pos#shift_one_uchar delta in - match status with - Stdlib.Ok () -> - scan_line thread (state#set_pos pos) lexbuf - | Error error -> - let region = Region.make ~start:state#pos ~stop:pos - in fail region error } - and scan_utf8 block thread state = parse eof { let err = Unterminated_comment block#closing in fail thread#opening err } @@ -621,6 +592,27 @@ and scan_utf8 block thread state = parse | `Await -> scan_utf8 block thread state lexbuf | `End -> assert false } +(* Finishing a line comment *) + +and scan_line thread state = parse + nl as nl { let () = Lexing.new_line lexbuf + and thread = thread#push_string nl + and state = state#set_pos (state#pos#new_line nl) + in thread, state } +| eof { thread, state } +| _ { let () = LexerLib.rollback lexbuf in + let len = thread#length in + let thread, + status = scan_utf8_inline thread state lexbuf in + let delta = thread#length - len in + let pos = state#pos#shift_one_uchar delta in + match status with + Stdlib.Ok () -> + scan_line thread (state#set_pos pos) lexbuf + | Error error -> + let region = Region.make ~start:state#pos ~stop:pos + in fail region error } + and scan_utf8_inline thread state = parse eof { thread, Stdlib.Ok () } | _ as c { let thread = thread#push_char c in diff --git a/src/passes/01-parser/shared/LexerLib.ml b/src/passes/01-parser/shared/LexerLib.ml index e6ba62b9e..850c71a57 100644 --- a/src/passes/01-parser/shared/LexerLib.ml +++ b/src/passes/01-parser/shared/LexerLib.ml @@ -69,7 +69,7 @@ type thread = < set_opening : Region.t -> thread > -let mk_thread region lexeme : thread = +let mk_thread region : thread = (* The call [explode s a] is the list made by pushing the characters in the string [s] on top of [a], in reverse order. For example, [explode "ba" ['c';'d'] = ['a'; 'b'; 'c'; 'd']]. *) @@ -83,10 +83,10 @@ let mk_thread region lexeme : thread = val opening = region method opening = opening - val length = String.length lexeme + val length = 0 method length = length - val acc = explode lexeme [] + val acc = [] method acc = acc method set_opening opening = {< opening; length; acc >} @@ -100,10 +100,10 @@ let mk_thread region lexeme : thread = acc = explode str acc >} (* The value of [thread#to_string] is a string of length - [thread#length] containing the [thread#length] characters in - the list [thread#acc], in reverse order. For instance, - [thread#to_string = "abc"] if [thread#length = 3] and - [thread#acc = ['c';'b';'a']]. *) + [thread#length] containing the characters in the list + [thread#acc], in reverse order. For instance, [thread#to_string + = "abc"] if [thread#length = 3] and [thread#acc = + ['c';'b';'a']]. *) method to_string = let bytes = Bytes.make length ' ' in @@ -159,15 +159,16 @@ type 'token window = | Two of 'token * 'token type 'token state = < - units : (Markup.t list * 'token) FQueue.t; - markup : Markup.t list; - window : 'token window; - last : Region.t; - pos : Pos.t; - decoder : Uutf.decoder; - supply : Bytes.t -> int -> int -> unit; - block : EvalOpt.block_comment option; - line : EvalOpt.line_comment option; + units : (Markup.t list * 'token) FQueue.t; + markup : Markup.t list; + comments : Markup.comment FQueue.t; + window : 'token window; + last : Region.t; + pos : Pos.t; + decoder : Uutf.decoder; + supply : Bytes.t -> int -> int -> unit; + block : EvalOpt.block_comment option; + line : EvalOpt.line_comment option; enqueue : 'token -> 'token state; set_units : (Markup.t list * 'token) FQueue.t -> 'token state; @@ -184,25 +185,28 @@ type 'token state = < push_tabs : Lexing.lexbuf -> 'token state; push_bom : Lexing.lexbuf -> 'token state; push_markup : Markup.t -> 'token state; + push_comment : Markup.comment -> 'token state > -let mk_state ~units ~markup ~window ~last ~pos ~decoder ~supply +let mk_state ~units ~markup ~comments ~window ~last ~pos ~decoder ~supply ?block ?line () : _ state = object (self) - val units = units - method units = units - val markup = markup - method markup = markup - val window = window - method window = window - val last = last - method last = last - val pos = pos - method pos = pos - method decoder = decoder - method supply = supply - method block = block - method line = line + val units = units + method units = units + val markup = markup + method markup = markup + val comments = comments + method comments = comments + val window = window + method window = window + val last = last + method last = last + val pos = pos + method pos = pos + method decoder = decoder + method supply = supply + method block = block + method line = line method enqueue token = {< units = FQueue.enq (markup, token) units; @@ -229,6 +233,9 @@ let mk_state ~units ~markup ~window ~last ~pos ~decoder ~supply (* Committing markup to the current logical state *) + method push_comment comment = + {< comments = FQueue.enq comment comments >} + method push_markup unit = {< markup = unit :: markup >} method push_newline buffer = @@ -238,21 +245,23 @@ let mk_state ~units ~markup ~window ~last ~pos ~decoder ~supply let stop = start#new_line value in let region = Region.make ~start ~stop in let unit = Markup.Newline Region.{region; value} - in {< pos = stop; markup = unit::markup >} + in (self#push_markup unit)#set_pos stop method push_line thread = let start = thread#opening#start in let region = Region.make ~start ~stop:self#pos and value = thread#to_string in - let unit = Markup.LineCom Region.{region; value} - in {< markup = unit::markup >} + let reg = Region.{region; value} in + let unit = Markup.LineCom reg + in (self#push_markup unit)#push_comment (Markup.Line reg) method push_block thread = let start = thread#opening#start in let region = Region.make ~start ~stop:self#pos and value = thread#to_string in - let unit = Markup.BlockCom Region.{region; value} - in {< markup = unit::markup >} + let reg = Region.{region; value} in + let unit = Markup.BlockCom reg + in (self#push_markup unit)#push_comment (Markup.Block reg) method push_space buffer = let region, lex, state = self#sync buffer in @@ -283,14 +292,15 @@ type input = type 'token logger = Markup.t list -> 'token -> unit type 'token instance = { - input : input; - read : log:('token logger) -> Lexing.lexbuf -> 'token; - buffer : Lexing.lexbuf; - get_win : unit -> 'token window; - get_pos : unit -> Pos.t; - get_last : unit -> Region.t; - get_file : unit -> file_path; - close : unit -> unit + input : input; + read : log:('token logger) -> Lexing.lexbuf -> 'token; + buffer : Lexing.lexbuf; + close : unit -> unit; + get_win : unit -> 'token window; + get_pos : unit -> Pos.t; + get_last : unit -> Region.t; + get_file : unit -> file_path; + get_comments : unit -> Markup.comment FQueue.t } type open_err = File_opening of string @@ -329,15 +339,18 @@ let open_token_stream ?line ?block ~scan ~window:Nil ~pos ~markup:[] + ~comments:FQueue.empty ~decoder ~supply ?block ?line ()) in - let get_pos () = !state#pos - and get_last () = !state#last - and get_win () = !state#window - and get_file () = file_path in + + let get_pos () = !state#pos + and get_last () = !state#last + and get_win () = !state#window + and get_comments () = !state#comments + and get_file () = file_path in let patch_buffer (start, stop) buffer = let open Lexing in @@ -368,8 +381,8 @@ let open_token_stream ?line ?block ~scan | Some (units, (left_mark, token)) -> log left_mark token; state := ((!state#set_units units) - #set_last (token_to_region token)) - #slide_token token; + #set_last (token_to_region token)) + #slide_token token; style token (next_token scan) buffer; patch_buffer (token_to_region token)#byte_pos buffer; token in @@ -382,6 +395,7 @@ let open_token_stream ?line ?block ~scan | _ -> () in let instance = { read = read scan ~token_to_region ~style; - input; buffer; get_win; get_pos; get_last; get_file; close} + input; buffer; close; + get_win; get_pos; get_last; get_file; get_comments} in Ok instance | Error _ as e -> e diff --git a/src/passes/01-parser/shared/LexerLib.mli b/src/passes/01-parser/shared/LexerLib.mli index 95f580f2a..bddc1b2e7 100644 --- a/src/passes/01-parser/shared/LexerLib.mli +++ b/src/passes/01-parser/shared/LexerLib.mli @@ -39,7 +39,7 @@ type thread = < set_opening : Region.t -> thread > -val mk_thread : Region.t -> lexeme -> thread +val mk_thread : Region.t -> thread (* STATE *) @@ -108,15 +108,16 @@ type 'token window = | Two of 'token * 'token type 'token state = < - units : (Markup.t list * 'token) FQueue.t; - markup : Markup.t list; - window : 'token window; - last : Region.t; - pos : Pos.t; - decoder : Uutf.decoder; - supply : Bytes.t -> int -> int -> unit; - block : EvalOpt.block_comment option; - line : EvalOpt.line_comment option; + units : (Markup.t list * 'token) FQueue.t; + markup : Markup.t list; + comments : Markup.comment FQueue.t; + window : 'token window; + last : Region.t; + pos : Pos.t; + decoder : Uutf.decoder; + supply : Bytes.t -> int -> int -> unit; + block : EvalOpt.block_comment option; + line : EvalOpt.line_comment option; enqueue : 'token -> 'token state; set_units : (Markup.t list * 'token) FQueue.t -> 'token state; @@ -133,6 +134,7 @@ type 'token state = < push_tabs : Lexing.lexbuf -> 'token state; push_bom : Lexing.lexbuf -> 'token state; push_markup : Markup.t -> 'token state; + push_comment : Markup.comment -> 'token state > (* LEXER INSTANCE *) @@ -178,11 +180,12 @@ type 'token instance = { input : input; read : log:('token logger) -> Lexing.lexbuf -> 'token; buffer : Lexing.lexbuf; + close : unit -> unit; get_win : unit -> 'token window; get_pos : unit -> Pos.t; get_last : unit -> Region.t; get_file : unit -> file_path; - close : unit -> unit + get_comments : unit -> Markup.comment FQueue.t } type open_err = File_opening of string diff --git a/src/passes/01-parser/shared/Markup.ml b/src/passes/01-parser/shared/Markup.ml index 3b94830cb..29e2fad00 100644 --- a/src/passes/01-parser/shared/Markup.ml +++ b/src/passes/01-parser/shared/Markup.ml @@ -42,3 +42,9 @@ let to_string markup ?(offsets=true) mode = region, sprintf "BOM \"%s\"" (String.escaped value) in let reg_str = region#compact ~offsets mode in sprintf "%s: %s" reg_str val_str + +(* Comments *) + +type comment = + Line of lexeme Region.reg +| Block of lexeme Region.reg diff --git a/src/passes/01-parser/shared/Markup.mli b/src/passes/01-parser/shared/Markup.mli index 6b31c0647..7a11eaee3 100644 --- a/src/passes/01-parser/shared/Markup.mli +++ b/src/passes/01-parser/shared/Markup.mli @@ -1,11 +1,12 @@ -(** This module defines the sorts of markup recognised by the LIGO +(* This module defines the sorts of markup recognised by the LIGO lexer *) module Region = Simple_utils.Region -(** A lexeme is piece of concrete syntax belonging to a token. In +(* A lexeme is piece of concrete syntax belonging to a token. In algebraic terms, a token is also a piece of abstract lexical syntax. Lexical units emcompass both markup and lexemes. *) + type lexeme = string type t = @@ -18,7 +19,7 @@ type t = type markup = t -(** Pretty-printing of markup +(* Pretty-printing of markup The difference between [to_lexeme] and [to_string] is that the former builds the corresponding concrete syntax (the lexeme), @@ -31,3 +32,9 @@ type markup = t val to_lexeme : t -> lexeme val to_string : t -> ?offsets:bool -> [`Byte | `Point] -> string + +(* Comments *) + +type comment = + Line of lexeme Region.reg +| Block of lexeme Region.reg diff --git a/src/passes/02-concrete_to_imperative/pascaligo.ml b/src/passes/02-concrete_to_imperative/pascaligo.ml index 9bce219b9..6369748e9 100644 --- a/src/passes/02-concrete_to_imperative/pascaligo.ml +++ b/src/passes/02-concrete_to_imperative/pascaligo.ml @@ -569,7 +569,6 @@ let rec compile_instruction : ?next: AST.expression -> CST.instruction -> _ resu let%bind (_, var, path) = compile_path mlu.path in let%bind index = compile_expression @@ mlu.index.value.inside in ok @@ (var, path @ [Access_map index]) - in match instruction with Cond c -> @@ -725,8 +724,8 @@ and compile_block : ?next:AST.expression -> CST.block CST.reg -> _ result = fun let (block', _loc) = r_split block in let statements = npseq_to_list block'.statements in let aux (next,attr) statement = - let%bind (statement, attr) = compile_statement ?next attr statement in - return (statement,attr) + let%bind (statement, attr) = compile_statement ?next attr statement + in return (statement,attr) in let%bind (block', _) = bind_fold_right_list aux (next,None) statements in match block' with From b07c57c159eafd2ca522f596460f96c999244dbb Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Wed, 24 Jun 2020 11:19:56 +0200 Subject: [PATCH 4/5] Fixed variable. --- src/passes/01-parser/pascaligo/Pretty.ml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/passes/01-parser/pascaligo/Pretty.ml b/src/passes/01-parser/pascaligo/Pretty.ml index 9718d6d12..3ddce9746 100644 --- a/src/passes/01-parser/pascaligo/Pretty.ml +++ b/src/passes/01-parser/pascaligo/Pretty.ml @@ -215,7 +215,7 @@ and pp_var_decl {value; _} = let {name; var_type; init; _} = value in let start = string ("var " ^ name.value) in let start = - match const_type with + match var_type with None -> start | Some (_, e) -> group (start ^/^ nest 2 (string ": " ^^ pp_type_expr e)) in From d1b738855058e44689199cccb773df5154bd4fac Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Tue, 30 Jun 2020 14:34:15 +0200 Subject: [PATCH 5/5] Refactoring of the dune files, minimised dependencies. --- src/passes/01-parsing/cameligo.ml | 5 +- src/passes/01-parsing/cameligo/.links | 15 +- src/passes/01-parsing/cameligo/LexToken.mli | 7 +- src/passes/01-parsing/cameligo/LexToken.mll | 16 +- src/passes/01-parsing/cameligo/LexerMain.ml | 10 +- src/passes/01-parsing/cameligo/ParToken.mly | 1 + src/passes/01-parsing/cameligo/Parser.mly | 4 +- src/passes/01-parsing/cameligo/ParserMain.ml | 29 ++- src/passes/01-parsing/cameligo/Pretty.ml | 2 +- src/passes/01-parsing/cameligo/README.txt | 2 + src/passes/01-parsing/cameligo/Scoping.ml | 6 +- src/passes/01-parsing/cameligo/Stubs/Cst.ml | 1 + .../01-parsing/cameligo/Stubs/Cst_cameligo.ml | 1 + .../cameligo/Stubs/Lexer_cameligo.ml | 1 + .../01-parsing/cameligo/Stubs/Lexer_shared.ml | 6 + .../cameligo/Stubs/Parser_cameligo.ml | 2 + .../cameligo/Stubs/Parser_shared.ml | 1 + src/passes/01-parsing/cameligo/cameligo.ml | 3 - src/passes/01-parsing/cameligo/dune | 192 +++++++++-------- src/passes/01-parsing/parser.ml | 2 +- src/passes/01-parsing/pascaligo.ml | 7 +- src/passes/01-parsing/pascaligo/.links | 15 +- src/passes/01-parsing/pascaligo/LexToken.mli | 7 +- src/passes/01-parsing/pascaligo/LexToken.mll | 13 +- src/passes/01-parsing/pascaligo/LexerMain.ml | 14 +- src/passes/01-parsing/pascaligo/ParToken.mly | 1 + src/passes/01-parsing/pascaligo/Parser.mly | 9 +- src/passes/01-parsing/pascaligo/ParserMain.ml | 29 ++- src/passes/01-parsing/pascaligo/Scoping.ml | 10 +- src/passes/01-parsing/pascaligo/Scoping.mli | 6 +- src/passes/01-parsing/pascaligo/Stubs/Cst.ml | 1 + .../pascaligo/Stubs/Cst_pascaligo.ml | 1 + .../pascaligo/Stubs/Lexer_pascaligo.ml | 1 + .../pascaligo/Stubs/Lexer_shared.ml | 6 + .../pascaligo/Stubs/Parser_pascaligo.ml | 2 + .../pascaligo/Stubs/Parser_shared.ml | 1 + src/passes/01-parsing/pascaligo/dune | 188 ++++++++-------- src/passes/01-parsing/pascaligo/pascaligo.ml | 3 - src/passes/01-parsing/reasonligo.ml | 5 +- src/passes/01-parsing/reasonligo/.links | 19 +- src/passes/01-parsing/reasonligo/LexToken.mli | 7 +- src/passes/01-parsing/reasonligo/LexToken.mll | 16 +- src/passes/01-parsing/reasonligo/LexerMain.ml | 10 +- src/passes/01-parsing/reasonligo/ParToken.mly | 1 + .../01-parsing/reasonligo/ParserMain.ml | 29 ++- src/passes/01-parsing/reasonligo/Scoping.ml | 1 + src/passes/01-parsing/reasonligo/Scoping.mli | 1 + src/passes/01-parsing/reasonligo/Stubs/Cst.ml | 1 + .../reasonligo/Stubs/Cst_cameligo.ml | 1 + .../reasonligo/Stubs/Lexer_reasonligo.ml | 1 + .../reasonligo/Stubs/Lexer_shared.ml | 6 + .../reasonligo/Stubs/Parser_cameligo.ml | 1 - .../reasonligo/Stubs/Parser_reasonligo.ml | 2 + .../reasonligo/Stubs/Parser_shared.ml | 1 + .../01-parsing/reasonligo/SyntaxError.ml | 2 +- src/passes/01-parsing/reasonligo/dune | 200 ++++++++++-------- .../01-parsing/reasonligo/reasonligo.ml | 4 - src/passes/01-parsing/shared/LexerLib.ml | 5 +- src/passes/01-parsing/shared/LexerLib.mli | 3 +- .../01-parsing/shared/{ => Misc}/Memo.ml | 0 .../01-parsing/shared/{ => Misc}/Memo.mli | 0 .../shared/{Doc => Misc}/shared.txt | 0 src/passes/01-parsing/shared/ParserAPI.ml | 10 +- src/passes/01-parsing/shared/ParserAPI.mli | 9 +- src/passes/01-parsing/shared/ParserUnit.ml | 14 +- src/passes/01-parsing/shared/ParserUnit.mli | 8 +- src/passes/01-parsing/shared/dune | 56 +++-- .../03-tree_abstraction/pascaligo/errors.ml | 2 +- src/stages/1-cst/cameligo/CST.ml | 13 +- src/stages/1-cst/cameligo/cameligo.ml | 1 - src/stages/1-cst/cameligo/dune | 13 +- src/stages/1-cst/dune | 10 +- src/stages/1-cst/pascaligo/CST.ml | 33 +-- src/stages/1-cst/pascaligo/dune | 13 +- src/stages/1-cst/pascaligo/pascaligo.ml | 1 - vendors/Preprocessor/dune | 14 +- .../ligo-utils/simple-utils}/FQueue.ml | 0 .../ligo-utils/simple-utils}/FQueue.mli | 0 .../ligo-utils/simple-utils}/Utils.ml | 0 .../ligo-utils/simple-utils}/Utils.mli | 0 vendors/ligo-utils/simple-utils/dune | 7 +- .../ligo-utils/simple-utils/simple-utils.opam | 28 ++- .../ligo-utils/simple-utils/simple_utils.ml | 8 +- 83 files changed, 717 insertions(+), 459 deletions(-) create mode 100644 src/passes/01-parsing/cameligo/README.txt create mode 100644 src/passes/01-parsing/cameligo/Stubs/Cst.ml create mode 100644 src/passes/01-parsing/cameligo/Stubs/Cst_cameligo.ml create mode 100644 src/passes/01-parsing/cameligo/Stubs/Lexer_cameligo.ml create mode 100644 src/passes/01-parsing/cameligo/Stubs/Lexer_shared.ml create mode 100644 src/passes/01-parsing/cameligo/Stubs/Parser_cameligo.ml create mode 100644 src/passes/01-parsing/cameligo/Stubs/Parser_shared.ml delete mode 100644 src/passes/01-parsing/cameligo/cameligo.ml create mode 100644 src/passes/01-parsing/pascaligo/Stubs/Cst.ml create mode 100644 src/passes/01-parsing/pascaligo/Stubs/Cst_pascaligo.ml create mode 100644 src/passes/01-parsing/pascaligo/Stubs/Lexer_pascaligo.ml create mode 100644 src/passes/01-parsing/pascaligo/Stubs/Lexer_shared.ml create mode 100644 src/passes/01-parsing/pascaligo/Stubs/Parser_pascaligo.ml create mode 100644 src/passes/01-parsing/pascaligo/Stubs/Parser_shared.ml delete mode 100644 src/passes/01-parsing/pascaligo/pascaligo.ml create mode 120000 src/passes/01-parsing/reasonligo/Scoping.ml create mode 120000 src/passes/01-parsing/reasonligo/Scoping.mli create mode 100644 src/passes/01-parsing/reasonligo/Stubs/Cst.ml create mode 100644 src/passes/01-parsing/reasonligo/Stubs/Cst_cameligo.ml create mode 100644 src/passes/01-parsing/reasonligo/Stubs/Lexer_reasonligo.ml create mode 100644 src/passes/01-parsing/reasonligo/Stubs/Lexer_shared.ml delete mode 100644 src/passes/01-parsing/reasonligo/Stubs/Parser_cameligo.ml create mode 100644 src/passes/01-parsing/reasonligo/Stubs/Parser_reasonligo.ml create mode 100644 src/passes/01-parsing/reasonligo/Stubs/Parser_shared.ml delete mode 100644 src/passes/01-parsing/reasonligo/reasonligo.ml rename src/passes/01-parsing/shared/{ => Misc}/Memo.ml (100%) rename src/passes/01-parsing/shared/{ => Misc}/Memo.mli (100%) rename src/passes/01-parsing/shared/{Doc => Misc}/shared.txt (100%) delete mode 100644 src/stages/1-cst/cameligo/cameligo.ml delete mode 100644 src/stages/1-cst/pascaligo/pascaligo.ml rename {src/passes/01-parsing/shared => vendors/ligo-utils/simple-utils}/FQueue.ml (100%) rename {src/passes/01-parsing/shared => vendors/ligo-utils/simple-utils}/FQueue.mli (100%) rename {src/passes/01-parsing/shared => vendors/ligo-utils/simple-utils}/Utils.ml (100%) rename {src/passes/01-parsing/shared => vendors/ligo-utils/simple-utils}/Utils.mli (100%) diff --git a/src/passes/01-parsing/cameligo.ml b/src/passes/01-parsing/cameligo.ml index 69af2bd6e..5bc39fcca 100644 --- a/src/passes/01-parsing/cameligo.ml +++ b/src/passes/01-parsing/cameligo.ml @@ -1,11 +1,12 @@ module CST = Cst.Cameligo -module LexToken = Parser_cameligo.LexToken -module Lexer = Lexer.Make(LexToken) +module LexToken = Lexer_cameligo.LexToken +module Lexer = Lexer_shared.Lexer.Make (LexToken) module Scoping = Parser_cameligo.Scoping module Region = Simple_utils.Region module ParErr = Parser_cameligo.ParErr module SSet = Set.Make (String) module Pretty = Parser_cameligo.Pretty +module EvalOpt = Lexer_shared.EvalOpt (* Mock IOs TODO: Fill them with CLI options *) diff --git a/src/passes/01-parsing/cameligo/.links b/src/passes/01-parsing/cameligo/.links index 8dcc06146..c4aeb0081 100644 --- a/src/passes/01-parsing/cameligo/.links +++ b/src/passes/01-parsing/cameligo/.links @@ -5,17 +5,24 @@ $HOME/git/OCaml-build/Makefile ../shared/LexerLib.ml ../shared/EvalOpt.ml ../shared/EvalOpt.mli -../shared/FQueue.ml -../shared/FQueue.mli ../shared/LexerLog.mli ../shared/LexerLog.ml ../shared/Markup.ml ../shared/Markup.mli -../shared/Utils.mli -../shared/Utils.ml ../shared/ParserAPI.mli ../shared/ParserAPI.ml ../shared/LexerUnit.mli ../shared/LexerUnit.ml ../shared/ParserUnit.mli ../shared/ParserUnit.ml + +./Stubs/Lexer_shared.ml +./Stubs/Lexer_cameligo.ml +./Stubs/Parser_shared.ml +./Stubs/Parser_cameligo.ml +./Stubs/Cst.ml +./Stubs/Cst_cameligo.ml + +$HOME/git/ligo/src/stages/1-cst/cameligo/CST.ml +$HOME/git/ligo/src/stages/1-cst/cameligo/ParserLog.mli +$HOME/git/ligo/src/stages/1-cst/cameligo/ParserLog.ml diff --git a/src/passes/01-parsing/cameligo/LexToken.mli b/src/passes/01-parsing/cameligo/LexToken.mli index b05b94318..0746a301e 100644 --- a/src/passes/01-parsing/cameligo/LexToken.mli +++ b/src/passes/01-parsing/cameligo/LexToken.mli @@ -21,13 +21,16 @@ aliased to [token]. *) +(* Dependencies *) + module Region = Simple_utils.Region module Pos = Simple_utils.Pos - -type lexeme = string +module Markup = Lexer_shared.Markup (* TOKENS *) +type lexeme = string + type t = (* Identifiers, labels, numbers and strings *) diff --git a/src/passes/01-parsing/cameligo/LexToken.mll b/src/passes/01-parsing/cameligo/LexToken.mll index 1c0bc389a..9c4378c82 100644 --- a/src/passes/01-parsing/cameligo/LexToken.mll +++ b/src/passes/01-parsing/cameligo/LexToken.mll @@ -1,17 +1,19 @@ +(* ocamlex specification for CameLIGO *) { - (* START HEADER *) +(* START HEADER *) -type lexeme = string - -let sprintf = Printf.sprintf +(* Dependencies *) module Region = Simple_utils.Region module Pos = Simple_utils.Pos -module SMap = Utils.String.Map -module SSet = Utils.String.Set +module Markup = Lexer_shared.Markup +module SMap = Map.Make (String) +module SSet = Set.Make (String) (* TOKENS *) +type lexeme = string + type t = (* Identifiers, labels, numbers and strings *) @@ -107,6 +109,8 @@ type t = (* Projections *) +let sprintf = Printf.sprintf + type token = t let proj_token = function diff --git a/src/passes/01-parsing/cameligo/LexerMain.ml b/src/passes/01-parsing/cameligo/LexerMain.ml index 498098035..071f6a07a 100644 --- a/src/passes/01-parsing/cameligo/LexerMain.ml +++ b/src/passes/01-parsing/cameligo/LexerMain.ml @@ -1,6 +1,14 @@ (* Driver for the CameLIGO lexer *) -module Region = Simple_utils.Region +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module Lexer = Lexer_shared.Lexer +module LexerUnit = Lexer_shared.LexerUnit +module LexToken = Lexer_cameligo.LexToken + +(* Input/Output *) module IO = struct diff --git a/src/passes/01-parsing/cameligo/ParToken.mly b/src/passes/01-parsing/cameligo/ParToken.mly index 093968ee4..86ad6fb1e 100644 --- a/src/passes/01-parsing/cameligo/ParToken.mly +++ b/src/passes/01-parsing/cameligo/ParToken.mly @@ -1,4 +1,5 @@ %{ +module LexToken = Lexer_cameligo.LexToken %} (* Tokens (mirroring thise defined in module LexToken) *) diff --git a/src/passes/01-parsing/cameligo/Parser.mly b/src/passes/01-parsing/cameligo/Parser.mly index de0251a89..28b8f43a3 100644 --- a/src/passes/01-parsing/cameligo/Parser.mly +++ b/src/passes/01-parsing/cameligo/Parser.mly @@ -15,8 +15,8 @@ open CST (* Entry points *) %start contract interactive_expr -%type contract -%type interactive_expr +%type contract +%type interactive_expr %% diff --git a/src/passes/01-parsing/cameligo/ParserMain.ml b/src/passes/01-parsing/cameligo/ParserMain.ml index 0ccb71a01..0f2e547c1 100644 --- a/src/passes/01-parsing/cameligo/ParserMain.ml +++ b/src/passes/01-parsing/cameligo/ParserMain.ml @@ -1,7 +1,16 @@ (* Driver for the CameLIGO parser *) -module Region = Simple_utils.Region -module SSet = Set.Make (String) +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module LexToken = Lexer_cameligo.LexToken +module CST = Cst.Cameligo +module SSet = Set.Make (String) +module ParserUnit = Parser_shared.ParserUnit +module Pretty = Parser_cameligo.Pretty + +(* Input/Output *) module IO = struct @@ -55,22 +64,22 @@ module SubIO = module Parser = struct - type ast = AST.t - type expr = AST.expr - include Parser + type ast = CST.t + type expr = CST.expr + include Parser_cameligo.Parser end module ParserLog = struct - type ast = AST.t - type expr = AST.expr - include ParserLog + type ast = CST.t + type expr = CST.expr + include Cst_cameligo.ParserLog end -module Lexer = Lexer.Make (LexToken) +module Lexer = Lexer_shared.Lexer.Make (LexToken) module Unit = - ParserUnit.Make (Lexer)(AST)(Parser)(Parser_msg)(ParserLog)(SubIO) + ParserUnit.Make (Lexer)(CST)(Parser)(Parser_msg)(ParserLog)(SubIO) (* Main *) diff --git a/src/passes/01-parsing/cameligo/Pretty.ml b/src/passes/01-parsing/cameligo/Pretty.ml index 1eec2dc69..2129fe5fe 100644 --- a/src/passes/01-parsing/cameligo/Pretty.ml +++ b/src/passes/01-parsing/cameligo/Pretty.ml @@ -1,6 +1,6 @@ [@@@warning "-42"] -module CST=Cst.Cameligo +module CST = Cst.Cameligo open CST module Region = Simple_utils.Region open! Region diff --git a/src/passes/01-parsing/cameligo/README.txt b/src/passes/01-parsing/cameligo/README.txt new file mode 100644 index 000000000..4b332db99 --- /dev/null +++ b/src/passes/01-parsing/cameligo/README.txt @@ -0,0 +1,2 @@ +Note: The files Scoping.mli and Scoping.ml are the destination of +symbolic links from ../reasonligo. diff --git a/src/passes/01-parsing/cameligo/Scoping.ml b/src/passes/01-parsing/cameligo/Scoping.ml index 5b9820132..a409a8f80 100644 --- a/src/passes/01-parsing/cameligo/Scoping.ml +++ b/src/passes/01-parsing/cameligo/Scoping.ml @@ -1,7 +1,9 @@ [@@@warning "-42"] +(* Dependencies *) + module Region = Simple_utils.Region -module CST = Cst.Cameligo +module CST = Cst.Cameligo type t = Reserved_name of CST.variable @@ -17,7 +19,7 @@ open Region (* Useful modules *) -module SSet = Utils.String.Set +module SSet = Set.Make (String) module Ord = struct diff --git a/src/passes/01-parsing/cameligo/Stubs/Cst.ml b/src/passes/01-parsing/cameligo/Stubs/Cst.ml new file mode 100644 index 000000000..fcd70f2bb --- /dev/null +++ b/src/passes/01-parsing/cameligo/Stubs/Cst.ml @@ -0,0 +1 @@ +module Cameligo = CST diff --git a/src/passes/01-parsing/cameligo/Stubs/Cst_cameligo.ml b/src/passes/01-parsing/cameligo/Stubs/Cst_cameligo.ml new file mode 100644 index 000000000..011ad3f5e --- /dev/null +++ b/src/passes/01-parsing/cameligo/Stubs/Cst_cameligo.ml @@ -0,0 +1 @@ +module ParserLog = ParserLog diff --git a/src/passes/01-parsing/cameligo/Stubs/Lexer_cameligo.ml b/src/passes/01-parsing/cameligo/Stubs/Lexer_cameligo.ml new file mode 100644 index 000000000..0b6aa4f73 --- /dev/null +++ b/src/passes/01-parsing/cameligo/Stubs/Lexer_cameligo.ml @@ -0,0 +1 @@ +module LexToken = LexToken diff --git a/src/passes/01-parsing/cameligo/Stubs/Lexer_shared.ml b/src/passes/01-parsing/cameligo/Stubs/Lexer_shared.ml new file mode 100644 index 000000000..71d9cc522 --- /dev/null +++ b/src/passes/01-parsing/cameligo/Stubs/Lexer_shared.ml @@ -0,0 +1,6 @@ +module EvalOpt = EvalOpt +module Markup = Markup +module Lexer = Lexer +module LexerUnit = LexerUnit +module LexerLog = LexerLog +module LexerLib = LexerLib diff --git a/src/passes/01-parsing/cameligo/Stubs/Parser_cameligo.ml b/src/passes/01-parsing/cameligo/Stubs/Parser_cameligo.ml new file mode 100644 index 000000000..9479f6e5f --- /dev/null +++ b/src/passes/01-parsing/cameligo/Stubs/Parser_cameligo.ml @@ -0,0 +1,2 @@ +module Pretty = Pretty +module Parser = Parser diff --git a/src/passes/01-parsing/cameligo/Stubs/Parser_shared.ml b/src/passes/01-parsing/cameligo/Stubs/Parser_shared.ml new file mode 100644 index 000000000..f1e238ebf --- /dev/null +++ b/src/passes/01-parsing/cameligo/Stubs/Parser_shared.ml @@ -0,0 +1 @@ +module ParserUnit = ParserUnit diff --git a/src/passes/01-parsing/cameligo/cameligo.ml b/src/passes/01-parsing/cameligo/cameligo.ml deleted file mode 100644 index d85ec4700..000000000 --- a/src/passes/01-parsing/cameligo/cameligo.ml +++ /dev/null @@ -1,3 +0,0 @@ -module Parser = Parser -module Lexer = Lexer -module LexToken = LexToken diff --git a/src/passes/01-parsing/cameligo/dune b/src/passes/01-parsing/cameligo/dune index 197c92f69..552860c01 100644 --- a/src/passes/01-parsing/cameligo/dune +++ b/src/passes/01-parsing/cameligo/dune @@ -1,13 +1,48 @@ +;; -------------------------------------------------------------------- +;; LEXING + ;; Build of the lexer (ocamllex LexToken) +;; Build of the lexer as a library + +(library + (name lexer_cameligo) + (public_name ligo.lexer.cameligo) + (modules LexToken) + (libraries + ;; Ligo + lexer_shared + ;; Third party + hex) + (preprocess + (pps bisect_ppx --conditional))) + +;; Build of a standalone lexer + +(executable + (name LexerMain) + (libraries + ;; Ligo + lexer_shared + lexer_cameligo + ;; Third party + hex) + (modules LexerMain) + (preprocess + (pps bisect_ppx --conditional))) + +;; -------------------------------------------------------------------- +;; PARSING + ;; Build of the parser (menhir (merge_into Parser) (modules ParToken Parser) - (flags -la 1 --table --strict --explain --external-tokens LexToken)) + (flags -la 1 --table --strict --explain + --external-tokens Lexer_cameligo.LexToken)) ;; Build of the parser as a library @@ -15,50 +50,47 @@ (name parser_cameligo) (public_name ligo.parser.cameligo) (modules - Scoping cameligo Parser LexToken ParErr Pretty) + Scoping Parser ParErr Pretty) (libraries - pprint - terminal_size - menhirLib - parser_shared - str - simple-utils - tezos-utils - cst - ) + ;; Ligo + lexer_cameligo + parser_shared + cst + ;; Vendors + simple-utils + ;; Third party + pprint + terminal_size + menhirLib + hex) (preprocess (pps bisect_ppx --conditional)) - (flags (:standard -open Parser_shared -open Simple_utils))) + (flags (:standard -open Cst_cameligo))) ;; For CST in Parser.mli -;; Build of the unlexer (for covering the error states of the LR -;; automaton) +;; Build of the unlexer (for covering the +;; error states of the LR automaton) (executable (name Unlexer) (libraries str) + (modules Unlexer) (preprocess - (pps bisect_ppx --conditional)) - (modules Unlexer)) - -;; Local build of a standalone lexer - -(executable - (name LexerMain) - (libraries parser_cameligo) - (modules LexerMain) - (preprocess - (pps bisect_ppx --conditional)) - (flags (:standard -open Parser_shared -open Parser_cameligo))) + (pps bisect_ppx --conditional))) ;; Local build of a standalone parser (executable (name ParserMain) - (libraries parser_cameligo) + (libraries + ;; Ligo + parser_shared + parser_cameligo + cst + ;; Third party + hex) (modules ParserMain Parser_msg) (preprocess - (pps bisect_ppx --conditional)) - (flags (:standard -open Simple_utils -open Parser_shared -open Parser_cameligo))) + (pps bisect_ppx --conditional))) ;; Build of the covering of error states in the LR automaton @@ -85,7 +117,14 @@ (rule (targets all.mligo) (deps (:script_cover ../../../../vendors/ligo-utils/simple-utils/cover.sh) Parser.mly LexToken.mli ParToken.mly Parser.msg Unlexer.exe) - (action (run %{script_cover} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly --ext=mligo --unlexer=./Unlexer.exe --messages=Parser.msg --dir=. --concatenate Parser.mly ))) + (action (run %{script_cover} + --lex-tokens=LexToken.mli + --par-tokens=ParToken.mly + --ext=mligo + --unlexer=./Unlexer.exe + --messages=Parser.msg + --dir=. + --concatenate Parser.mly))) ;; Error messages @@ -95,60 +134,45 @@ (deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli) (action (with-stdout-to %{targets} - (run - menhir - --unused-tokens - --update-errors error.messages.checked-in - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - ) - )) -) + (run menhir + --unused-tokens + --update-errors error.messages.checked-in + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly)))) (rule (target error.messages.new) (mode (promote (until-clean) (only *))) (action (with-stdout-to %{target} - (run - menhir - --unused-tokens - --list-errors - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - ) - ) - ) -) + (run menhir + --unused-tokens + --list-errors + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly)))) (alias (name runtest) (deps error.messages error.messages.new) (action - (run - menhir - --unused-tokens - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - --compare-errors error.messages.new - --compare-errors error.messages - ) - ) - ) - - + (run menhir + --unused-tokens + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly + --compare-errors error.messages.new + --compare-errors error.messages))) (rule (targets ParErr.ml) @@ -156,16 +180,12 @@ (deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli) (action (with-stdout-to %{targets} - (run - menhir - --unused-tokens - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - --compile-errors error.messages.checked-in - ) - )) -) + (run menhir + --unused-tokens + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly + --compile-errors error.messages.checked-in)))) diff --git a/src/passes/01-parsing/parser.ml b/src/passes/01-parsing/parser.ml index ba2c27cb6..5d66daa7d 100644 --- a/src/passes/01-parsing/parser.ml +++ b/src/passes/01-parsing/parser.ml @@ -2,4 +2,4 @@ module Pascaligo = Pascaligo module Cameligo = Cameligo module Reasonligo = Reasonligo module Errors = Errors -module Formatter = Formatter \ No newline at end of file +module Formatter = Formatter diff --git a/src/passes/01-parsing/pascaligo.ml b/src/passes/01-parsing/pascaligo.ml index 2f79b07e2..dc9f9f235 100644 --- a/src/passes/01-parsing/pascaligo.ml +++ b/src/passes/01-parsing/pascaligo.ml @@ -1,6 +1,9 @@ +(* Dependencies *) + +module EvalOpt = Lexer_shared.EvalOpt module CST = Cst.Pascaligo -module LexToken = Parser_pascaligo.LexToken -module Lexer = Lexer.Make(LexToken) +module LexToken = Lexer_pascaligo.LexToken +module Lexer = Lexer_shared.Lexer.Make (LexToken) module Scoping = Parser_pascaligo.Scoping module Region = Simple_utils.Region module ParErr = Parser_pascaligo.ParErr diff --git a/src/passes/01-parsing/pascaligo/.links b/src/passes/01-parsing/pascaligo/.links index aca47d8ff..ac3ad0e4c 100644 --- a/src/passes/01-parsing/pascaligo/.links +++ b/src/passes/01-parsing/pascaligo/.links @@ -6,14 +6,10 @@ $HOME/git/OCaml-build/Makefile ../shared/LexerLib.ml ../shared/EvalOpt.ml ../shared/EvalOpt.mli -../shared/FQueue.ml -../shared/FQueue.mli ../shared/LexerLog.mli ../shared/LexerLog.ml ../shared/Markup.ml ../shared/Markup.mli -../shared/Utils.mli -../shared/Utils.ml ../shared/ParserAPI.mli ../shared/ParserAPI.ml ../shared/LexerUnit.mli @@ -21,3 +17,14 @@ $HOME/git/OCaml-build/Makefile ../shared/ParserUnit.mli ../shared/ParserUnit.ml ../shared/LexerLib.ml + +./Stubs/Lexer_shared.ml +./Stubs/Lexer_pascaligo.ml +./Stubs/Parser_shared.ml +./Stubs/Parser_pascaligo.ml +./Stubs/Cst.ml +./Stubs/Cst_pascaligo.ml + +$HOME/git/ligo/src/stages/1-cst/pascaligo/CST.ml +$HOME/git/ligo/src/stages/1-cst/pascaligo/ParserLog.mli +$HOME/git/ligo/src/stages/1-cst/pascaligo/ParserLog.ml diff --git a/src/passes/01-parsing/pascaligo/LexToken.mli b/src/passes/01-parsing/pascaligo/LexToken.mli index 6c445e4b9..505c46425 100644 --- a/src/passes/01-parsing/pascaligo/LexToken.mli +++ b/src/passes/01-parsing/pascaligo/LexToken.mli @@ -21,13 +21,16 @@ aliased to [token]. *) +(* Dependencies *) + module Region = Simple_utils.Region module Pos = Simple_utils.Pos - -type lexeme = string +module Markup = Lexer_shared.Markup (* TOKENS *) +type lexeme = string + type attribute = { header : string; string : lexeme Region.reg diff --git a/src/passes/01-parsing/pascaligo/LexToken.mll b/src/passes/01-parsing/pascaligo/LexToken.mll index e037f252e..1c68e21f7 100644 --- a/src/passes/01-parsing/pascaligo/LexToken.mll +++ b/src/passes/01-parsing/pascaligo/LexToken.mll @@ -1,21 +1,20 @@ -(* Lexer specification for LIGO, to be processed by [ocamllex] *) +(* ocamlex specification for PascaLIGO *) { (* START HEADER *) -(* Shorthands *) +(* Dependencies *) module Region = Simple_utils.Region module Pos = Simple_utils.Pos +module Markup = Lexer_shared.Markup module SMap = Map.Make (String) module SSet = Set.Make (String) -type lexeme = string - -let sprintf = Printf.sprintf - (* TOKENS *) +type lexeme = string + type attribute = { header : string; string : lexeme Region.reg @@ -117,6 +116,8 @@ type t = (* Projections *) +let sprintf = Printf.sprintf + type token = t let proj_token = function diff --git a/src/passes/01-parsing/pascaligo/LexerMain.ml b/src/passes/01-parsing/pascaligo/LexerMain.ml index a497df466..1365531ba 100644 --- a/src/passes/01-parsing/pascaligo/LexerMain.ml +++ b/src/passes/01-parsing/pascaligo/LexerMain.ml @@ -1,6 +1,14 @@ (* Driver for the PascaLIGO lexer *) -module Region = Simple_utils.Region +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module Lexer = Lexer_shared.Lexer +module LexerUnit = Lexer_shared.LexerUnit +module LexToken = Lexer_pascaligo.LexToken + +(* Input/Output *) module IO = struct @@ -10,8 +18,12 @@ module IO = in read ~block ~line:"//" ".ligo" end +(* Instantiating the standalone lexer *) + module M = LexerUnit.Make (IO) (Lexer.Make (LexToken)) +(* Tracing all tokens in the source *) + let () = match M.trace () with Stdlib.Ok () -> () diff --git a/src/passes/01-parsing/pascaligo/ParToken.mly b/src/passes/01-parsing/pascaligo/ParToken.mly index 2ed734bb7..cbd994c45 100644 --- a/src/passes/01-parsing/pascaligo/ParToken.mly +++ b/src/passes/01-parsing/pascaligo/ParToken.mly @@ -1,4 +1,5 @@ %{ +module LexToken = Lexer_pascaligo.LexToken %} (* Tokens (mirroring thise defined in module LexToken) *) diff --git a/src/passes/01-parsing/pascaligo/Parser.mly b/src/passes/01-parsing/pascaligo/Parser.mly index 37c172b4f..c0cfeff6b 100644 --- a/src/passes/01-parsing/pascaligo/Parser.mly +++ b/src/passes/01-parsing/pascaligo/Parser.mly @@ -1,10 +1,13 @@ +(* Menhir specification of the parsing of PascaLIGO *) %{ (* START HEADER *) [@@@warning "-42"] +(* Dependencies *) + open Simple_utils.Region -module CST = Cst.Pascaligo +module CST = Cst.Pascaligo open CST (* END HEADER *) @@ -15,8 +18,8 @@ open CST (* Entry points *) %start contract interactive_expr -%type contract -%type interactive_expr +%type contract +%type interactive_expr %% diff --git a/src/passes/01-parsing/pascaligo/ParserMain.ml b/src/passes/01-parsing/pascaligo/ParserMain.ml index 6158dc5da..8a91d8c42 100644 --- a/src/passes/01-parsing/pascaligo/ParserMain.ml +++ b/src/passes/01-parsing/pascaligo/ParserMain.ml @@ -1,7 +1,16 @@ (* Driver for the PascaLIGO parser *) -module Region = Simple_utils.Region -module SSet = Set.Make (String) +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module LexToken = Lexer_pascaligo.LexToken +module CST = Cst.Pascaligo +module SSet = Set.Make (String) +module ParserUnit = Parser_shared.ParserUnit +module Pretty = Parser_pascaligo.Pretty + +(* Input/Output *) module IO = struct @@ -55,22 +64,22 @@ module SubIO = module Parser = struct - type ast = AST.t - type expr = AST.expr - include Parser + type ast = CST.t + type expr = CST.expr + include Parser_pascaligo.Parser end module ParserLog = struct - type ast = AST.t - type expr = AST.expr - include ParserLog + type ast = CST.t + type expr = CST.expr + include Cst_pascaligo.ParserLog end -module Lexer = Lexer.Make (LexToken) +module Lexer = Lexer_shared.Lexer.Make (LexToken) module Unit = - ParserUnit.Make (Lexer)(AST)(Parser)(Parser_msg)(ParserLog)(SubIO) + ParserUnit.Make (Lexer)(CST)(Parser)(Parser_msg)(ParserLog)(SubIO) (* Main *) diff --git a/src/passes/01-parsing/pascaligo/Scoping.ml b/src/passes/01-parsing/pascaligo/Scoping.ml index 300abbfc7..ad2224053 100644 --- a/src/passes/01-parsing/pascaligo/Scoping.ml +++ b/src/passes/01-parsing/pascaligo/Scoping.ml @@ -1,7 +1,13 @@ +(* This module exports checks on scoping, called from the parser. *) + [@@@warning "-42"] +(* Dependencies *) + module Region = Simple_utils.Region -module CST = Cst.Pascaligo +module CST = Cst.Pascaligo + +(* Errors *) type t = Reserved_name of CST.variable @@ -18,7 +24,7 @@ open Region (* Useful modules *) -module SSet = Utils.String.Set +module SSet = Set.Make (String) module Ord = struct diff --git a/src/passes/01-parsing/pascaligo/Scoping.mli b/src/passes/01-parsing/pascaligo/Scoping.mli index 7cf0f176e..2a38309c6 100644 --- a/src/passes/01-parsing/pascaligo/Scoping.mli +++ b/src/passes/01-parsing/pascaligo/Scoping.mli @@ -1,7 +1,11 @@ (* This module exports checks on scoping, called from the parser. *) +(* Dependencies *) + module Region = Simple_utils.Region -module CST = Cst.Pascaligo +module CST = Cst.Pascaligo + +(* Errors *) type t = Reserved_name of CST.variable diff --git a/src/passes/01-parsing/pascaligo/Stubs/Cst.ml b/src/passes/01-parsing/pascaligo/Stubs/Cst.ml new file mode 100644 index 000000000..23b6f9878 --- /dev/null +++ b/src/passes/01-parsing/pascaligo/Stubs/Cst.ml @@ -0,0 +1 @@ +module Pascaligo = CST diff --git a/src/passes/01-parsing/pascaligo/Stubs/Cst_pascaligo.ml b/src/passes/01-parsing/pascaligo/Stubs/Cst_pascaligo.ml new file mode 100644 index 000000000..011ad3f5e --- /dev/null +++ b/src/passes/01-parsing/pascaligo/Stubs/Cst_pascaligo.ml @@ -0,0 +1 @@ +module ParserLog = ParserLog diff --git a/src/passes/01-parsing/pascaligo/Stubs/Lexer_pascaligo.ml b/src/passes/01-parsing/pascaligo/Stubs/Lexer_pascaligo.ml new file mode 100644 index 000000000..0b6aa4f73 --- /dev/null +++ b/src/passes/01-parsing/pascaligo/Stubs/Lexer_pascaligo.ml @@ -0,0 +1 @@ +module LexToken = LexToken diff --git a/src/passes/01-parsing/pascaligo/Stubs/Lexer_shared.ml b/src/passes/01-parsing/pascaligo/Stubs/Lexer_shared.ml new file mode 100644 index 000000000..71d9cc522 --- /dev/null +++ b/src/passes/01-parsing/pascaligo/Stubs/Lexer_shared.ml @@ -0,0 +1,6 @@ +module EvalOpt = EvalOpt +module Markup = Markup +module Lexer = Lexer +module LexerUnit = LexerUnit +module LexerLog = LexerLog +module LexerLib = LexerLib diff --git a/src/passes/01-parsing/pascaligo/Stubs/Parser_pascaligo.ml b/src/passes/01-parsing/pascaligo/Stubs/Parser_pascaligo.ml new file mode 100644 index 000000000..9479f6e5f --- /dev/null +++ b/src/passes/01-parsing/pascaligo/Stubs/Parser_pascaligo.ml @@ -0,0 +1,2 @@ +module Pretty = Pretty +module Parser = Parser diff --git a/src/passes/01-parsing/pascaligo/Stubs/Parser_shared.ml b/src/passes/01-parsing/pascaligo/Stubs/Parser_shared.ml new file mode 100644 index 000000000..f1e238ebf --- /dev/null +++ b/src/passes/01-parsing/pascaligo/Stubs/Parser_shared.ml @@ -0,0 +1 @@ +module ParserUnit = ParserUnit diff --git a/src/passes/01-parsing/pascaligo/dune b/src/passes/01-parsing/pascaligo/dune index 4851e927c..5cc2a75d0 100644 --- a/src/passes/01-parsing/pascaligo/dune +++ b/src/passes/01-parsing/pascaligo/dune @@ -1,13 +1,48 @@ +;; -------------------------------------------------------------------- +;; LEXING + ;; Build of the lexer (ocamllex LexToken) +;; Build of the lexer as a library + +(library + (name lexer_pascaligo) + (public_name ligo.lexer.pascaligo) + (modules LexToken) + (libraries + ;; Ligo + lexer_shared + ;; Third party + hex) + (preprocess + (pps bisect_ppx --conditional))) + +;; Build of a standalone lexer + +(executable + (name LexerMain) + (libraries + ;; Ligo + lexer_shared + lexer_pascaligo + ;; Third party + hex) + (modules LexerMain) + (preprocess + (pps bisect_ppx --conditional))) + +;; -------------------------------------------------------------------- +;; PARSING + ;; Build of the parser (menhir (merge_into Parser) (modules ParToken Parser) - (flags -la 1 --table --strict --explain --external-tokens LexToken)) + (flags -la 1 --table --strict --explain + --external-tokens Lexer_pascaligo.LexToken)) ;; Build of the parser as a library @@ -15,19 +50,22 @@ (name parser_pascaligo) (public_name ligo.parser.pascaligo) (modules - Scoping pascaligo Parser LexToken ParErr Pretty) + Scoping Parser ParErr Pretty) (libraries - pprint - terminal_size - menhirLib - parser_shared - hex - Preprocessor - simple-utils - cst) + ;; Ligo + lexer_pascaligo + parser_shared + cst + ;; Vendors + simple-utils + ;; Third party + pprint + terminal_size + menhirLib + hex) (preprocess (pps bisect_ppx --conditional)) - (flags (:standard -open Parser_shared -open Simple_utils))) + (flags (:standard -open Cst_pascaligo))) ;; For CST in Parser.mli ;; Build of the unlexer (for covering the ;; error states of the LR automaton) @@ -35,30 +73,24 @@ (executable (name Unlexer) (libraries str) + (modules Unlexer) (preprocess - (pps bisect_ppx --conditional)) - (modules Unlexer)) - -;; Local build of a standalone lexer - -(executable - (name LexerMain) - (libraries - hex simple-utils tezos-utils parser_pascaligo) - (modules LexerMain) - (preprocess - (pps bisect_ppx --conditional)) - (flags (:standard -open Parser_shared -open Parser_pascaligo))) + (pps bisect_ppx --conditional))) ;; Local build of a standalone parser (executable (name ParserMain) - (libraries parser_pascaligo) - (modules ParserMain) + (libraries + ;; Ligo + parser_shared + parser_pascaligo + cst + ;; Third party + hex) + (modules ParserMain Parser_msg) (preprocess - (pps bisect_ppx --conditional)) - (flags (:standard -open Simple_utils -open Parser_shared -open Parser_pascaligo))) + (pps bisect_ppx --conditional))) ;; Build of the covering of error states in the LR automaton @@ -85,7 +117,14 @@ (rule (targets all.ligo) (deps (:script_cover ../../../../vendors/ligo-utils/simple-utils/cover.sh) Parser.mly LexToken.mli ParToken.mly Parser.msg Unlexer.exe) - (action (run %{script_cover} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly --ext=ligo --unlexer=./Unlexer.exe --messages=Parser.msg --dir=. --concatenate Parser.mly))) + (action (run %{script_cover} + --lex-tokens=LexToken.mli + --par-tokens=ParToken.mly + --ext=ligo + --unlexer=./Unlexer.exe + --messages=Parser.msg + --dir=. + --concatenate Parser.mly))) ;; Error messages @@ -95,58 +134,45 @@ (deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli) (action (with-stdout-to %{targets} - (run - menhir - --unused-tokens - --update-errors error.messages.checked-in - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - ) - )) -) + (run menhir + --unused-tokens + --update-errors error.messages.checked-in + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly)))) (rule (target error.messages.new) (mode (promote (until-clean) (only *))) (action (with-stdout-to %{target} - (run - menhir - --unused-tokens - --list-errors - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - ) - ) - ) -) + (run menhir + --unused-tokens + --list-errors + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly)))) (alias (name runtest) (deps error.messages error.messages.new) (action - (run - menhir - --unused-tokens - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - --compare-errors error.messages.new - --compare-errors error.messages - ) - ) - ) + (run menhir + --unused-tokens + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly + --compare-errors error.messages.new + --compare-errors error.messages))) (rule (targets ParErr.ml) @@ -154,16 +180,12 @@ (deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli) (action (with-stdout-to %{targets} - (run - menhir - --unused-tokens - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - --compile-errors error.messages.checked-in - ) - )) -) + (run menhir + --unused-tokens + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly + --compile-errors error.messages.checked-in)))) diff --git a/src/passes/01-parsing/pascaligo/pascaligo.ml b/src/passes/01-parsing/pascaligo/pascaligo.ml deleted file mode 100644 index 2421f543f..000000000 --- a/src/passes/01-parsing/pascaligo/pascaligo.ml +++ /dev/null @@ -1,3 +0,0 @@ -module Lexer = Lexer -module LexToken = LexToken -module Parser = Parser diff --git a/src/passes/01-parsing/reasonligo.ml b/src/passes/01-parsing/reasonligo.ml index 5bbed6c0c..cfd87761b 100644 --- a/src/passes/01-parsing/reasonligo.ml +++ b/src/passes/01-parsing/reasonligo.ml @@ -1,12 +1,13 @@ module CST = Cst.Cameligo -module LexToken = Parser_reasonligo.LexToken -module Lexer = Lexer.Make (LexToken) +module LexToken = Lexer_reasonligo.LexToken +module Lexer = Lexer_shared.Lexer.Make (LexToken) module Scoping = Parser_cameligo.Scoping module Region = Simple_utils.Region module ParErr = Parser_reasonligo.ParErr module SyntaxError = Parser_reasonligo.SyntaxError module SSet = Set.Make (String) module Pretty = Parser_reasonligo.Pretty +module EvalOpt = Lexer_shared.EvalOpt (* Mock IOs TODO: Fill them with CLI options *) diff --git a/src/passes/01-parsing/reasonligo/.links b/src/passes/01-parsing/reasonligo/.links index e85766c2b..d8ba17996 100644 --- a/src/passes/01-parsing/reasonligo/.links +++ b/src/passes/01-parsing/reasonligo/.links @@ -5,14 +5,10 @@ $HOME/git/OCaml-build/Makefile ../shared/LexerLib.ml ../shared/EvalOpt.ml ../shared/EvalOpt.mli -../shared/FQueue.ml -../shared/FQueue.mli ../shared/LexerLog.mli ../shared/LexerLog.ml ../shared/Markup.ml ../shared/Markup.mli -../shared/Utils.mli -../shared/Utils.ml ../shared/ParserAPI.mli ../shared/ParserAPI.ml ../shared/LexerUnit.mli @@ -20,10 +16,13 @@ $HOME/git/OCaml-build/Makefile ../shared/ParserUnit.mli ../shared/ParserUnit.ml -Stubs/Parser_cameligo.ml +./Stubs/Lexer_shared.ml +./Stubs/Lexer_reasonligo.ml +./Stubs/Parser_shared.ml +./Stubs/Parser_reasonligo.ml +./Stubs/Cst.ml +./Stubs/Cst_cameligo.ml -../cameligo/AST.ml -../cameligo/ParserLog.mli -../cameligo/ParserLog.ml -../cameligo/Scoping.mli -../cameligo/Scoping.ml +$HOME/git/ligo/src/stages/1-cst/cameligo/CST.ml +$HOME/git/ligo/src/stages/1-cst/cameligo/ParserLog.mli +$HOME/git/ligo/src/stages/1-cst/cameligo/ParserLog.ml diff --git a/src/passes/01-parsing/reasonligo/LexToken.mli b/src/passes/01-parsing/reasonligo/LexToken.mli index 3f91a0f71..0368aff6e 100644 --- a/src/passes/01-parsing/reasonligo/LexToken.mli +++ b/src/passes/01-parsing/reasonligo/LexToken.mli @@ -21,13 +21,16 @@ aliased to [token]. *) +(* Dependencies *) + module Region = Simple_utils.Region module Pos = Simple_utils.Pos - -type lexeme = string +module Markup = Lexer_shared.Markup (* TOKENS *) +type lexeme = string + type t = (* Identifiers, labels, numbers and strings *) diff --git a/src/passes/01-parsing/reasonligo/LexToken.mll b/src/passes/01-parsing/reasonligo/LexToken.mll index 4e7fa6079..737fdb797 100644 --- a/src/passes/01-parsing/reasonligo/LexToken.mll +++ b/src/passes/01-parsing/reasonligo/LexToken.mll @@ -1,19 +1,19 @@ +(* ocamlex specification for ReasonLIGO *) { (* START OF HEADER *) -(* Shorthands *) +(* Dependencies *) module Region = Simple_utils.Region module Pos = Simple_utils.Pos -module SMap = Utils.String.Map -module SSet = Utils.String.Set - -type lexeme = string - -let sprintf = Printf.sprintf +module Markup = Lexer_shared.Markup +module SMap = Map.Make (String) +module SSet = Set.Make (String) (* TOKENS *) +type lexeme = string + type t = (* Identifiers, labels, numbers and strings *) @@ -103,6 +103,8 @@ type t = (* Projections *) +let sprintf = Printf.sprintf + type token = t let proj_token = function diff --git a/src/passes/01-parsing/reasonligo/LexerMain.ml b/src/passes/01-parsing/reasonligo/LexerMain.ml index f0d6fdfa1..69b9d40e2 100644 --- a/src/passes/01-parsing/reasonligo/LexerMain.ml +++ b/src/passes/01-parsing/reasonligo/LexerMain.ml @@ -1,6 +1,14 @@ (* Driver for the ReasonLIGO lexer *) -module Region = Simple_utils.Region +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module Lexer = Lexer_shared.Lexer +module LexerUnit = Lexer_shared.LexerUnit +module LexToken = Lexer_reasonligo.LexToken + +(* Input/Output *) module IO = struct diff --git a/src/passes/01-parsing/reasonligo/ParToken.mly b/src/passes/01-parsing/reasonligo/ParToken.mly index 01bbc839c..337a8d7e8 100644 --- a/src/passes/01-parsing/reasonligo/ParToken.mly +++ b/src/passes/01-parsing/reasonligo/ParToken.mly @@ -1,4 +1,5 @@ %{ +module LexToken = Lexer_reasonligo.LexToken %} (* Tokens (mirroring those defined in module LexToken) *) diff --git a/src/passes/01-parsing/reasonligo/ParserMain.ml b/src/passes/01-parsing/reasonligo/ParserMain.ml index 3dd94d37e..30d71deb5 100644 --- a/src/passes/01-parsing/reasonligo/ParserMain.ml +++ b/src/passes/01-parsing/reasonligo/ParserMain.ml @@ -1,7 +1,16 @@ (* Driver for the ReasonLIGO parser *) -module Region = Simple_utils.Region -module SSet = Set.Make (String) +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module LexToken = Lexer_reasonligo.LexToken +module CST = Cst.Cameligo +module SSet = Set.Make (String) +module ParserUnit = Parser_shared.ParserUnit +module Pretty = Parser_reasonligo.Pretty + +(* Input/Output *) module IO = struct @@ -55,22 +64,22 @@ module SubIO = module Parser = struct - type ast = AST.t - type expr = AST.expr - include Parser + type ast = CST.t + type expr = CST.expr + include Parser_reasonligo.Parser end module ParserLog = struct - type ast = AST.t - type expr = AST.expr - include ParserLog + type ast = CST.t + type expr = CST.expr + include Cst_cameligo.ParserLog end -module Lexer = Lexer.Make (LexToken) +module Lexer = Lexer_shared.Lexer.Make (LexToken) module Unit = - ParserUnit.Make (Lexer)(AST)(Parser)(Parser_msg)(ParserLog)(SubIO) + ParserUnit.Make (Lexer)(CST)(Parser)(Parser_msg)(ParserLog)(SubIO) (* Main *) diff --git a/src/passes/01-parsing/reasonligo/Scoping.ml b/src/passes/01-parsing/reasonligo/Scoping.ml new file mode 120000 index 000000000..f89a36ef0 --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Scoping.ml @@ -0,0 +1 @@ +../cameligo/Scoping.ml \ No newline at end of file diff --git a/src/passes/01-parsing/reasonligo/Scoping.mli b/src/passes/01-parsing/reasonligo/Scoping.mli new file mode 120000 index 000000000..5e0c71af4 --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Scoping.mli @@ -0,0 +1 @@ +../cameligo/Scoping.mli \ No newline at end of file diff --git a/src/passes/01-parsing/reasonligo/Stubs/Cst.ml b/src/passes/01-parsing/reasonligo/Stubs/Cst.ml new file mode 100644 index 000000000..fcd70f2bb --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Stubs/Cst.ml @@ -0,0 +1 @@ +module Cameligo = CST diff --git a/src/passes/01-parsing/reasonligo/Stubs/Cst_cameligo.ml b/src/passes/01-parsing/reasonligo/Stubs/Cst_cameligo.ml new file mode 100644 index 000000000..011ad3f5e --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Stubs/Cst_cameligo.ml @@ -0,0 +1 @@ +module ParserLog = ParserLog diff --git a/src/passes/01-parsing/reasonligo/Stubs/Lexer_reasonligo.ml b/src/passes/01-parsing/reasonligo/Stubs/Lexer_reasonligo.ml new file mode 100644 index 000000000..0b6aa4f73 --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Stubs/Lexer_reasonligo.ml @@ -0,0 +1 @@ +module LexToken = LexToken diff --git a/src/passes/01-parsing/reasonligo/Stubs/Lexer_shared.ml b/src/passes/01-parsing/reasonligo/Stubs/Lexer_shared.ml new file mode 100644 index 000000000..71d9cc522 --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Stubs/Lexer_shared.ml @@ -0,0 +1,6 @@ +module EvalOpt = EvalOpt +module Markup = Markup +module Lexer = Lexer +module LexerUnit = LexerUnit +module LexerLog = LexerLog +module LexerLib = LexerLib diff --git a/src/passes/01-parsing/reasonligo/Stubs/Parser_cameligo.ml b/src/passes/01-parsing/reasonligo/Stubs/Parser_cameligo.ml deleted file mode 100644 index bf4e0962a..000000000 --- a/src/passes/01-parsing/reasonligo/Stubs/Parser_cameligo.ml +++ /dev/null @@ -1 +0,0 @@ -module AST = AST diff --git a/src/passes/01-parsing/reasonligo/Stubs/Parser_reasonligo.ml b/src/passes/01-parsing/reasonligo/Stubs/Parser_reasonligo.ml new file mode 100644 index 000000000..9479f6e5f --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Stubs/Parser_reasonligo.ml @@ -0,0 +1,2 @@ +module Pretty = Pretty +module Parser = Parser diff --git a/src/passes/01-parsing/reasonligo/Stubs/Parser_shared.ml b/src/passes/01-parsing/reasonligo/Stubs/Parser_shared.ml new file mode 100644 index 000000000..f1e238ebf --- /dev/null +++ b/src/passes/01-parsing/reasonligo/Stubs/Parser_shared.ml @@ -0,0 +1 @@ +module ParserUnit = ParserUnit diff --git a/src/passes/01-parsing/reasonligo/SyntaxError.ml b/src/passes/01-parsing/reasonligo/SyntaxError.ml index cab81f352..434625931 100644 --- a/src/passes/01-parsing/reasonligo/SyntaxError.ml +++ b/src/passes/01-parsing/reasonligo/SyntaxError.ml @@ -1,6 +1,6 @@ module CST = Cst.Cameligo -type error = +type error = | WrongFunctionArguments of CST.expr | InvalidWild of CST.expr diff --git a/src/passes/01-parsing/reasonligo/dune b/src/passes/01-parsing/reasonligo/dune index 38170a812..b0c88b150 100644 --- a/src/passes/01-parsing/reasonligo/dune +++ b/src/passes/01-parsing/reasonligo/dune @@ -1,30 +1,71 @@ +;; -------------------------------------------------------------------- +;; LEXING + ;; Build of the lexer (ocamllex LexToken) +;; Build of the lexer as a library + +(library + (name lexer_reasonligo) + (public_name ligo.lexer.reasonligo) + (modules LexToken) + (libraries + ;; Ligo + lexer_shared + ;; Third party + hex) + (preprocess + (pps bisect_ppx --conditional))) + +;; Build of a standalone lexer + +(executable + (name LexerMain) + (libraries + ;; Ligo + lexer_shared + lexer_reasonligo + ;; Third party + hex) + (modules LexerMain) + (preprocess + (pps bisect_ppx --conditional))) + +;; -------------------------------------------------------------------- +;; PARSING + ;; Build of the parser (menhir (merge_into Parser) (modules ParToken Parser) - (flags -la 1 --table --strict --explain --external-tokens LexToken)) + (flags -la 1 --table --strict --explain + --external-tokens Lexer_reasonligo.LexToken)) ;; Build of the parser as a library (library - (name parser_reasonligo) - (public_name ligo.parser.reasonligo) - (modules - SyntaxError reasonligo LexToken ParErr Parser Pretty) - (libraries - menhirLib + (name parser_reasonligo) + (public_name ligo.parser.reasonligo) + (modules + SyntaxError Scoping Parser ParErr Pretty) + (libraries + ;; Ligo + lexer_reasonligo parser_shared - parser_cameligo - str - simple-utils) - (preprocess - (pps bisect_ppx --conditional)) - (flags (:standard -open Parser_shared -open Simple_utils -open Parser_cameligo))) + cst + ;; Vendors + simple-utils + ;; Third party + pprint + terminal_size + menhirLib + hex) + (preprocess + (pps bisect_ppx --conditional)) + (flags (:standard -open Cst_cameligo))) ;; For CST in Parser.mli ;; Build of the unlexer (for covering the ;; error states of the LR automaton) @@ -32,38 +73,31 @@ (executable (name Unlexer) (libraries str) + (modules Unlexer) (preprocess - (pps bisect_ppx --conditional)) - (modules Unlexer)) - -;; Local build of a standalone lexer - -(executable - (name LexerMain) - (libraries parser_reasonligo) - (modules LexerMain) - (preprocess - (pps bisect_ppx --conditional)) - (flags (:standard -open Parser_shared -open Parser_reasonligo))) + (pps bisect_ppx --conditional))) ;; Local build of a standalone parser (executable (name ParserMain) (libraries - parser_reasonligo - parser_cameligo) - (modules ParserMain) + ;; Ligo + parser_shared + parser_reasonligo + cst + ;; Third party + hex) + (modules ParserMain Parser_msg) (preprocess - (pps bisect_ppx --conditional)) - (flags (:standard -open Simple_utils -open Parser_cameligo -open Parser_shared -open Parser_reasonligo))) + (pps bisect_ppx --conditional))) ;; Build of the covering of error states in the LR automaton (rule (targets Parser.msg) (deps (:script_messages ../../../../vendors/ligo-utils/simple-utils/messages.sh) Parser.mly LexToken.mli ParToken.mly) - (action (run %{script_messages} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly Parser.mly ))) + (action (run %{script_messages} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly Parser.mly))) (rule (targets Parser_msg.ml) @@ -83,7 +117,16 @@ (rule (targets all.religo) (deps (:script_cover ../../../../vendors/ligo-utils/simple-utils/cover.sh) Parser.mly LexToken.mli ParToken.mly Parser.msg Unlexer.exe) - (action (run %{script_cover} --lex-tokens=LexToken.mli --par-tokens=ParToken.mly --ext=religo --unlexer=./Unlexer.exe --messages=Parser.msg --dir=. --concatenate Parser.mly ))) + (action (run %{script_cover} + --lex-tokens=LexToken.mli + --par-tokens=ParToken.mly + --ext=religo + --unlexer=./Unlexer.exe + --messages=Parser.msg + --dir=. + --concatenate Parser.mly))) + +;; Error messages (rule (targets error.messages) @@ -91,60 +134,45 @@ (deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli) (action (with-stdout-to %{targets} - (run - menhir - --unused-tokens - --update-errors error.messages.checked-in - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - ) - )) -) + (run menhir + --unused-tokens + --update-errors error.messages.checked-in + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly)))) (rule (target error.messages.new) (mode (promote (until-clean) (only *))) (action (with-stdout-to %{target} - (run - menhir - --unused-tokens - --list-errors - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - ) - ) - ) -) + (run menhir + --unused-tokens + --list-errors + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly)))) (alias (name runtest) (deps error.messages error.messages.new) (action - (run - menhir - --unused-tokens - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - --compare-errors error.messages.new - --compare-errors error.messages - ) - ) - ) - - + (run menhir + --unused-tokens + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly + --compare-errors error.messages.new + --compare-errors error.messages))) (rule (targets ParErr.ml) @@ -152,16 +180,12 @@ (deps Parser.mly ParToken.mly error.messages.checked-in LexToken.mli) (action (with-stdout-to %{targets} - (run - menhir - --unused-tokens - --table - --strict - --external-tokens LexToken.mli - --base Parser.mly - ParToken.mly - Parser.mly - --compile-errors error.messages.checked-in - ) - )) -) + (run menhir + --unused-tokens + --table + --strict + --external-tokens LexToken.mli + --base Parser.mly + ParToken.mly + Parser.mly + --compile-errors error.messages.checked-in)))) diff --git a/src/passes/01-parsing/reasonligo/reasonligo.ml b/src/passes/01-parsing/reasonligo/reasonligo.ml deleted file mode 100644 index 8ac1f47fa..000000000 --- a/src/passes/01-parsing/reasonligo/reasonligo.ml +++ /dev/null @@ -1,4 +0,0 @@ -module Parser = Parser -module Lexer = Lexer -module LexToken = LexToken -module SyntaxError = SyntaxError diff --git a/src/passes/01-parsing/shared/LexerLib.ml b/src/passes/01-parsing/shared/LexerLib.ml index 850c71a57..86cae1f2c 100644 --- a/src/passes/01-parsing/shared/LexerLib.ml +++ b/src/passes/01-parsing/shared/LexerLib.ml @@ -1,5 +1,8 @@ +(* A library for writing UTF8-aware lexers *) + module Region = Simple_utils.Region -module Pos = Simple_utils.Pos +module Pos = Simple_utils.Pos +module FQueue = Simple_utils.FQueue (* LEXER ENGINE *) diff --git a/src/passes/01-parsing/shared/LexerLib.mli b/src/passes/01-parsing/shared/LexerLib.mli index bddc1b2e7..1af30a058 100644 --- a/src/passes/01-parsing/shared/LexerLib.mli +++ b/src/passes/01-parsing/shared/LexerLib.mli @@ -1,7 +1,8 @@ (* A library for writing UTF8-aware lexers *) module Region = Simple_utils.Region -module Pos = Simple_utils.Pos +module Pos = Simple_utils.Pos +module FQueue = Simple_utils.FQueue (* The function [rollback] resets the lexing buffer to the state it was when it matched the last regular expression. This function is diff --git a/src/passes/01-parsing/shared/Memo.ml b/src/passes/01-parsing/shared/Misc/Memo.ml similarity index 100% rename from src/passes/01-parsing/shared/Memo.ml rename to src/passes/01-parsing/shared/Misc/Memo.ml diff --git a/src/passes/01-parsing/shared/Memo.mli b/src/passes/01-parsing/shared/Misc/Memo.mli similarity index 100% rename from src/passes/01-parsing/shared/Memo.mli rename to src/passes/01-parsing/shared/Misc/Memo.mli diff --git a/src/passes/01-parsing/shared/Doc/shared.txt b/src/passes/01-parsing/shared/Misc/shared.txt similarity index 100% rename from src/passes/01-parsing/shared/Doc/shared.txt rename to src/passes/01-parsing/shared/Misc/shared.txt diff --git a/src/passes/01-parsing/shared/ParserAPI.ml b/src/passes/01-parsing/shared/ParserAPI.ml index 73b384302..a93f5dff2 100644 --- a/src/passes/01-parsing/shared/ParserAPI.ml +++ b/src/passes/01-parsing/shared/ParserAPI.ml @@ -1,6 +1,14 @@ (* Generic parser for LIGO *) -module Region = Simple_utils.Region +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module Lexer = Lexer_shared.Lexer +module LexerLib = Lexer_shared.LexerLib +module LexerLog = Lexer_shared.LexerLog + +(* Input/Output *) type options = < offsets : bool; diff --git a/src/passes/01-parsing/shared/ParserAPI.mli b/src/passes/01-parsing/shared/ParserAPI.mli index 90d51c392..44fafbc78 100644 --- a/src/passes/01-parsing/shared/ParserAPI.mli +++ b/src/passes/01-parsing/shared/ParserAPI.mli @@ -1,6 +1,13 @@ (* Generic parser API for LIGO *) -module Region = Simple_utils.Region +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module Lexer = Lexer_shared.Lexer +module LexerLib = Lexer_shared.LexerLib + +(* Input/Output *) type options = < offsets : bool; diff --git a/src/passes/01-parsing/shared/ParserUnit.ml b/src/passes/01-parsing/shared/ParserUnit.ml index 8c15c1db2..1f892ca44 100644 --- a/src/passes/01-parsing/shared/ParserUnit.ml +++ b/src/passes/01-parsing/shared/ParserUnit.ml @@ -1,8 +1,16 @@ (* Functor to build a LIGO parser *) -module Region = Simple_utils.Region -module Preproc = Preprocessor.Preproc -module SSet = Set.Make (String) +(* Dependencies *) + +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module Lexer = Lexer_shared.Lexer +module LexerLib = Lexer_shared.LexerLib +module LexerLog = Lexer_shared.LexerLog +module Preproc = Preprocessor.Preproc +module SSet = Set.Make (String) + +(* A subtype of [EvalOpt.options] *) module type SubIO = sig diff --git a/src/passes/01-parsing/shared/ParserUnit.mli b/src/passes/01-parsing/shared/ParserUnit.mli index fe3b90dc1..3551af00e 100644 --- a/src/passes/01-parsing/shared/ParserUnit.mli +++ b/src/passes/01-parsing/shared/ParserUnit.mli @@ -1,8 +1,12 @@ (* Functor to build a standalone LIGO parser *) -module Region = Simple_utils.Region +(* Dependencies *) -module SSet : Set.S with type elt = string and type t = Set.Make(String).t +module Region = Simple_utils.Region +module EvalOpt = Lexer_shared.EvalOpt +module Lexer = Lexer_shared.Lexer +module SSet : Set.S with type elt = string + and type t = Set.Make(String).t (* A subtype of [EvalOpt.options] *) diff --git a/src/passes/01-parsing/shared/dune b/src/passes/01-parsing/shared/dune index db0ce3e46..e94994956 100644 --- a/src/passes/01-parsing/shared/dune +++ b/src/passes/01-parsing/shared/dune @@ -1,29 +1,51 @@ +;; Build of the lexer in common to all Ligo's dialects + (ocamllex Lexer) +;; Build of the lexer as a library + +(library + (name lexer_shared) + (public_name ligo.lexer.shared) + (libraries + ;; Ligo + simple-utils + ;; Vendors + Preprocessor + ;; Third party + uutf + getopt + zarith) + (modules + LexerLib + LexerUnit + Lexer + LexerLog + Markup + EvalOpt + Version) + (preprocess + (pps bisect_ppx --conditional))) + +;; Build of the parser as a library + (library (name parser_shared) (public_name ligo.parser.shared) (libraries - menhirLib + ;; Ligo + lexer_shared simple-utils - uutf - getopt - zarith - Preprocessor) - (preprocess - (pps bisect_ppx --conditional)) + ;; Third party + menhirLib) (modules - LexerLib - LexerUnit ParserUnit - ParserAPI - Lexer - LexerLog - Markup - Utils - FQueue - EvalOpt - Version)) + ParserAPI) + (preprocess + (pps bisect_ppx --conditional))) +;; (flags (:standard -open Lexer_shared))) + +;; Build of the version source (for the user, as a CLI option) (rule (targets Version.ml) diff --git a/src/passes/03-tree_abstraction/pascaligo/errors.ml b/src/passes/03-tree_abstraction/pascaligo/errors.ml index 7760ea91a..cdbce4dbc 100644 --- a/src/passes/03-tree_abstraction/pascaligo/errors.ml +++ b/src/passes/03-tree_abstraction/pascaligo/errors.ml @@ -15,7 +15,7 @@ type abs_error = [ | `Concrete_pascaligo_unsupported_string_singleton of Raw.type_expr | `Concrete_pascaligo_unsupported_deep_some_pattern of Raw.pattern | `Concrete_pascaligo_unsupported_deep_list_pattern of Raw.pattern - | `Concrete_pascaligo_unsupported_deep_tuple_pattern of (Raw.pattern, Raw.wild) Parser_shared.Utils.nsepseq Raw.par Raw.reg + | `Concrete_pascaligo_unsupported_deep_tuple_pattern of (Raw.pattern, Raw.wild) Simple_utils.Utils.nsepseq Raw.par Raw.reg | `Concrete_pascaligo_unknown_built_in of string | `Concrete_pascaligo_michelson_type_wrong of Raw.type_expr * string | `Concrete_pascaligo_michelson_type_wrong_arity of Location.t * string diff --git a/src/stages/1-cst/cameligo/CST.ml b/src/stages/1-cst/cameligo/CST.ml index a6002e729..7f3926673 100644 --- a/src/stages/1-cst/cameligo/CST.ml +++ b/src/stages/1-cst/cameligo/CST.ml @@ -6,6 +6,7 @@ (* Utilities *) +module Utils = Simple_utils.Utils open Utils (* Regions @@ -23,6 +24,10 @@ module Region = Simple_utils.Region type 'a reg = 'a Region.reg +(* Lexemes *) + +type lexeme = string + (* Keywords of OCaml *) type keyword = Region.t @@ -169,7 +174,7 @@ and type_expr = | TFun of (type_expr * arrow * type_expr) reg | TPar of type_expr par reg | TVar of variable -| TString of Lexer.lexeme reg +| TString of lexeme reg and cartesian = (type_expr, times) nsepseq reg @@ -192,9 +197,9 @@ and pattern = | PFalse of kwd_false | PTrue of kwd_true | PVar of variable -| PInt of (Lexer.lexeme * Z.t) reg -| PNat of (Lexer.lexeme * Z.t) reg -| PBytes of (Lexer.lexeme * Hex.t) reg +| PInt of (lexeme * Z.t) reg +| PNat of (lexeme * Z.t) reg +| PBytes of (lexeme * Hex.t) reg | PString of string reg | PVerbatim of string reg | PWild of wild diff --git a/src/stages/1-cst/cameligo/cameligo.ml b/src/stages/1-cst/cameligo/cameligo.ml deleted file mode 100644 index 0429a03db..000000000 --- a/src/stages/1-cst/cameligo/cameligo.ml +++ /dev/null @@ -1 +0,0 @@ -include CST diff --git a/src/stages/1-cst/cameligo/dune b/src/stages/1-cst/cameligo/dune index 5249351d2..53a613ebc 100644 --- a/src/stages/1-cst/cameligo/dune +++ b/src/stages/1-cst/cameligo/dune @@ -2,12 +2,11 @@ (name cst_cameligo) (public_name ligo.cst.cameligo) (libraries + ;; Ligo simple-utils - tezos-utils - parser_shared - ) + ;; Third party + hex + zarith) + (modules CST ParserLog) (preprocess - (pps ppx_let bisect_ppx --conditional) - ) - (flags (:standard -open Parser_shared -open Simple_utils )) -) + (pps ppx_let bisect_ppx --conditional))) diff --git a/src/stages/1-cst/dune b/src/stages/1-cst/dune index 10a31affb..c29294227 100644 --- a/src/stages/1-cst/dune +++ b/src/stages/1-cst/dune @@ -2,13 +2,7 @@ (name cst) (public_name ligo.cst) (libraries - simple-utils - tezos-utils cst_cameligo - cst_pascaligo - ) + cst_pascaligo) (preprocess - (pps ppx_let bisect_ppx --conditional) - ) - (flags (:standard -open Simple_utils )) -) + (pps ppx_let bisect_ppx --conditional))) diff --git a/src/stages/1-cst/pascaligo/CST.ml b/src/stages/1-cst/pascaligo/CST.ml index 21c1d9b12..bae93dc1a 100644 --- a/src/stages/1-cst/pascaligo/CST.ml +++ b/src/stages/1-cst/pascaligo/CST.ml @@ -6,6 +6,7 @@ (* Utilities *) +module Utils = Simple_utils.Utils open Utils (* Regions @@ -23,6 +24,10 @@ module Region = Simple_utils.Region type 'a reg = 'a Region.reg +(* Lexemes *) + +type lexeme = string + (* Keywords of LIGO *) type keyword = Region.t @@ -185,7 +190,7 @@ and type_expr = | TFun of (type_expr * arrow * type_expr) reg | TPar of type_expr par reg | TVar of variable -| TString of Lexer.lexeme reg +| TString of lexeme reg and cartesian = (type_expr, times) nsepseq reg @@ -457,9 +462,9 @@ and expr = | EProj of projection reg | EUpdate of update reg | EMap of map_expr -| EVar of Lexer.lexeme reg +| EVar of lexeme reg | ECall of fun_call -| EBytes of (Lexer.lexeme * Hex.t) reg +| EBytes of (lexeme * Hex.t) reg | EUnit of c_Unit | ETuple of tuple_expr | EPar of expr par reg @@ -523,14 +528,14 @@ and arith_expr = | Div of slash bin_op reg | Mod of kwd_mod bin_op reg | Neg of minus un_op reg -| Int of (Lexer.lexeme * Z.t) reg -| Nat of (Lexer.lexeme * Z.t) reg -| Mutez of (Lexer.lexeme * Z.t) reg +| Int of (lexeme * Z.t) reg +| Nat of (lexeme * Z.t) reg +| Mutez of (lexeme * Z.t) reg and string_expr = Cat of cat bin_op reg -| String of Lexer.lexeme reg -| Verbatim of Lexer.lexeme reg +| String of lexeme reg +| Verbatim of lexeme reg and list_expr = ECons of cons bin_op reg @@ -570,7 +575,7 @@ and field_path_assignment = { and selection = FieldName of field_name -| Component of (Lexer.lexeme * Z.t) reg +| Component of (lexeme * Z.t) reg and tuple_expr = (expr, comma) nsepseq par reg @@ -614,12 +619,12 @@ and ne_injection_kwd = and pattern = PConstr of constr_pattern -| PVar of Lexer.lexeme reg +| PVar of lexeme reg | PWild of wild -| PInt of (Lexer.lexeme * Z.t) reg -| PNat of (Lexer.lexeme * Z.t) reg -| PBytes of (Lexer.lexeme * Hex.t) reg -| PString of Lexer.lexeme reg +| PInt of (lexeme * Z.t) reg +| PNat of (lexeme * Z.t) reg +| PBytes of (lexeme * Hex.t) reg +| PString of lexeme reg | PList of list_pattern | PTuple of tuple_pattern diff --git a/src/stages/1-cst/pascaligo/dune b/src/stages/1-cst/pascaligo/dune index 242fcfc0f..cc20f6a01 100644 --- a/src/stages/1-cst/pascaligo/dune +++ b/src/stages/1-cst/pascaligo/dune @@ -2,12 +2,11 @@ (name cst_pascaligo) (public_name ligo.cst.pascaligo) (libraries + ;; Ligo simple-utils - tezos-utils - parser_shared - ) + ;; Third party + hex + zarith) + (modules CST ParserLog) (preprocess - (pps ppx_let bisect_ppx --conditional) - ) - (flags (:standard -open Parser_shared -open Simple_utils )) -) + (pps ppx_let bisect_ppx --conditional))) diff --git a/src/stages/1-cst/pascaligo/pascaligo.ml b/src/stages/1-cst/pascaligo/pascaligo.ml deleted file mode 100644 index 0429a03db..000000000 --- a/src/stages/1-cst/pascaligo/pascaligo.ml +++ /dev/null @@ -1 +0,0 @@ -include CST diff --git a/vendors/Preprocessor/dune b/vendors/Preprocessor/dune index dc61c5cee..db8e82013 100644 --- a/vendors/Preprocessor/dune +++ b/vendors/Preprocessor/dune @@ -5,11 +5,17 @@ (public_name Preprocessor) (wrapped true) (libraries - getopt - simple-utils) - (modules EvalOpt E_Parser E_Lexer E_AST Preproc) + getopt + simple-utils) + (modules + EvalOpt + E_Parser + E_Lexer + E_AST + Preproc) (preprocess - (pps bisect_ppx --conditional))) + (pps bisect_ppx --conditional)) + (flags (:standard -open Simple_utils))) ;; Building the lexers of the preprocessor diff --git a/src/passes/01-parsing/shared/FQueue.ml b/vendors/ligo-utils/simple-utils/FQueue.ml similarity index 100% rename from src/passes/01-parsing/shared/FQueue.ml rename to vendors/ligo-utils/simple-utils/FQueue.ml diff --git a/src/passes/01-parsing/shared/FQueue.mli b/vendors/ligo-utils/simple-utils/FQueue.mli similarity index 100% rename from src/passes/01-parsing/shared/FQueue.mli rename to vendors/ligo-utils/simple-utils/FQueue.mli diff --git a/src/passes/01-parsing/shared/Utils.ml b/vendors/ligo-utils/simple-utils/Utils.ml similarity index 100% rename from src/passes/01-parsing/shared/Utils.ml rename to vendors/ligo-utils/simple-utils/Utils.ml diff --git a/src/passes/01-parsing/shared/Utils.mli b/vendors/ligo-utils/simple-utils/Utils.mli similarity index 100% rename from src/passes/01-parsing/shared/Utils.mli rename to vendors/ligo-utils/simple-utils/Utils.mli diff --git a/vendors/ligo-utils/simple-utils/dune b/vendors/ligo-utils/simple-utils/dune index 73b0f7dd1..b1fec4c63 100644 --- a/vendors/ligo-utils/simple-utils/dune +++ b/vendors/ligo-utils/simple-utils/dune @@ -4,9 +4,6 @@ (libraries yojson unix - str - ) + str) (preprocess - (pps ppx_let) - ) -) + (pps ppx_let))) diff --git a/vendors/ligo-utils/simple-utils/simple-utils.opam b/vendors/ligo-utils/simple-utils/simple-utils.opam index eeeaab8b0..6fe5cadb2 100644 --- a/vendors/ligo-utils/simple-utils/simple-utils.opam +++ b/vendors/ligo-utils/simple-utils/simple-utils.opam @@ -3,20 +3,16 @@ name : "simple-utils" version : "dev" synopsis : "LIGO utilities, to be used by other libraries" maintainer : "Galfour " -authors : "Galfour" +authors : "Galfour, Christian Rinderknecht" license : "MIT" -homepage: "https://gitlab.com/ligolang/ligo-utils" -bug-reports: "https://gitlab.com/ligolang/ligo-utils/issues" -depends: [ - "dune" - "base" - "yojson" - "ppx_let" - # from ppx_let: - "ocaml" {>= "4.04.2" & < "4.08.0"} - "dune" {build & >= "1.5.1"} - "ppxlib" {>= "0.5.0"} -] -build: [ - ["dune" "build" "-p" name] -] +homepage : "https://gitlab.com/ligolang/ligo-utils" +bug-reports : "https://gitlab.com/ligolang/ligo-utils/issues" +depends : ["dune" + "base" + "yojson" + "ppx_let" + # from ppx_let: + "ocaml" {>= "4.04.2" & < "4.08.0"} + "dune" {build & >= "1.5.1"} + "ppxlib" {>= "0.5.0"}] +build : [["dune" "build" "-p" name]] diff --git a/vendors/ligo-utils/simple-utils/simple_utils.ml b/vendors/ligo-utils/simple-utils/simple_utils.ml index 2df09573f..4ccd97689 100644 --- a/vendors/ligo-utils/simple-utils/simple_utils.ml +++ b/vendors/ligo-utils/simple-utils/simple_utils.ml @@ -10,10 +10,14 @@ module Int = X_int module Tuple = Tuple module Map = X_map module Tree = Tree -module Region = Region -module Pos = Pos module Var = Var module Ligo_string = X_string module Display = Display module Runned_result = Runned_result +(* Originally by Christian Rinderknecht *) + +module Pos = Pos +module Region = Region +module Utils = Utils +module FQueue = FQueue