From 77920a1c5891cd585921eb34f9c2ab5f1d80714c Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Fri, 5 Jun 2020 23:24:49 +0200 Subject: [PATCH 1/6] Fixed parsing of lambdas (cannot be recursive) in PascaLIGO. Added more to the pretty-printing of PascaLIGO. Improved pretty-printing of CameLIGO. --- src/passes/01-parser/cameligo/AST.ml | 4 +- src/passes/01-parser/cameligo/Parser.mly | 5 +- src/passes/01-parser/cameligo/Pretty.ml | 23 ++-- src/passes/01-parser/pascaligo/AST.ml | 5 +- src/passes/01-parser/pascaligo/Parser.mly | 28 ++--- src/passes/01-parser/pascaligo/ParserLog.ml | 45 +++---- src/passes/01-parser/pascaligo/Pretty.ml | 125 ++++++++++++-------- 7 files changed, 130 insertions(+), 105 deletions(-) diff --git a/src/passes/01-parser/cameligo/AST.ml b/src/passes/01-parser/cameligo/AST.ml index 9be76e138..afb945c2d 100644 --- a/src/passes/01-parser/cameligo/AST.ml +++ b/src/passes/01-parser/cameligo/AST.ml @@ -228,7 +228,7 @@ and field_pattern = { and expr = ECase of expr case reg | ECond of cond_expr reg -| EAnnot of (expr * colon * type_expr) par reg +| EAnnot of annot_expr par reg | ELogic of logic_expr | EArith of arith_expr | EString of string_expr @@ -247,6 +247,8 @@ and expr = | EFun of fun_expr reg | ESeq of expr injection reg +and annot_expr = expr * colon * type_expr + and 'a injection = { compound : compound; elements : ('a, semi) sepseq; diff --git a/src/passes/01-parser/cameligo/Parser.mly b/src/passes/01-parser/cameligo/Parser.mly index 4f309c5b6..35f692671 100644 --- a/src/passes/01-parser/cameligo/Parser.mly +++ b/src/passes/01-parser/cameligo/Parser.mly @@ -583,7 +583,10 @@ core_expr: | record_expr { ERecord $1 } | update_record { EUpdate $1 } | par(expr) { EPar $1 } -| par(expr ":" type_expr {$1,$2,$3}) { EAnnot $1 } +| par(annot_expr) { EAnnot $1 } + +annot_expr: + expr ":" type_expr { $1,$2,$3 } module_field: module_name "." module_fun { diff --git a/src/passes/01-parser/cameligo/Pretty.ml b/src/passes/01-parser/cameligo/Pretty.ml index 50a16afb4..8fa298e3f 100644 --- a/src/passes/01-parser/cameligo/Pretty.ml +++ b/src/passes/01-parser/cameligo/Pretty.ml @@ -41,8 +41,9 @@ and pp_verbatim s = string "{|" ^^ pp_ident s ^^ string "|}" and pp_let_binding (binding : let_binding) = let {binders; lhs_type; let_rhs; _} = binding in - let patterns = Utils.nseq_to_list binders in - let patterns = group (separate_map (break 1) pp_pattern patterns) in + let head, tail = binders in + let patterns = + group (nest 2 (separate_map (break 1) pp_pattern (head::tail))) in let lhs = patterns ^^ match lhs_type with @@ -95,11 +96,11 @@ and pp_ppar p = pp_par pp_pattern p and pp_plist = function PListComp cmp -> pp_list_comp cmp -| PCons cons -> pp_cons cons +| PCons cons -> pp_pcons cons and pp_list_comp e = group (pp_injection pp_pattern e) -and pp_cons {value; _} = +and pp_pcons {value; _} = let patt1, _, patt2 = value in prefix 2 1 (pp_pattern patt1 ^^ string " ::") (pp_pattern patt2) @@ -126,14 +127,15 @@ and pp_ptyped {value; _} = and pp_type_decl decl = let {name; type_expr; _} = decl.value in + let padding = match type_expr with TSum _ -> 0 | _ -> 2 in string "type " ^^ string name.value ^^ string " =" - ^^ group (nest 2 (break 1 ^^ pp_type_expr type_expr)) + ^^ group (nest padding (break 1 ^^ pp_type_expr type_expr)) and pp_expr = function ECase e -> pp_case_expr e | ECond e -> group (pp_cond_expr e) | EAnnot e -> pp_annot_expr e -| ELogic e -> pp_logic_expr e +| ELogic e -> group (pp_logic_expr e) | EArith e -> group (pp_arith_expr e) | EString e -> pp_string_expr e | EList e -> group (pp_list_expr e) @@ -166,15 +168,16 @@ and pp_cases {value; _} = and pp_clause {value; _} = let {pattern; rhs; _} = value in - prefix 4 1 (pp_pattern pattern ^^ string " ->") (pp_expr rhs) + pp_pattern pattern ^^ prefix 4 1 (string " ->") (pp_expr rhs) and pp_cond_expr {value; _} = let {test; ifso; kwd_else; ifnot; _} = value in let test = string "if " ^^ group (nest 3 (pp_expr test)) and ifso = string "then" ^^ group (nest 2 (break 1 ^^ pp_expr ifso)) and ifnot = string "else" ^^ group (nest 2 (break 1 ^^ pp_expr ifnot)) - in if kwd_else#is_ghost then test ^/^ ifso - else test ^/^ ifso ^/^ ifnot + in if kwd_else#is_ghost + then test ^/^ ifso + else test ^/^ ifso ^/^ ifnot and pp_annot_expr {value; _} = let expr, _, type_expr = value.inside in @@ -420,7 +423,7 @@ and pp_field_decl {value; _} = in prefix 2 1 (name ^^ string " :") t_expr and pp_type_app {value = ctor, tuple; _} = - prefix 2 1 (pp_type_tuple tuple) (pp_type_constr ctor) + pp_type_tuple tuple ^^ group (nest 2 (break 1 ^^ pp_type_constr ctor)) and pp_type_tuple {value; _} = let head, tail = value.inside in diff --git a/src/passes/01-parser/pascaligo/AST.ml b/src/passes/01-parser/pascaligo/AST.ml index cf6906b69..631704d47 100644 --- a/src/passes/01-parser/pascaligo/AST.ml +++ b/src/passes/01-parser/pascaligo/AST.ml @@ -206,7 +206,6 @@ and type_tuple = (type_expr, comma) nsepseq par reg (* Function and procedure declarations *) and fun_expr = { - kwd_recursive: kwd_recursive option; kwd_function : kwd_function; param : parameters; colon : colon; @@ -448,7 +447,7 @@ and collection = and expr = ECase of expr case reg | ECond of cond_expr reg -| EAnnot of annot_expr reg +| EAnnot of annot_expr par reg | ELogic of logic_expr | EArith of arith_expr | EString of string_expr @@ -467,7 +466,7 @@ and expr = | EPar of expr par reg | EFun of fun_expr reg -and annot_expr = expr * type_expr +and annot_expr = expr * colon * type_expr and set_expr = SetInj of expr injection reg diff --git a/src/passes/01-parser/pascaligo/Parser.mly b/src/passes/01-parser/pascaligo/Parser.mly index 753354cfd..64a12eb78 100644 --- a/src/passes/01-parser/pascaligo/Parser.mly +++ b/src/passes/01-parser/pascaligo/Parser.mly @@ -239,16 +239,15 @@ field_decl: fun_expr: - ioption ("recursive") "function" parameters ":" type_expr "is" expr { - let stop = expr_to_region $7 in - let region = cover $2 stop - and value = {kwd_recursive= $1; - kwd_function = $2; - param = $3; - colon = $4; - ret_type = $5; - kwd_is = $6; - return = $7} + "function" parameters ":" type_expr "is" expr { + let stop = expr_to_region $6 in + let region = cover $1 stop + and value = {kwd_function = $1; + param = $2; + colon = $3; + ret_type = $4; + kwd_is = $5; + return = $6} in {region; value} } (* Function declarations *) @@ -849,7 +848,7 @@ core_expr: | "False" { ELogic (BoolExpr (False $1)) } | "True" { ELogic (BoolExpr (True $1)) } | "Unit" { EUnit $1 } -| annot_expr { EAnnot $1 } +| par(annot_expr) { EAnnot $1 } | tuple_expr { ETuple $1 } | list_expr { EList $1 } | "None" { EConstr (NoneExpr $1) } @@ -891,12 +890,7 @@ fun_call_or_par_or_projection: | fun_call { ECall $1 } annot_expr: - "(" disj_expr ":" type_expr ")" { - let start = expr_to_region $2 - and stop = type_expr_to_region $4 in - let region = cover start stop - and value = $2, $4 - in {region; value} } + disj_expr ":" type_expr { $1,$2,$3 } set_expr: injection("set",expr) { SetInj ($1 (fun region -> InjSet region)) } diff --git a/src/passes/01-parser/pascaligo/ParserLog.ml b/src/passes/01-parser/pascaligo/ParserLog.ml index 6ae1ca0ac..414b27d0f 100644 --- a/src/passes/01-parser/pascaligo/ParserLog.ml +++ b/src/passes/01-parser/pascaligo/ParserLog.ml @@ -180,9 +180,9 @@ and print_type_app state {value; _} = and print_type_fun state {value; _} = let type_expr_a, arrow, type_expr_b = value in - print_type_expr state type_expr_a; - print_token state arrow "->"; - print_type_expr state type_expr_b + print_type_expr state type_expr_a; + print_token state arrow "->"; + print_type_expr state type_expr_b and print_par_type state {value; _} = let {lpar; inside; rpar} = value in @@ -206,12 +206,12 @@ and print_fun_decl state {value; _} = let {kwd_function; fun_name; param; colon; ret_type; kwd_is; block_with; return; terminator; _} = value in - print_token state kwd_function "function"; - print_var state fun_name; - print_parameters state param; - print_token state colon ":"; - print_type_expr state ret_type; - print_token state kwd_is "is"; + print_token state kwd_function "function"; + print_var state fun_name; + print_parameters state param; + print_token state colon ":"; + print_type_expr state ret_type; + print_token state kwd_is "is"; (match block_with with None -> () | Some (block, kwd_with) -> @@ -221,15 +221,14 @@ and print_fun_decl state {value; _} = print_terminator state terminator; and print_fun_expr state {value; _} = - let {kwd_recursive; kwd_function; param; colon; + let {kwd_function; param; colon; ret_type; kwd_is; return} : fun_expr = value in - print_token_opt state kwd_recursive "recursive"; - print_token state kwd_function "function"; - print_parameters state param; - print_token state colon ":"; - print_type_expr state ret_type; - print_token state kwd_is "is"; - print_expr state return + print_token state kwd_function "function"; + print_parameters state param; + print_token state colon ":"; + print_type_expr state ret_type; + print_token state kwd_is "is"; + print_expr state return and print_parameters state {value; _} = let {lpar; inside; rpar} = value in @@ -260,10 +259,10 @@ and print_block state block = match enclosing with Block (kwd_block, lbrace, rbrace) -> print_token state kwd_block "block"; - print_token state lbrace "{"; + print_token state lbrace "{"; print_statements state statements; print_terminator state terminator; - print_token state rbrace "}" + print_token state rbrace "}" | BeginEnd (kwd_begin, kwd_end) -> print_token state kwd_begin "begin"; print_statements state statements; @@ -464,7 +463,9 @@ and print_expr state = function | EPar e -> print_par_expr state e | EFun e -> print_fun_expr state e -and print_annot_expr state (expr , type_expr) = +and print_annot_expr state node = + let {inside; _} : annot_expr par = node in + let expr, _, type_expr = inside in print_expr state expr; print_type_expr state type_expr @@ -1432,7 +1433,7 @@ and pp_expr state = function pp_cond_expr state value | EAnnot {value; region} -> pp_loc_node state "EAnnot" region; - pp_annotated state value + pp_annotated state value.inside | ELogic e_logic -> pp_node state "ELogic"; pp_e_logic (state#pad 1 0) e_logic @@ -1607,7 +1608,7 @@ and pp_string_expr state = function pp_node state "Verbatim"; pp_verbatim (state#pad 1 0) v -and pp_annotated state (expr, t_expr) = +and pp_annotated state (expr, _, t_expr) = pp_expr (state#pad 2 0) expr; pp_type_expr (state#pad 2 1) t_expr diff --git a/src/passes/01-parser/pascaligo/Pretty.ml b/src/passes/01-parser/pascaligo/Pretty.ml index 37ee63569..089763655 100644 --- a/src/passes/01-parser/pascaligo/Pretty.ml +++ b/src/passes/01-parser/pascaligo/Pretty.ml @@ -32,14 +32,14 @@ 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 start = string ("const " ^ name.value ^ " :") in + let start = string ("const " ^ name.value) in let t_expr = pp_type_expr const_type in let attr = match attributes with None -> empty - | Some a -> hardline ^^ pp_attr_decl a - in prefix 2 1 start t_expr - ^/^ prefix 2 1 (string "=") (pp_expr init) - ^^ attr + | Some a -> hardline ^^ pp_attr_decl a in + group (start ^/^ nest 2 (string ": " ^^ t_expr)) + ^^ group (break 1 ^^ nest 2 (string "= " ^^ pp_expr init)) + ^^ attr (* Type declarations *) @@ -117,32 +117,40 @@ and pp_type_tuple {value; _} = (* Function and procedure declarations *) -and pp_fun_expr {value; _} = string "TODO:pp_fun_expr" +and pp_fun_expr {value; _} = + let {param; ret_type; return; _} : fun_expr = value in + let start = string "function" in + let parameters = pp_par pp_parameters param in + let return_t = pp_type_expr ret_type in + let expr = pp_expr return in + group (start ^^ nest 2 (break 1 ^^ parameters)) + ^^ group (break 1 ^^ nest 2 (string ": " ^^ return_t)) + ^^ string " is" ^^ group (nest 4 (break 1 ^^ expr)) and pp_fun_decl {value; _} = let {kwd_recursive; fun_name; param; ret_type; block_with; return; attributes; _} = value in let start = match kwd_recursive with - None -> string "function" + 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 return_t = pp_type_expr ret_type in - let blk_opening, blk_in, blk_closing = - match block_with with - None -> empty, empty, empty - | Some (b,_) -> - hardline ^^ string "is block [", pp_block b, string "] with" in let expr = pp_expr return in - let attr = match attributes with + let body = + match block_with with + None -> group (nest 2 (break 1 ^^ expr)) + | Some (b,_) -> hardline ^^ string "block [" + ^^ nest 2 (hardline ^^ pp_block b) + ^^ hardline + ^^ group (string "] with" ^^ nest 4 (break 1 ^^ expr)) + and attr = match attributes with None -> empty - | Some a -> hardline ^^ pp_attr_decl a - in group (start ^^ nest 2 (break 1 ^^ parameters)) - ^/^ string ": " ^^ nest 2 return_t - ^^ blk_opening - ^^ nest 2 (break 0 ^^ blk_in) - ^/^ group (blk_closing ^^ nest 4 (break 1 ^^ expr)) - ^^ attr + | Some a -> hardline ^^ pp_attr_decl a in + prefix 2 1 start parameters + ^^ group (nest 2 (break 1 ^^ string ": " ^^ return_t ^^ string " is")) + ^^ body ^^ attr and pp_parameters p = pp_nsepseq ";" pp_param_decl p @@ -178,10 +186,10 @@ and pp_data_decl = function and pp_var_decl {value; _} = let {name; var_type; init; _} = value in - let start = string ("var " ^ name.value ^ " :") in - let t_expr = pp_type_expr var_type - in prefix 2 1 start - (t_expr ^/^ prefix 2 1 (string ":=") (pp_expr init)) + let start = string ("var " ^ name.value) in + let t_expr = pp_type_expr var_type in + group (start ^/^ nest 2 (string ": " ^^ t_expr)) + ^^ group (break 1 ^^ nest 2 (string ":= " ^^ pp_expr init)) and pp_instruction = function Cond i -> group (pp_conditional i) @@ -196,41 +204,52 @@ and pp_instruction = function | MapRemove i -> pp_map_remove i | SetRemove i -> pp_set_remove i -and pp_set_remove {value; _} = string "TODO:pp_set_remove" +and pp_set_remove {value; _} = + let {element; set; _} : set_remove = value in + string "remove" ^^ group (nest 2 (break 1 ^^ pp_expr element)) + ^/^ string "from set" ^^ group (nest 2 (break 1 ^^ pp_path set)) -and pp_map_remove {value; _} = string "TODO:pp_map_remove" +and pp_map_remove {value; _} = + let {key; map; _} = value in + string "remove" ^^ group (nest 2 (break 1 ^^ pp_expr key)) + ^/^ string "from map" ^^ group (nest 2 (break 1 ^^ pp_path map)) and pp_set_patch {value; _} = string "TODO:pp_set_patch" and pp_map_patch {value; _} = string "TODO:pp_map_patch" -and pp_binding b = string "TODO:pp_binding" +and pp_binding {value; _} = + let {source; image; _} = value in + pp_expr source ^^ string " ->" + ^^ group (nest 2 (break 1 ^^ pp_expr image)) and pp_record_patch {value; _} = string "TODO:pp_record_patch" -and pp_cond_expr {value; _} = string "TODO:pp_cond_expr" +and pp_cond_expr {value; _} = + let {test; ifso; kwd_else; ifnot; _} : cond_expr = value in + let test = string "if " ^^ group (nest 3 (pp_expr test)) + and ifso = string "then" ^^ group (nest 2 (break 1 ^^ pp_expr ifso)) + and ifnot = string "else" ^^ group (nest 2 (break 1 ^^ pp_expr ifnot)) + in test ^/^ ifso ^/^ ifnot and pp_conditional {value; _} = let {test; ifso; ifnot; _} : conditional = value in let test = string "if " ^^ group (nest 3 (pp_expr test)) and ifso = string "then" ^^ group (nest 2 (break 1 ^^ pp_if_clause ifso)) - and ifnot = - if is_clause_block ifnot then - string "else {" - ^^ group (nest 2 (hardline ^^ pp_if_clause ifnot)) - ^^ hardline ^^ string "}" - else - string "else" ^^ group (nest 2 (break 1 ^^ pp_if_clause ifnot)) + and ifnot = match ifnot with + ClauseInstr i -> + string "else" + ^^ group (nest 2 (break 1 ^^ pp_instruction i)) + | ClauseBlock b -> + string "else {" + ^^ group (nest 2 (hardline ^^ pp_clause_block b)) + ^^ hardline ^^ string "}" in test ^/^ ifso ^/^ ifnot and pp_if_clause = function ClauseInstr i -> pp_instruction i | ClauseBlock b -> pp_clause_block b -and is_clause_block = function - ClauseInstr _ -> false -| ClauseBlock _ -> true - and pp_clause_block = function LongBlock b -> pp_block b | ShortBlock {value; _} -> Utils.(pp_statements <@ fst) value.inside @@ -251,7 +270,7 @@ and pp_cases : fun printer {value; _} -> let head, tail = value in let head = pp_case_clause printer head in - let head = if tail = [] then head else blank 2 ^^ head in + let head = blank 2 ^^ head in let rest = List.map snd tail in let app clause = break 1 ^^ string "| " ^^ pp_case_clause printer clause in head ^^ concat_map app rest @@ -260,8 +279,7 @@ and pp_case_clause : 'a.('a -> document) -> 'a case_clause Region.reg -> document = fun printer {value; _} -> let {pattern; rhs; _} = value in - prefix 4 1 (pp_pattern pattern ^^ string " ->") (printer rhs) - + pp_pattern pattern ^^ prefix 4 1 (string " ->") (printer rhs) and pp_assignment {value; _} = let {lhs; rhs; _} = value in @@ -298,7 +316,7 @@ and pp_expr = function ECase e -> pp_case pp_expr e | ECond e -> group (pp_cond_expr e) | EAnnot e -> pp_annot_expr e -| ELogic e -> pp_logic_expr e +| ELogic e -> group (pp_logic_expr e) | EArith e -> group (pp_arith_expr e) | EString e -> pp_string_expr e | EList e -> group (pp_list_expr e) @@ -316,7 +334,10 @@ and pp_expr = function | EPar e -> pp_par pp_expr e | EFun e -> pp_fun_expr e -and pp_annot_expr {value; _} = string "TODO:pp_annot_expr" +and pp_annot_expr {value; _} = + let expr, _, type_expr = value.inside in + group (string "(" ^^ nest 1 (pp_expr expr ^/^ string ": " + ^^ pp_type_expr type_expr ^^ string ")")) and pp_set_expr = function SetInj inj -> string "TODO:pp_set_expr:SetInj" @@ -324,11 +345,11 @@ and pp_set_expr = function and pp_map_expr = function MapLookUp fetch -> pp_map_lookup fetch -| MapInj inj -> pp_injection pp_binding inj -| BigMapInj inj -> pp_injection pp_binding inj +| MapInj inj -> group (pp_injection pp_binding inj) +| BigMapInj inj -> group (pp_injection pp_binding inj) and pp_map_lookup {value; _} = - pp_path value.path ^^ blank 1 ^^ pp_brackets pp_expr value.index + prefix 2 1 (pp_path value.path) (pp_brackets pp_expr value.index) and pp_path = function Name v -> pp_ident v @@ -451,7 +472,8 @@ and pp_injection : let kwd = pp_injection_kwd kind in let offset = String.length kwd + 2 in string (kwd ^ " [") - ^^ group (nest 2 (break 0 ^^ elements ^^ string "]")) + ^^ group (nest 2 (break 0 ^^ elements)) + ^^ break 0 ^^ string "]" and pp_injection_kwd = function InjSet _ -> "set" @@ -467,7 +489,8 @@ and pp_ne_injection : let kwd = pp_ne_injection_kwd kind in let offset = String.length kwd + 2 in string (kwd ^ " [") - ^^ group (nest 2 (break 0 ^^ elements ^^ string "]")) + ^^ group (nest 2 (break 0 ^^ elements )) + ^^ break 0 ^^ string "]" and pp_ne_injection_kwd = function NEInjAttr _ -> "attributes" @@ -526,9 +549,9 @@ and pp_list_pattern = function PListComp cmp -> pp_list_comp cmp | PNil _ -> string "nil" | PParCons p -> pp_ppar_cons p -| PCons p -> pp_nsepseq "#" pp_pattern p.value +| PCons p -> nest 4 (pp_nsepseq " #" pp_pattern p.value) -and pp_list_comp {value; _} = string "TODO:pp_list_comp" +and pp_list_comp e = group (pp_injection pp_pattern e) and pp_ppar_cons {value; _} = string "TODO:pp_ppar_cons" From bfac7f3b0abbafdd201a158ecbf68a6dabae9b04 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Sat, 6 Jun 2020 20:47:31 +0200 Subject: [PATCH 2/6] * Fixed AST node `for_int` (step clause) * Fixed Parser and ParserLog (step clause missing). * Added more printers. --- src/passes/01-parser/pascaligo/AST.ml | 13 +- src/passes/01-parser/pascaligo/Parser.mly | 4 +- src/passes/01-parser/pascaligo/ParserLog.ml | 51 ++++---- src/passes/01-parser/pascaligo/Pretty.ml | 127 ++++++++++++-------- 4 files changed, 114 insertions(+), 81 deletions(-) diff --git a/src/passes/01-parser/pascaligo/AST.ml b/src/passes/01-parser/pascaligo/AST.ml index 631704d47..5625b250c 100644 --- a/src/passes/01-parser/pascaligo/AST.ml +++ b/src/passes/01-parser/pascaligo/AST.ml @@ -412,13 +412,12 @@ and for_loop = | ForCollect of for_collect reg and for_int = { - kwd_for : kwd_for; - assign : var_assign reg; - kwd_to : kwd_to; - bound : expr; - kwd_step : kwd_step option; - step : expr option; - block : block reg + kwd_for : kwd_for; + assign : var_assign reg; + kwd_to : kwd_to; + bound : expr; + step : (kwd_step * expr) option; + block : block reg } and var_assign = { diff --git a/src/passes/01-parser/pascaligo/Parser.mly b/src/passes/01-parser/pascaligo/Parser.mly index 64a12eb78..d5cc773fe 100644 --- a/src/passes/01-parser/pascaligo/Parser.mly +++ b/src/passes/01-parser/pascaligo/Parser.mly @@ -622,7 +622,6 @@ for_loop: assign = $2; kwd_to = $3; bound = $4; - kwd_step = None; step = None; block = $5} in For (ForInt {region; value}) @@ -633,8 +632,7 @@ for_loop: assign = $2; kwd_to = $3; bound = $4; - kwd_step = Some $5; - step = Some $6; + step = Some ($5, $6); block = $7} in For (ForInt {region; value}) } diff --git a/src/passes/01-parser/pascaligo/ParserLog.ml b/src/passes/01-parser/pascaligo/ParserLog.ml index 414b27d0f..0d28c2705 100644 --- a/src/passes/01-parser/pascaligo/ParserLog.ml +++ b/src/passes/01-parser/pascaligo/ParserLog.ml @@ -395,19 +395,16 @@ and print_for_loop state = function | ForCollect for_collect -> print_for_collect state for_collect and print_for_int state ({value; _} : for_int reg) = - let {kwd_for; assign; kwd_to; bound; kwd_step; step; block} = value in + let {kwd_for; assign; kwd_to; bound; step; block} = value in print_token state kwd_for "for"; print_var_assign state assign; print_token state kwd_to "to"; print_expr state bound; - match kwd_step with - | None -> (); - | Some kwd_step -> - print_token state kwd_step "step"; - match step with - | None -> (); - | Some step -> - print_expr state step; + (match step with + None -> (); + | Some (kwd_step, expr) -> + print_token state kwd_step "step"; + print_expr state expr); print_block state block and print_var_assign state {value; _} = @@ -1274,7 +1271,7 @@ and pp_projection state proj = List.iteri (apply len) selections and pp_update state update = - pp_path state update.record; + pp_path (state#pad 2 0) update.record; pp_ne_injection pp_field_path_assign state update.updates.value and pp_selection state = function @@ -1315,17 +1312,27 @@ and pp_for_loop state = function pp_for_collect state value and pp_for_int state for_int = + let {assign; bound; step; block; _} = for_int in + let arity = + match step with None -> 3 | Some _ -> 4 in let () = - let state = state#pad 3 0 in + let state = state#pad arity 0 in pp_node state ""; - pp_var_assign state for_int.assign.value in + pp_var_assign state assign.value in let () = - let state = state#pad 3 1 in + let state = state#pad arity 1 in pp_node state ""; - pp_expr (state#pad 1 0) for_int.bound in + pp_expr (state#pad 1 0) bound in let () = - let state = state#pad 3 2 in - let statements = for_int.block.value.statements in + match step with + None -> () + | Some (_, expr) -> + let state = state#pad arity 2 in + pp_node state ""; + pp_expr (state#pad 1 0) expr in + let () = + let state = state#pad arity (arity-1) in + let statements = block.value.statements in pp_node state ""; pp_statements state statements in () @@ -1348,10 +1355,10 @@ and pp_for_collect state collect = pp_collection (state#pad 2 0) collect.collection; pp_expr (state#pad 1 0) collect.expr in let () = - let state = state#pad 3 2 in - let statements = collect.block.value.statements in - pp_node state ""; - pp_statements state statements + let state = state#pad 3 2 in + let statements = collect.block.value.statements in + pp_node state ""; + pp_statements state statements in () and pp_collection state = function @@ -1381,10 +1388,10 @@ and pp_field_assign state {value; _} = pp_expr (state#pad 2 1) value.field_expr and pp_field_path_assign state {value; _} = - pp_node state ""; + pp_node state ""; let path = Utils.nsepseq_to_list value.field_path in List.iter (pp_ident (state#pad 2 0)) path; - pp_expr (state#pad 2 1) value.field_expr + pp_expr (state#pad 2 1) value.field_expr and pp_map_patch state patch = pp_path (state#pad 2 0) patch.path; diff --git a/src/passes/01-parser/pascaligo/Pretty.ml b/src/passes/01-parser/pascaligo/Pretty.ml index 089763655..69ca98130 100644 --- a/src/passes/01-parser/pascaligo/Pretty.ml +++ b/src/passes/01-parser/pascaligo/Pretty.ml @@ -141,13 +141,12 @@ and pp_fun_decl {value; _} = let body = match block_with with None -> group (nest 2 (break 1 ^^ expr)) - | Some (b,_) -> hardline ^^ string "block [" - ^^ nest 2 (hardline ^^ pp_block b) - ^^ hardline - ^^ group (string "] with" ^^ nest 4 (break 1 ^^ expr)) - and attr = match attributes with - None -> empty - | Some a -> hardline ^^ pp_attr_decl a in + | Some (b,_) -> hardline ^^ pp_block b ^^ string " with" + ^^ group (nest 4 (break 1 ^^ expr)) + and attr = + match attributes with + None -> empty + | Some a -> hardline ^^ pp_attr_decl a in prefix 2 1 start parameters ^^ group (nest 2 (break 1 ^^ string ": " ^^ return_t ^^ string " is")) ^^ body ^^ attr @@ -170,7 +169,10 @@ and pp_param_var {value; _} = let t_expr = pp_type_expr param_type in prefix 2 1 (name ^^ string " :") t_expr -and pp_block {value; _} = pp_statements value.statements +and pp_block {value; _} = + string "block {" + ^^ nest 2 (hardline ^^ pp_statements value.statements) + ^^ hardline ^^ string "}" and pp_statements s = pp_nsepseq ";" pp_statement s @@ -207,28 +209,43 @@ and pp_instruction = function and pp_set_remove {value; _} = let {element; set; _} : set_remove = value in string "remove" ^^ group (nest 2 (break 1 ^^ pp_expr element)) - ^/^ string "from set" ^^ group (nest 2 (break 1 ^^ pp_path set)) + ^^ group (break 1 ^^ prefix 2 1 (string "from set") (pp_path set)) and pp_map_remove {value; _} = let {key; map; _} = value in string "remove" ^^ group (nest 2 (break 1 ^^ pp_expr key)) - ^/^ string "from map" ^^ group (nest 2 (break 1 ^^ pp_path map)) + ^^ group (break 1 ^^ prefix 2 1 (string "from map") (pp_path map)) -and pp_set_patch {value; _} = string "TODO:pp_set_patch" +and pp_set_patch {value; _} = + let {path; set_inj; _} = value in + let inj = pp_ne_injection pp_expr set_inj in + string "patch" + ^^ group (nest 2 (break 1 ^^ pp_path path) ^/^ string "with") + ^^ group (nest 2 (break 1 ^^ inj)) -and pp_map_patch {value; _} = string "TODO:pp_map_patch" +and pp_map_patch {value; _} = + let {path; map_inj; _} = value in + let inj = pp_ne_injection pp_binding map_inj in + string "patch" + ^^ group (nest 2 (break 1 ^^ pp_path path) ^/^ string "with") + ^^ group (nest 2 (break 1 ^^ inj)) and pp_binding {value; _} = let {source; image; _} = value in - pp_expr source ^^ string " ->" - ^^ group (nest 2 (break 1 ^^ pp_expr image)) + pp_expr source + ^^ string " ->" ^^ group (nest 2 (break 1 ^^ pp_expr image)) -and pp_record_patch {value; _} = string "TODO:pp_record_patch" +and pp_record_patch {value; _} = + let {path; record_inj; _} = value in + let inj = pp_record record_inj in + string "patch" + ^^ group (nest 2 (break 1 ^^ pp_path path) ^/^ string "with") + ^^ group (nest 2 (break 1 ^^ inj)) and pp_cond_expr {value; _} = let {test; ifso; kwd_else; ifnot; _} : cond_expr = value in - let test = string "if " ^^ group (nest 3 (pp_expr test)) - and ifso = string "then" ^^ group (nest 2 (break 1 ^^ pp_expr ifso)) + let test = string "if " ^^ group (nest 3 (pp_expr test)) + and ifso = string "then" ^^ group (nest 2 (break 1 ^^ pp_expr ifso)) and ifnot = string "else" ^^ group (nest 2 (break 1 ^^ pp_expr ifnot)) in test ^/^ ifso ^/^ ifnot @@ -237,12 +254,12 @@ and pp_conditional {value; _} = let test = string "if " ^^ group (nest 3 (pp_expr test)) and ifso = string "then" ^^ group (nest 2 (break 1 ^^ pp_if_clause ifso)) and ifnot = match ifnot with - ClauseInstr i -> + ClauseInstr _ | ClauseBlock LongBlock _ -> string "else" - ^^ group (nest 2 (break 1 ^^ pp_instruction i)) - | ClauseBlock b -> + ^^ group (nest 2 (break 1 ^^ pp_if_clause ifnot)) + | ClauseBlock ShortBlock _ -> string "else {" - ^^ group (nest 2 (hardline ^^ pp_clause_block b)) + ^^ group (nest 2 (hardline ^^ pp_if_clause ifnot)) ^^ hardline ^^ string "}" in test ^/^ ifso ^/^ ifnot @@ -252,21 +269,23 @@ and pp_if_clause = function and pp_clause_block = function LongBlock b -> pp_block b -| ShortBlock {value; _} -> Utils.(pp_statements <@ fst) value.inside +| ShortBlock b -> Utils.(pp_statements <@ fst) b.value.inside -and pp_set_membership {value; _} = string "TODO:pp_set_membership" +and pp_set_membership {value; _} = + let {set; element; _} = value in + pp_expr set ^/^ string "contains" ^/^ pp_expr element -and pp_case : - 'a.('a -> document) -> 'a case Region.reg -> document = +and pp_case : 'a.('a -> document) -> 'a case Region.reg -> document = fun printer {value; _} -> - let {expr; cases; _} = value in - group (string "case " ^^ nest 5 (pp_expr expr) ^/^ string "of [") - ^^ hardline ^^ pp_cases printer cases - ^^ hardline ^^ string "]" + let {expr; cases; _} = value in + group (string "case " ^^ nest 5 (pp_expr expr) ^/^ string "of [") + ^^ hardline ^^ pp_cases printer cases + ^^ hardline ^^ string "]" and pp_cases : 'a.('a -> document) -> - ('a case_clause reg, vbar) Utils.nsepseq Region.reg -> document = + ('a case_clause reg, vbar) Utils.nsepseq Region.reg -> + document = fun printer {value; _} -> let head, tail = value in let head = pp_case_clause printer head in @@ -296,12 +315,22 @@ and pp_loop = function and pp_while_loop {value; _} = string "TODO:pp_while_loop" and pp_for_loop = function - ForInt l -> pp_for_int l + ForInt l -> pp_for_int l | ForCollect l -> pp_for_collect l -and pp_for_int {value; _} = string "TODO:pp_for_int" +and pp_for_int {value; _} = + let {assign; bound; step; block; _} = value in + let step = + match step with + None -> empty + | Some (_, e) -> prefix 2 1 (string " step") (pp_expr e) in + prefix 2 1 (string "for") (pp_var_assign assign) + ^^ prefix 2 1 (string " to") (pp_expr bound) + ^^ step ^^ hardline ^^ pp_block block -and pp_var_assign {value; _} = string "TODO:pp_var_assign" +and pp_var_assign {value; _} = + let {name; expr; _} = value in + prefix 2 1 (pp_ident name ^^ string " :=") (pp_expr expr) and pp_for_collect {value; _} = string "TODO:pp_for_collect" @@ -336,12 +365,12 @@ and pp_expr = function and pp_annot_expr {value; _} = let expr, _, type_expr = value.inside in - group (string "(" ^^ nest 1 (pp_expr expr ^/^ string ": " - ^^ pp_type_expr type_expr ^^ string ")")) + group (string "(" ^^ nest 1 (pp_expr expr ^/^ string ": " + ^^ pp_type_expr type_expr ^^ string ")")) and pp_set_expr = function - SetInj inj -> string "TODO:pp_set_expr:SetInj" -| SetMem mem -> string "TODO:pp_set_expr:SetMem" + SetInj inj -> pp_injection pp_expr inj +| SetMem mem -> pp_set_membership mem and pp_map_expr = function MapLookUp fetch -> pp_map_lookup fetch @@ -397,8 +426,8 @@ and pp_mutez {value; _} = Z.to_string (snd value) ^ "mutez" |> string and pp_string_expr = function - Cat e -> pp_bin_op "^" e -| String e -> pp_string e + Cat e -> pp_bin_op "^" e +| String e -> pp_string e | Verbatim e -> pp_verbatim e and pp_ident {value; _} = string value @@ -408,13 +437,13 @@ and pp_string s = string "\"" ^^ pp_ident s ^^ string "\"" and pp_verbatim s = string "{|" ^^ pp_ident s ^^ string "|}" and pp_list_expr = function - ECons e -> pp_bin_op "#" e + ECons e -> pp_bin_op "#" e | EListComp e -> group (pp_injection pp_expr e) -| ENil _ -> string "nil" +| ENil _ -> string "nil" and pp_constr_expr = function - SomeApp a -> pp_some_app a -| NoneExpr _ -> string "None" + SomeApp a -> pp_some_app a +| NoneExpr _ -> string "None" | ConstrApp a -> pp_constr_app a and pp_some_app {value; _} = string "TODO:pp_some_app" @@ -488,9 +517,9 @@ and pp_ne_injection : let elements = pp_nsepseq ";" printer ne_elements in let kwd = pp_ne_injection_kwd kind in let offset = String.length kwd + 2 in - string (kwd ^ " [") - ^^ group (nest 2 (break 0 ^^ elements )) - ^^ break 0 ^^ string "]" + group (string (kwd ^ " [") + ^^ group (nest 2 (break 0 ^^ elements )) + ^^ break 0 ^^ string "]") and pp_ne_injection_kwd = function NEInjAttr _ -> "attributes" @@ -500,9 +529,9 @@ and pp_ne_injection_kwd = function and pp_nsepseq : 'a.string -> - ('a -> document) -> - ('a, t) Utils.nsepseq -> - document = + ('a -> document) -> + ('a, t) Utils.nsepseq -> + document = fun sep printer elements -> let elems = Utils.nsepseq_to_list elements and sep = string sep ^^ break 1 From 534447dc9e7bc90c0cb00cefce7f653e1274c453 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Mon, 8 Jun 2020 00:19:05 +0200 Subject: [PATCH 3/6] More printers. --- src/passes/01-parser/pascaligo/AST.ml | 4 +- src/passes/01-parser/pascaligo/Parser.mly | 4 +- src/passes/01-parser/pascaligo/ParserLog.ml | 8 +-- src/passes/01-parser/pascaligo/Pretty.ml | 72 ++++++++++++++------- 4 files changed, 58 insertions(+), 30 deletions(-) diff --git a/src/passes/01-parser/pascaligo/AST.ml b/src/passes/01-parser/pascaligo/AST.ml index 5625b250c..a028fbdcd 100644 --- a/src/passes/01-parser/pascaligo/AST.ml +++ b/src/passes/01-parser/pascaligo/AST.ml @@ -543,7 +543,7 @@ and constr_expr = and field_assign = { field_name : field_name; - equal : equal; + assignment : equal; field_expr : expr } @@ -563,7 +563,7 @@ and update = { and field_path_assign = { field_path : (field_name, dot) nsepseq; - equal : equal; + assignment : equal; field_expr : expr } diff --git a/src/passes/01-parser/pascaligo/Parser.mly b/src/passes/01-parser/pascaligo/Parser.mly index d5cc773fe..ebdc4d2a8 100644 --- a/src/passes/01-parser/pascaligo/Parser.mly +++ b/src/passes/01-parser/pascaligo/Parser.mly @@ -976,7 +976,7 @@ update_record: field_assignment: field_name "=" expr { let region = cover $1.region (expr_to_region $3) - and value = {field_name=$1; equal=$2; field_expr=$3} + and value = {field_name=$1; assignment=$2; field_expr=$3} in {region; value} } field_path_assignment: @@ -984,7 +984,7 @@ field_path_assignment: let start = nsepseq_to_region (fun x -> x.region) $1 and stop = expr_to_region $3 in let region = cover start stop - and value = {field_path=$1; equal=$2; field_expr=$3} + and value = {field_path=$1; assignment=$2; field_expr=$3} in {region; value} } fun_call: diff --git a/src/passes/01-parser/pascaligo/ParserLog.ml b/src/passes/01-parser/pascaligo/ParserLog.ml index 0d28c2705..da2f1ac75 100644 --- a/src/passes/01-parser/pascaligo/ParserLog.ml +++ b/src/passes/01-parser/pascaligo/ParserLog.ml @@ -619,15 +619,15 @@ and print_record_expr state = print_ne_injection state print_field_assign and print_field_assign state {value; _} = - let {field_name; equal; field_expr} = value in + let {field_name; assignment; field_expr} = value in print_var state field_name; - print_token state equal "="; + print_token state assignment "="; print_expr state field_expr and print_field_path_assign state {value; _} = - let {field_path; equal; field_expr} = value in + let {field_path; assignment; field_expr} = value in print_nsepseq state "field_path" print_var field_path; - print_token state equal "="; + print_token state assignment "="; print_expr state field_expr and print_update_expr state {value; _} = diff --git a/src/passes/01-parser/pascaligo/Pretty.ml b/src/passes/01-parser/pascaligo/Pretty.ml index 69ca98130..462901e00 100644 --- a/src/passes/01-parser/pascaligo/Pretty.ml +++ b/src/passes/01-parser/pascaligo/Pretty.ml @@ -243,7 +243,7 @@ and pp_record_patch {value; _} = ^^ group (nest 2 (break 1 ^^ inj)) and pp_cond_expr {value; _} = - let {test; ifso; kwd_else; ifnot; _} : cond_expr = value in + let {test; ifso; ifnot; _} : cond_expr = value in let test = string "if " ^^ group (nest 3 (pp_expr test)) and ifso = string "then" ^^ group (nest 2 (break 1 ^^ pp_expr ifso)) and ifnot = string "else" ^^ group (nest 2 (break 1 ^^ pp_expr ifnot)) @@ -272,8 +272,8 @@ and pp_clause_block = function | ShortBlock b -> Utils.(pp_statements <@ fst) b.value.inside and pp_set_membership {value; _} = - let {set; element; _} = value in - pp_expr set ^/^ string "contains" ^/^ pp_expr element + let {set; element; _} : set_membership = value in + group (pp_expr set ^/^ string "contains" ^/^ pp_expr element) and pp_case : 'a.('a -> document) -> 'a case Region.reg -> document = fun printer {value; _} -> @@ -312,7 +312,9 @@ and pp_loop = function While l -> pp_while_loop l | For f -> pp_for_loop f -and pp_while_loop {value; _} = string "TODO:pp_while_loop" +and pp_while_loop {value; _} = + let {cond; block; _} = value in + prefix 2 1 (string "while") (pp_expr cond) ^^ hardline ^^ pp_block block and pp_for_loop = function ForInt l -> pp_for_int l @@ -332,7 +334,15 @@ and pp_var_assign {value; _} = let {name; expr; _} = value in prefix 2 1 (pp_ident name ^^ string " :=") (pp_expr expr) -and pp_for_collect {value; _} = string "TODO:pp_for_collect" +and pp_for_collect {value; _} = + let {var; bind_to; collection; expr; block; _} = value in + let binding = + match bind_to with + None -> pp_ident var + | Some (_, dest) -> pp_ident var ^^ string " -> " ^^ pp_ident dest in + prefix 2 1 (string "for") binding + ^^ prefix 2 1 (string " in") (pp_collection collection ^/^ pp_expr expr) + ^^ hardline ^^ pp_block block and pp_collection = function Map _ -> string "map" @@ -374,8 +384,8 @@ and pp_set_expr = function and pp_map_expr = function MapLookUp fetch -> pp_map_lookup fetch -| MapInj inj -> group (pp_injection pp_binding inj) -| BigMapInj inj -> group (pp_injection pp_binding inj) +| MapInj inj -> pp_injection pp_binding inj +| BigMapInj inj -> pp_injection pp_binding inj and pp_map_lookup {value; _} = prefix 2 1 (pp_path value.path) (pp_brackets pp_expr value.index) @@ -438,7 +448,7 @@ and pp_verbatim s = string "{|" ^^ pp_ident s ^^ string "|}" and pp_list_expr = function ECons e -> pp_bin_op "#" e -| EListComp e -> group (pp_injection pp_expr e) +| EListComp e -> pp_injection pp_expr e | ENil _ -> string "nil" and pp_constr_expr = function @@ -463,7 +473,12 @@ and pp_projection {value; _} = and pp_update {value; _} = string "TODO:pp_update" -and pp_field_path_assign {value; _} = string "TODO:pp_field_path_assign" +and pp_field_path_assign {value; _} = + let {field_path; field_expr; _} = value in + let fields = Utils.nsepseq_to_list field_path + and sep = string "." ^^ break 0 in + let fields = separate_map sep pp_ident fields in + group (fields ^^ nest 2 (break 1 ^^ string "= " ^^ pp_expr field_expr)) and pp_selection = function FieldName v -> string v.value @@ -494,15 +509,13 @@ and pp_arguments v = pp_tuple_expr v and pp_injection : 'a.('a -> document) -> 'a injection reg -> document = fun printer {value; _} -> - let {kind; enclosing; elements; _} = value in + let {kind; elements; _} = value in let sep = string ";" ^^ break 1 in let elements = Utils.sepseq_to_list elements in let elements = separate_map sep printer elements in let kwd = pp_injection_kwd kind in - let offset = String.length kwd + 2 in - string (kwd ^ " [") - ^^ group (nest 2 (break 0 ^^ elements)) - ^^ break 0 ^^ string "]" + group (string (kwd ^ " [") + ^^ nest 2 (break 0 ^^ elements) ^^ break 0 ^^ string "]") and pp_injection_kwd = function InjSet _ -> "set" @@ -513,10 +526,9 @@ and pp_injection_kwd = function and pp_ne_injection : 'a.('a -> document) -> 'a ne_injection reg -> document = fun printer {value; _} -> - let {kind; enclosing; ne_elements; _} = value in + let {kind; ne_elements; _} = value in let elements = pp_nsepseq ";" printer ne_elements in let kwd = pp_ne_injection_kwd kind in - let offset = String.length kwd + 2 in group (string (kwd ^ " [") ^^ group (nest 2 (break 0 ^^ elements )) ^^ break 0 ^^ string "]") @@ -570,9 +582,24 @@ and pp_constr_pattern = function and pp_psome {value=_, p; _} = prefix 4 1 (string "Some") (pp_par pp_pattern p) -and pp_pconstr_app {value; _} = string "TODO:pp_pconstr_app" +and pp_pconstr_app {value; _} = + match value with + constr, None -> pp_ident constr + | constr, Some ptuple -> + prefix 4 1 (pp_ident constr) (pp_tuple_pattern ptuple) -and pp_tuple_pattern {value; _} = string "TODO:tuple_pattern" +and pp_tuple_pattern {value; _} = + let head, tail = value.inside in + let rec app = function + [] -> empty + | [e] -> group (break 1 ^^ pp_pattern e) + | e::items -> + group (break 1 ^^ pp_pattern e ^^ string ",") ^^ app items in + let components = + if tail = [] + then pp_pattern head + else pp_pattern head ^^ string "," ^^ app (List.map snd tail) + in string "(" ^^ nest 1 (components ^^ string ")") and pp_list_pattern = function PListComp cmp -> pp_list_comp cmp @@ -580,8 +607,9 @@ and pp_list_pattern = function | PParCons p -> pp_ppar_cons p | PCons p -> nest 4 (pp_nsepseq " #" pp_pattern p.value) -and pp_list_comp e = group (pp_injection pp_pattern e) +and pp_list_comp e = pp_injection pp_pattern e -and pp_ppar_cons {value; _} = string "TODO:pp_ppar_cons" - -and pp_cons {value; _} = string "TODO:pp_cons" +and pp_ppar_cons {value; _} = + let patt1, _, patt2 = value.inside in + let comp = prefix 2 1 (pp_pattern patt1 ^^ string " ::") (pp_pattern patt2) + in string "(" ^^ nest 1 (comp ^^ string ")") From 8d291b2d2e4d79ae91885085f5c79f5021cdaaa6 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Mon, 8 Jun 2020 11:59:58 +0200 Subject: [PATCH 4/6] Finished v1 of PascaLIGO pretty-printer. --- src/passes/01-parser/cameligo/Pretty.ml | 4 +- src/passes/01-parser/pascaligo/Pretty.ml | 30 ++++--- src/passes/01-parser/pascaligo/Tests/pp.ligo | 40 +++++---- src/passes/1-parser/cameligo/Tests/pp.mligo | 29 ------- src/passes/1-parser/pascaligo/Tests/pp.ligo | 91 -------------------- 5 files changed, 44 insertions(+), 150 deletions(-) delete mode 100644 src/passes/1-parser/cameligo/Tests/pp.mligo delete mode 100644 src/passes/1-parser/pascaligo/Tests/pp.ligo diff --git a/src/passes/01-parser/cameligo/Pretty.ml b/src/passes/01-parser/cameligo/Pretty.ml index 8fa298e3f..ba8451d52 100644 --- a/src/passes/01-parser/cameligo/Pretty.ml +++ b/src/passes/01-parser/cameligo/Pretty.ml @@ -72,9 +72,9 @@ and pp_pattern = function and pp_pconstr = function PNone _ -> string "None" | PSomeApp p -> pp_patt_some p -| PConstrApp a -> pp_patt_c_app a +| PConstrApp a -> pp_pconstr_app a -and pp_patt_c_app {value; _} = +and pp_pconstr_app {value; _} = match value with constr, None -> pp_ident constr | constr, Some pat -> diff --git a/src/passes/01-parser/pascaligo/Pretty.ml b/src/passes/01-parser/pascaligo/Pretty.ml index 462901e00..ecf7d0d44 100644 --- a/src/passes/01-parser/pascaligo/Pretty.ml +++ b/src/passes/01-parser/pascaligo/Pretty.ml @@ -148,7 +148,7 @@ and pp_fun_decl {value; _} = None -> empty | Some a -> hardline ^^ pp_attr_decl a in prefix 2 1 start parameters - ^^ group (nest 2 (break 1 ^^ string ": " ^^ return_t ^^ string " is")) + ^^ group (nest 2 (break 1 ^^ string ": " ^^ nest 2 return_t ^^ string " is")) ^^ body ^^ attr and pp_parameters p = pp_nsepseq ";" pp_param_decl p @@ -456,11 +456,20 @@ and pp_constr_expr = function | NoneExpr _ -> string "None" | ConstrApp a -> pp_constr_app a -and pp_some_app {value; _} = string "TODO:pp_some_app" +and pp_some_app {value; _} = + prefix 4 1 (string "Some") (pp_arguments (snd value)) -and pp_constr_app {value; _} = string "TODO:pp_constr_app" +and pp_constr_app {value; _} = + let constr, args = value in + let constr = string constr.value in + match args with + None -> constr + | Some tuple -> prefix 2 1 constr (pp_tuple_expr tuple) -and pp_field_assign {value; _} = string "TODO:pp_field_assign" + +and pp_field_assign {value; _} = + let {field_name; field_expr; _} = value in + prefix 2 1 (pp_ident field_name ^^ string " =") (pp_expr field_expr) and pp_record ne_inj = group (pp_ne_injection pp_field_assign ne_inj) @@ -471,7 +480,11 @@ and pp_projection {value; _} = let fields = separate_map sep pp_selection fields in group (pp_ident struct_name ^^ string "." ^^ break 0 ^^ fields) -and pp_update {value; _} = string "TODO:pp_update" +and pp_update {value; _} = + let {record; updates; _} = value in + let updates = group (pp_ne_injection pp_field_path_assign updates) + and record = pp_path record in + record ^^ string " with" ^^ nest 2 (break 1 ^^ updates) and pp_field_path_assign {value; _} = let {field_path; field_expr; _} = value in @@ -540,10 +553,7 @@ and pp_ne_injection_kwd = function | NEInjRecord _ -> "record" and pp_nsepseq : - 'a.string -> - ('a -> document) -> - ('a, t) Utils.nsepseq -> - document = + 'a.string -> ('a -> document) -> ('a, t) Utils.nsepseq -> document = fun sep printer elements -> let elems = Utils.nsepseq_to_list elements and sep = string sep ^^ break 1 @@ -596,7 +606,7 @@ and pp_tuple_pattern {value; _} = | e::items -> group (break 1 ^^ pp_pattern e ^^ string ",") ^^ app items in let components = - if tail = [] + if tail = [] then pp_pattern head else pp_pattern head ^^ string "," ^^ app (List.map snd tail) in string "(" ^^ nest 1 (components ^^ string ")") diff --git a/src/passes/01-parser/pascaligo/Tests/pp.ligo b/src/passes/01-parser/pascaligo/Tests/pp.ligo index da28debcd..2dd2563df 100644 --- a/src/passes/01-parser/pascaligo/Tests/pp.ligo +++ b/src/passes/01-parser/pascaligo/Tests/pp.ligo @@ -1,19 +1,23 @@ +function incr_map (const l : list (int)) : list (int) is + List.map (function (const i : int) : int is i + 1, l) + type t is timestamp * nat -> map (string, address) type u is A | B of t * int | C of int -> (string -> int) type v is record aaaaaa : ttttttt; bbbbbb : record ccccccccc : string end end -(* + function back (var store : store) : list (operation) * store is begin - var operations : list (operation) := list []; - const a : nat = 0n; - x0 := record foo = "1"; bar = 4n end; - x1 := nil; - x2 := list end; + var operations : list (operation) := list []; + const operations : list (operation) = list []; + const a : nat = 0n; + x0 := record foo = "1"; bar = 4n end; + x1 := nil; + x2 := list end; x3 := 3#4# list [5; 6]; case foo of 10n -> skip end; - if s contains x then skip else skip; +if saaa.0.1.2.a.b.b.x contains xxxxxxxxxxxxxxx[123] then skip else skip; s := set [3_000mutez; -2; 1n]; a := A; b := B (a); @@ -21,12 +25,12 @@ function back (var store : store) : list (operation) * store is d := None; e := Some (a, B (b)); z := z.1.2; - x := map [1 -> "1"; 2 -> "2"]; +x := if true then map [1 -> "1"; 2 -> "2"; 3 -> "3"; 4 -> "4"; 5 -> "5555555555555555"] else Unit; y := a.b.c[3]; a := "hello " ^ "world" ^ "!"; - r := record a = 0 end; - r := r with record a = 42 end; - patch store.backers with set [(1); f(2*3)]; + r := record aaaaaaaaaaaa = 100000000; bbbbbbb = ffffff (2, aa, x, y) + 1 end; + r := r with record aaaaaaaaaaa = 444442; bbbbbbbbb = 43 + f (z) / 234 end; + patch store.backers.8.aa.33333.5 with set [(1); f(2*3); 123124234/2345]; remove (1,2,3) from set foo.bar; remove 3 from map foo.bar; patch store.backers with map [sender -> amount]; @@ -39,7 +43,7 @@ function back (var store : store) : list (operation) * store is begin acc := 2 - (if toggle then f(x) else Unit); end; - for i := 1n to 10n + for i := 1n to 10n step 2n begin acc := acc + i; end; @@ -53,10 +57,11 @@ function back (var store : store) : list (operation) * store is | False#True#Unit#0xAA#"hi"#4#nil -> skip ] end with (operations, store, (more_stuff, and_here_too)) -*) + function claim (var store : store; const bar : t; const baz : u; var z : operations * store * (more_stuff * and_here_too)) : list (operation) * store * timestamp * nat -> map (string, address) is begin - var operations : list (operation * map (address, map (longname, domain))) := nilllllllllll; + const operations : list (operation * map (address, map (longname, domain))) = nilllllllllll; +var operations : list (operation * map (address, map (longname, domain))) := nilllllllllll; attributes ["foo"; "inline"]; if now <= store.deadline then failwith ("Too soon.") @@ -64,20 +69,20 @@ function back (var store : store) : list (operation) * store is case store.backers[sender] of None -> failwith ("Not a backer.") + | Some (0) -> skip | Some (quantity) -> if balance >= store.goal or store.funded then failwith ("Goal reached: no refund.") else begin - operations.0.foo := list [transaction (unit, sender, quantity)]; - remove sender from map store.backers + operations.0.foo := list [transaction (unit, sender, quantity); transaction (foo, bar, bazzzzzzzzzzzzzzz)]; + remove sender.0099999.fffff [fiar (abaxxasfdf)] from map store.backers.foooooo.barrrrr.01.bazzzzzzz end end end with long_function_name (operations, store, (more_stuff, (and_here_too, well_in_here_too), hello)) attributes ["inline"; "foo"] -(* function withdraw (var store : store) : list (operation) * store is begin var operations : list (operation) := list end; @@ -95,4 +100,3 @@ function withdraw (var store : store) : list (operation) * store is nil -> (operations, (store : store)) | _ -> (operations, store) end -*) diff --git a/src/passes/1-parser/cameligo/Tests/pp.mligo b/src/passes/1-parser/cameligo/Tests/pp.mligo deleted file mode 100644 index d84c270aa..000000000 --- a/src/passes/1-parser/cameligo/Tests/pp.mligo +++ /dev/null @@ -1,29 +0,0 @@ -type q = {a: int; b: {c: string}} -type r = int list -type s = (int, address) map -type t = int -type u = {a: int; b: t * char} -type v = int * (string * address) -type w = timestamp * nat -> (string, address) map -type x = A | B of t * int | C of int -> (string -> int) - -let x = 4 -let y : t = (if true then -3 + f x x else 0) - 1 -let f (x: int) y = (x : int) -let z : (t) = y -let w = - match f 3 with - None -> [] - | Some (1::[2;3]) -> [4;5]::[] -let n : nat = 0n -let a = A -let b = B a -let c = C (a, B (a)) -let d = None -let e = Some (a, B b) -let z = z.1.2 -let v = "hello" ^ "world" ^ "!" -let w = Map.literal [(1,"1"); (2,"2")] - -let r = { field = 0} -let r = { r with field = 42} diff --git a/src/passes/1-parser/pascaligo/Tests/pp.ligo b/src/passes/1-parser/pascaligo/Tests/pp.ligo deleted file mode 100644 index f4b185f69..000000000 --- a/src/passes/1-parser/pascaligo/Tests/pp.ligo +++ /dev/null @@ -1,91 +0,0 @@ -type t is timestamp * nat -> map (string, address) -type u is A | B of t * int | C of int -> (string -> int) -type v is record a : t; b : record c : string end end - -function back (var store : store) : list (operation) * store is - var operations : list (operation) := list [] - begin - const a : nat = 0n; - x0 := record foo = "1"; bar = 4n end; - x1 := nil; - x2 := list end; - x3 := 3#4# list [5; 6]; - case foo of - 10n -> skip - end; - if s contains x then skip else skip; - s := set [3_000mtz; -2; 1n]; - a := A; - b := B (a); - c := C (a, B (a)); - d := None; - e := Some (a, B (b)); - z := z.1.2; - x := map [1 -> "1"; 2 -> "2"]; - y := a.b.c[3]; - a := "hello " ^ "world" ^ "!"; - patch store.backers with set [(1); f(2*3)]; - remove (1,2,3) from set foo.bar; - remove 3 from map foo.bar; - patch store.backers with map [sender -> amount]; - if now > store.deadline and (not True) then - begin - f (x,1); - for k -> d : int * string in map m block { skip }; - for x : int in set s block { skip }; - while i < 10n - begin - acc := 2 - (if toggle then f(x) else Unit); - end; - for i := 1n to 10n - begin - acc := acc + i; - end; - failwith ("Deadline passed"); - end - else - case store.backers[sender] of [ - None -> store.0.backers[sender] := amount - | Some (_) -> skip - | B (x, C (y,z)) -> skip - | False#True#Unit#0xAA#"hi"#4#nil -> skip - ] - end with (operations, store) - -function claim (var store : store) : list (operation) * store is - var operations : list (operation) := nil - begin - if now <= store.deadline then - failwith ("Too soon.") - else - case store.backers[sender] of - None -> - failwith ("Not a backer.") - | Some (amount) -> - if balance >= store.goal or store.funded then - failwith ("Goal reached: no refund.") - else - begin - operations.0.foo := list [transaction (unit, sender, amount)]; - remove sender from map store.backers - end - end - end with (operations, store) - -function withdraw (var store : store) : list (operation) * store is - var operations : list (operation) := list end - begin - if sender = owner then - if now >= store.deadline then - if balance >= store.goal then { -// store.funded := True; - patch store with record funded = True; a = b end; - operations := list [Transfer (owner, balance)]; - }; - else failwith ("Below target.") - else failwith ("Too soon."); - else skip - end with case (foo: bar) of - nil -> (operations, (store : store)) - | _ -> (operations, store) - end From 2d65ba638e0ef270556bbcb4f5563b4f94add234 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Mon, 8 Jun 2020 12:06:19 +0200 Subject: [PATCH 5/6] Updated syntax error messages. --- .../cameligo/error.messages.checked-in | 29 +- .../pascaligo/error.messages.checked-in | 2512 ++++++++--------- 2 files changed, 1227 insertions(+), 1314 deletions(-) diff --git a/src/passes/01-parser/cameligo/error.messages.checked-in b/src/passes/01-parser/cameligo/error.messages.checked-in index c3ac95367..49c957c75 100644 --- a/src/passes/01-parser/cameligo/error.messages.checked-in +++ b/src/passes/01-parser/cameligo/error.messages.checked-in @@ -2380,14 +2380,14 @@ interactive_expr: LBRACKET With -interactive_expr: LPAR Verbatim COLON String VBAR +interactive_expr: LPAR Verbatim COLON Ident VBAR ## -## Ends in an error in state: 582. +## Ends in an error in state: 583. ## -## par(__anonymous_1) -> LPAR expr COLON type_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 LT LPAR LE LBRACKET LBRACE Int In Ident GT GE False End Else EQ EOF Constr CONS COMMA COLON CAT Bytes Begin BOOL_OR BOOL_AND Attr ] ## ## The known suffix of the stack is as follows: -## LPAR expr COLON type_expr +## LPAR annot_expr ## ## WARNING: This example involves spurious reductions. ## This implies that, although the LR(1) items shown above provide an @@ -2396,6 +2396,7 @@ interactive_expr: LPAR Verbatim COLON String 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 582, spurious reduction of production annot_expr -> expr COLON type_expr ## @@ -2404,10 +2405,10 @@ interactive_expr: LPAR Verbatim COLON With ## ## Ends in an error in state: 581. ## -## par(__anonymous_1) -> LPAR expr COLON . type_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 ] +## annot_expr -> expr COLON . type_expr [ RPAR ] ## ## The known suffix of the stack is as follows: -## LPAR expr COLON +## expr COLON ## @@ -2416,7 +2417,7 @@ interactive_expr: LPAR Verbatim With ## ## Ends in an error in state: 579. ## -## par(__anonymous_1) -> LPAR expr . COLON type_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 ] +## 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 ] ## ## The known suffix of the stack is as follows: @@ -2446,7 +2447,7 @@ interactive_expr: LPAR With ## ## Ends in an error in state: 167. ## -## par(__anonymous_1) -> LPAR . expr COLON type_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 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 ] ## @@ -3753,7 +3754,7 @@ interactive_expr: Verbatim WILD interactive_expr: Verbatim With ## -## Ends in an error in state: 599. +## Ends in an error in state: 600. ## ## interactive_expr -> expr . EOF [ # ] ## @@ -3782,7 +3783,7 @@ interactive_expr: Verbatim With interactive_expr: With ## -## Ends in an error in state: 597. +## Ends in an error in state: 598. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -4228,7 +4229,7 @@ contract: Let LPAR With contract: Let Rec WILD EQ Bytes With ## -## Ends in an error in state: 586. +## Ends in an error in state: 587. ## ## let_declaration -> Let Rec let_binding . seq(Attr) [ Type Let EOF ] ## @@ -4353,7 +4354,7 @@ contract: Let WILD EQ Bytes Attr With contract: Let WILD EQ Bytes With ## -## Ends in an error in state: 588. +## Ends in an error in state: 589. ## ## let_declaration -> Let let_binding . seq(Attr) [ Type Let EOF ] ## @@ -4489,7 +4490,7 @@ contract: Type Ident EQ Constr With contract: Type Ident EQ Ident VBAR ## -## Ends in an error in state: 594. +## Ends in an error in state: 595. ## ## declarations -> declaration . [ EOF ] ## declarations -> declaration . declarations [ EOF ] @@ -4505,7 +4506,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 590, spurious reduction of production declaration -> type_decl +## In state 591, spurious reduction of production declaration -> type_decl ## diff --git a/src/passes/01-parser/pascaligo/error.messages.checked-in b/src/passes/01-parser/pascaligo/error.messages.checked-in index 45dbffc55..4704c00cd 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 Unit ARROW Bytes End +interactive_expr: BigMap LBRACKET Verbatim ARROW Bytes End ## -## Ends in an error in state: 151. +## Ends in an error in state: 147. ## ## 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,26 +11,26 @@ interactive_expr: BigMap LBRACKET Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr -## In state 249, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 245, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr +## In state 245, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 241, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## interactive_expr: BigMap LBRACKET With ## -## Ends in an error in state: 144. +## Ends in an error in state: 140. ## ## 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 ] @@ -41,9 +41,9 @@ interactive_expr: BigMap LBRACKET With -interactive_expr: BigMap Unit ARROW Bytes RBRACKET +interactive_expr: BigMap Verbatim ARROW Bytes RBRACKET ## -## Ends in an error in state: 257. +## Ends in an error in state: 253. ## ## 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 ] ## @@ -54,26 +54,26 @@ interactive_expr: BigMap Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr -## In state 249, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 245, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr +## In state 245, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 241, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## interactive_expr: BigMap With ## -## Ends in an error in state: 143. +## Ends in an error in state: 139. ## ## 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 ] @@ -88,7 +88,7 @@ interactive_expr: BigMap With interactive_expr: C_Some With ## -## Ends in an error in state: 139. +## Ends in an error in state: 135. ## ## 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 ] ## @@ -98,9 +98,9 @@ interactive_expr: C_Some With -interactive_expr: Case Unit Of C_Some LPAR WILD With +interactive_expr: Case Verbatim Of C_Some LPAR WILD With ## -## Ends in an error in state: 285. +## Ends in an error in state: 281. ## ## par(core_pattern) -> LPAR core_pattern . RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -110,9 +110,9 @@ interactive_expr: Case Unit Of C_Some LPAR WILD With -interactive_expr: Case Unit Of C_Some LPAR With +interactive_expr: Case Verbatim Of C_Some LPAR With ## -## Ends in an error in state: 277. +## Ends in an error in state: 273. ## ## par(core_pattern) -> LPAR . core_pattern RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -122,9 +122,9 @@ interactive_expr: Case Unit Of C_Some LPAR With -interactive_expr: Case Unit Of C_Some With +interactive_expr: Case Verbatim Of C_Some With ## -## Ends in an error in state: 276. +## Ends in an error in state: 272. ## ## constr_pattern -> C_Some . par(core_pattern) [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -134,9 +134,9 @@ interactive_expr: Case Unit Of C_Some With -interactive_expr: Case Unit Of Constr LPAR WILD With +interactive_expr: Case Verbatim Of Constr LPAR WILD With ## -## Ends in an error in state: 291. +## Ends in an error in state: 287. ## ## nsepseq(core_pattern,COMMA) -> core_pattern . [ RPAR ] ## nsepseq(core_pattern,COMMA) -> core_pattern . COMMA nsepseq(core_pattern,COMMA) [ RPAR ] @@ -147,9 +147,9 @@ interactive_expr: Case Unit Of Constr LPAR WILD With -interactive_expr: Case Unit Of Constr LPAR With +interactive_expr: Case Verbatim Of Constr LPAR With ## -## Ends in an error in state: 275. +## Ends in an error in state: 271. ## ## par(nsepseq(core_pattern,COMMA)) -> LPAR . nsepseq(core_pattern,COMMA) RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -159,9 +159,9 @@ interactive_expr: Case Unit Of Constr LPAR With -interactive_expr: Case Unit Of Constr With +interactive_expr: Case Verbatim Of Constr With ## -## Ends in an error in state: 274. +## Ends in an error in state: 270. ## ## constr_pattern -> Constr . tuple_pattern [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## constr_pattern -> Constr . [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] @@ -172,9 +172,9 @@ interactive_expr: Case Unit Of Constr With -interactive_expr: Case Unit Of LBRACKET VBAR Block +interactive_expr: Case Verbatim Of LBRACKET VBAR Block ## -## Ends in an error in state: 262. +## Ends in an error in state: 258. ## ## 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 ] ## @@ -184,9 +184,9 @@ interactive_expr: Case Unit Of LBRACKET VBAR Block -interactive_expr: Case Unit Of LBRACKET WILD ARROW Bytes End +interactive_expr: Case Verbatim Of LBRACKET WILD ARROW Bytes End ## -## Ends in an error in state: 326. +## Ends in an error in state: 322. ## ## 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 ] ## @@ -197,26 +197,26 @@ interactive_expr: Case Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 324, spurious reduction of production case_clause(expr) -> pattern ARROW expr -## In state 328, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) -## In state 325, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 320, spurious reduction of production case_clause(expr) -> pattern ARROW expr +## In state 324, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) +## In state 321, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) ## -interactive_expr: Case Unit Of LBRACKET With +interactive_expr: Case Verbatim Of LBRACKET With ## -## Ends in an error in state: 261. +## Ends in an error in state: 257. ## ## 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 ] ## @@ -226,9 +226,9 @@ interactive_expr: Case Unit Of LBRACKET With -interactive_expr: Case Unit Of LPAR WILD COMMA With +interactive_expr: Case Verbatim Of LPAR WILD COMMA With ## -## Ends in an error in state: 292. +## Ends in an error in state: 288. ## ## nsepseq(core_pattern,COMMA) -> core_pattern COMMA . nsepseq(core_pattern,COMMA) [ RPAR ] ## @@ -238,9 +238,9 @@ interactive_expr: Case Unit Of LPAR WILD COMMA With -interactive_expr: Case Unit Of LPAR WILD CONS Bytes ARROW +interactive_expr: Case Verbatim Of LPAR WILD CONS Bytes ARROW ## -## Ends in an error in state: 304. +## Ends in an error in state: 300. ## ## par(cons_pattern) -> LPAR cons_pattern . RPAR [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -251,15 +251,15 @@ interactive_expr: Case Unit 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 298, spurious reduction of production pattern -> core_pattern -## In state 297, spurious reduction of production cons_pattern -> core_pattern CONS pattern +## In state 294, spurious reduction of production pattern -> core_pattern +## In state 293, spurious reduction of production cons_pattern -> core_pattern CONS pattern ## -interactive_expr: Case Unit Of LPAR WILD CONS With +interactive_expr: Case Verbatim Of LPAR WILD CONS With ## -## Ends in an error in state: 296. +## Ends in an error in state: 292. ## ## cons_pattern -> core_pattern CONS . pattern [ RPAR ] ## @@ -269,9 +269,9 @@ interactive_expr: Case Unit Of LPAR WILD CONS With -interactive_expr: Case Unit Of LPAR WILD With +interactive_expr: Case Verbatim Of LPAR WILD With ## -## Ends in an error in state: 295. +## Ends in an error in state: 291. ## ## cons_pattern -> core_pattern . CONS pattern [ RPAR ] ## nsepseq(core_pattern,COMMA) -> core_pattern . [ RPAR ] @@ -283,9 +283,9 @@ interactive_expr: Case Unit Of LPAR WILD With -interactive_expr: Case Unit Of LPAR With +interactive_expr: Case Verbatim Of LPAR With ## -## Ends in an error in state: 270. +## Ends in an error in state: 266. ## ## 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 ] @@ -296,9 +296,9 @@ interactive_expr: Case Unit Of LPAR With -interactive_expr: Case Unit Of List LBRACKET WILD End +interactive_expr: Case Verbatim Of List LBRACKET WILD End ## -## Ends in an error in state: 308. +## Ends in an error in state: 304. ## ## injection(List,core_pattern) -> List LBRACKET sep_or_term_list(core_pattern,SEMI) . RBRACKET [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -309,15 +309,15 @@ interactive_expr: Case Unit 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 312, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern -## In state 311, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) +## In state 308, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern +## In state 307, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) ## -interactive_expr: Case Unit Of List LBRACKET With +interactive_expr: Case Verbatim Of List LBRACKET With ## -## Ends in an error in state: 306. +## Ends in an error in state: 302. ## ## 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 ] @@ -328,9 +328,9 @@ interactive_expr: Case Unit Of List LBRACKET With -interactive_expr: Case Unit Of List WILD RBRACKET +interactive_expr: Case Verbatim Of List WILD RBRACKET ## -## Ends in an error in state: 320. +## Ends in an error in state: 316. ## ## injection(List,core_pattern) -> List sep_or_term_list(core_pattern,SEMI) . End [ SEMI RPAR RBRACKET End CONS COMMA ARROW ] ## @@ -341,15 +341,15 @@ interactive_expr: Case Unit 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 312, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern -## In state 311, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) +## In state 308, spurious reduction of production nsepseq(core_pattern,SEMI) -> core_pattern +## In state 307, spurious reduction of production sep_or_term_list(core_pattern,SEMI) -> nsepseq(core_pattern,SEMI) ## -interactive_expr: Case Unit Of List WILD SEMI WILD SEMI With +interactive_expr: Case Verbatim Of List WILD SEMI WILD SEMI With ## -## Ends in an error in state: 317. +## Ends in an error in state: 313. ## ## 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 ] @@ -360,9 +360,9 @@ interactive_expr: Case Unit Of List WILD SEMI WILD SEMI With -interactive_expr: Case Unit Of List WILD SEMI WILD With +interactive_expr: Case Verbatim Of List WILD SEMI WILD With ## -## Ends in an error in state: 316. +## Ends in an error in state: 312. ## ## nsepseq(core_pattern,SEMI) -> core_pattern . [ RBRACKET End ] ## nsepseq(core_pattern,SEMI) -> core_pattern . SEMI nsepseq(core_pattern,SEMI) [ RBRACKET End ] @@ -374,9 +374,9 @@ interactive_expr: Case Unit Of List WILD SEMI WILD With -interactive_expr: Case Unit Of List WILD SEMI With +interactive_expr: Case Verbatim Of List WILD SEMI With ## -## Ends in an error in state: 313. +## Ends in an error in state: 309. ## ## 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 ] @@ -387,9 +387,9 @@ interactive_expr: Case Unit Of List WILD SEMI With -interactive_expr: Case Unit Of List WILD With +interactive_expr: Case Verbatim Of List WILD With ## -## Ends in an error in state: 312. +## Ends in an error in state: 308. ## ## nsepseq(core_pattern,SEMI) -> core_pattern . [ RBRACKET End ] ## nsepseq(core_pattern,SEMI) -> core_pattern . SEMI nsepseq(core_pattern,SEMI) [ RBRACKET End ] @@ -401,9 +401,9 @@ interactive_expr: Case Unit Of List WILD With -interactive_expr: Case Unit Of List With +interactive_expr: Case Verbatim Of List With ## -## Ends in an error in state: 269. +## Ends in an error in state: 265. ## ## 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 ] @@ -416,9 +416,9 @@ interactive_expr: Case Unit Of List With -interactive_expr: Case Unit Of VBAR Block +interactive_expr: Case Verbatim Of VBAR Block ## -## Ends in an error in state: 331. +## Ends in an error in state: 327. ## ## 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 ] ## @@ -428,9 +428,9 @@ interactive_expr: Case Unit Of VBAR Block -interactive_expr: Case Unit Of WILD ARROW Bytes RBRACKET +interactive_expr: Case Verbatim Of WILD ARROW Bytes RBRACKET ## -## Ends in an error in state: 332. +## Ends in an error in state: 328. ## ## 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 ] ## @@ -441,26 +441,26 @@ interactive_expr: Case Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 324, spurious reduction of production case_clause(expr) -> pattern ARROW expr -## In state 328, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) -## In state 325, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 320, spurious reduction of production case_clause(expr) -> pattern ARROW expr +## In state 324, spurious reduction of production nsepseq(case_clause(expr),VBAR) -> case_clause(expr) +## In state 321, spurious reduction of production cases(expr) -> nsepseq(case_clause(expr),VBAR) ## -interactive_expr: Case Unit Of WILD ARROW Bytes Type +interactive_expr: Case Verbatim Of WILD ARROW Bytes Type ## -## Ends in an error in state: 328. +## Ends in an error in state: 324. ## ## 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 ] @@ -472,24 +472,24 @@ interactive_expr: Case Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 324, spurious reduction of production case_clause(expr) -> pattern ARROW expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 320, spurious reduction of production case_clause(expr) -> pattern ARROW expr ## -interactive_expr: Case Unit Of WILD ARROW Bytes VBAR With +interactive_expr: Case Verbatim Of WILD ARROW Bytes VBAR With ## -## Ends in an error in state: 329. +## Ends in an error in state: 325. ## ## nsepseq(case_clause(expr),VBAR) -> case_clause(expr) VBAR . nsepseq(case_clause(expr),VBAR) [ RBRACKET End ] ## @@ -499,9 +499,9 @@ interactive_expr: Case Unit Of WILD ARROW Bytes VBAR With -interactive_expr: Case Unit Of WILD ARROW With +interactive_expr: Case Verbatim Of WILD ARROW With ## -## Ends in an error in state: 323. +## Ends in an error in state: 319. ## ## case_clause(expr) -> pattern ARROW . expr [ VBAR RBRACKET End ] ## @@ -511,9 +511,9 @@ interactive_expr: Case Unit Of WILD ARROW With -interactive_expr: Case Unit Of WILD CONS WILD CONS With +interactive_expr: Case Verbatim Of WILD CONS WILD CONS With ## -## Ends in an error in state: 302. +## Ends in an error in state: 298. ## ## nsepseq(core_pattern,CONS) -> core_pattern CONS . nsepseq(core_pattern,CONS) [ RPAR ARROW ] ## @@ -523,9 +523,9 @@ interactive_expr: Case Unit Of WILD CONS WILD CONS With -interactive_expr: Case Unit Of WILD CONS WILD With +interactive_expr: Case Verbatim Of WILD CONS WILD With ## -## Ends in an error in state: 301. +## Ends in an error in state: 297. ## ## nsepseq(core_pattern,CONS) -> core_pattern . [ RPAR ARROW ] ## nsepseq(core_pattern,CONS) -> core_pattern . CONS nsepseq(core_pattern,CONS) [ RPAR ARROW ] @@ -536,9 +536,9 @@ interactive_expr: Case Unit Of WILD CONS WILD With -interactive_expr: Case Unit Of WILD CONS With +interactive_expr: Case Verbatim Of WILD CONS With ## -## Ends in an error in state: 299. +## Ends in an error in state: 295. ## ## pattern -> core_pattern CONS . nsepseq(core_pattern,CONS) [ RPAR ARROW ] ## @@ -548,9 +548,9 @@ interactive_expr: Case Unit Of WILD CONS With -interactive_expr: Case Unit Of WILD RPAR +interactive_expr: Case Verbatim Of WILD RPAR ## -## Ends in an error in state: 322. +## Ends in an error in state: 318. ## ## case_clause(expr) -> pattern . ARROW expr [ VBAR RBRACKET End ] ## @@ -561,14 +561,14 @@ interactive_expr: Case Unit 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 298, spurious reduction of production pattern -> core_pattern +## In state 294, spurious reduction of production pattern -> core_pattern ## -interactive_expr: Case Unit Of WILD With +interactive_expr: Case Verbatim Of WILD With ## -## Ends in an error in state: 298. +## Ends in an error in state: 294. ## ## pattern -> core_pattern . [ RPAR ARROW ] ## pattern -> core_pattern . CONS nsepseq(core_pattern,CONS) [ RPAR ARROW ] @@ -579,9 +579,9 @@ interactive_expr: Case Unit Of WILD With -interactive_expr: Case Unit Of With +interactive_expr: Case Verbatim Of With ## -## Ends in an error in state: 260. +## Ends in an error in state: 256. ## ## 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 ] @@ -592,9 +592,9 @@ interactive_expr: Case Unit Of With -interactive_expr: Case Unit VBAR +interactive_expr: Case Verbatim VBAR ## -## Ends in an error in state: 259. +## Ends in an error in state: 255. ## ## 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 ] @@ -606,23 +606,23 @@ interactive_expr: Case Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## interactive_expr: Case With ## -## Ends in an error in state: 138. +## Ends in an error in state: 134. ## ## 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 ] @@ -635,7 +635,7 @@ interactive_expr: Case With interactive_expr: Constr DOT And With ## -## Ends in an error in state: 176. +## Ends in an error in state: 173. ## ## 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 ] @@ -648,7 +648,7 @@ interactive_expr: Constr DOT And With interactive_expr: Constr DOT Ident DOT With ## -## Ends in an error in state: 127. +## Ends in an error in state: 123. ## ## 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 ] ## @@ -660,7 +660,7 @@ interactive_expr: Constr DOT Ident DOT With interactive_expr: Constr DOT Ident With ## -## Ends in an error in state: 126. +## Ends in an error in state: 122. ## ## 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 ] @@ -673,7 +673,7 @@ interactive_expr: Constr DOT Ident With interactive_expr: Constr DOT With ## -## Ends in an error in state: 122. +## Ends in an error in state: 118. ## ## 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 ] @@ -686,7 +686,7 @@ interactive_expr: Constr DOT With interactive_expr: Constr With ## -## Ends in an error in state: 121. +## Ends in an error in state: 117. ## ## 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 ] @@ -699,9 +699,9 @@ interactive_expr: Constr With -interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON Ident Is With +interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON String Is With ## -## Ends in an error in state: 119. +## 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 ] ## @@ -711,9 +711,9 @@ interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON Ident Is With -interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON Ident VBAR +interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON String VBAR ## -## Ends in an error in state: 118. +## 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 ] ## @@ -724,17 +724,16 @@ interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## 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 ## interactive_expr: Function LPAR Const Ident COLON Ident RPAR COLON With ## -## Ends in an error in state: 117. +## 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 ] ## @@ -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: 116. +## 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 ] ## @@ -758,7 +757,7 @@ interactive_expr: Function LPAR Const Ident COLON Ident RPAR With interactive_expr: Function LPAR Const Ident COLON With ## -## Ends in an error in state: 78. +## Ends in an error in state: 79. ## ## param_decl -> Const Ident COLON . param_type [ SEMI RPAR ] ## @@ -770,7 +769,7 @@ interactive_expr: Function LPAR Const Ident COLON With interactive_expr: Function LPAR Const Ident With ## -## Ends in an error in state: 77. +## Ends in an error in state: 78. ## ## param_decl -> Const Ident . COLON param_type [ SEMI RPAR ] ## @@ -782,7 +781,7 @@ interactive_expr: Function LPAR Const Ident With interactive_expr: Function LPAR Const With ## -## Ends in an error in state: 76. +## Ends in an error in state: 77. ## ## param_decl -> Const . Ident COLON param_type [ SEMI RPAR ] ## @@ -794,7 +793,7 @@ interactive_expr: Function LPAR Const With interactive_expr: Function LPAR Var Ident COLON Ident SEMI With ## -## Ends in an error in state: 81. +## Ends in an error in state: 82. ## ## nsepseq(param_decl,SEMI) -> param_decl SEMI . nsepseq(param_decl,SEMI) [ RPAR ] ## @@ -806,7 +805,7 @@ interactive_expr: Function LPAR Var Ident COLON Ident SEMI With interactive_expr: Function LPAR Var Ident COLON Ident VBAR ## -## Ends in an error in state: 80. +## Ends in an error in state: 81. ## ## nsepseq(param_decl,SEMI) -> param_decl . [ RPAR ] ## nsepseq(param_decl,SEMI) -> param_decl . SEMI nsepseq(param_decl,SEMI) [ RPAR ] @@ -818,18 +817,18 @@ interactive_expr: Function LPAR Var Ident COLON 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 75, spurious reduction of production param_type -> fun_type -## In state 74, spurious reduction of production param_decl -> Var Ident COLON param_type +## In state 16, spurious reduction of production core_type -> Ident +## In state 30, spurious reduction of production cartesian -> core_type +## In state 36, spurious reduction of production fun_type -> cartesian +## In state 76, spurious reduction of production param_type -> fun_type +## In state 75, spurious reduction of production param_decl -> Var Ident COLON param_type ## interactive_expr: Function LPAR Var Ident COLON With ## -## Ends in an error in state: 73. +## Ends in an error in state: 74. ## ## param_decl -> Var Ident COLON . param_type [ SEMI RPAR ] ## @@ -841,7 +840,7 @@ interactive_expr: Function LPAR Var Ident COLON With interactive_expr: Function LPAR Var Ident With ## -## Ends in an error in state: 72. +## Ends in an error in state: 73. ## ## param_decl -> Var Ident . COLON param_type [ SEMI RPAR ] ## @@ -853,7 +852,7 @@ interactive_expr: Function LPAR Var Ident With interactive_expr: Function LPAR Var With ## -## Ends in an error in state: 71. +## Ends in an error in state: 72. ## ## param_decl -> Var . Ident COLON param_type [ SEMI RPAR ] ## @@ -865,7 +864,7 @@ interactive_expr: Function LPAR Var With interactive_expr: Function LPAR With ## -## Ends in an error in state: 70. +## Ends in an error in state: 71. ## ## par(nsepseq(param_decl,SEMI)) -> LPAR . nsepseq(param_decl,SEMI) RPAR [ COLON ] ## @@ -877,7 +876,7 @@ interactive_expr: Function LPAR With interactive_expr: Function With ## -## Ends in an error in state: 115. +## Ends in an error in state: 111. ## ## 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: 154. +## Ends in an error in state: 150. ## ## 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 130, spurious reduction of production nsepseq(selection,DOT) -> selection -## In state 342, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) +## In state 126, spurious reduction of production nsepseq(selection,DOT) -> selection +## In state 338, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) ## interactive_expr: Ident DOT Int DOT With ## -## Ends in an error in state: 131. +## Ends in an error in state: 127. ## ## 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: 130. +## Ends in an error in state: 126. ## ## 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: 341. +## Ends in an error in state: 337. ## ## 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 ] ## @@ -944,9 +943,9 @@ interactive_expr: Ident DOT With -interactive_expr: Ident LBRACKET Unit VBAR +interactive_expr: Ident LBRACKET Verbatim VBAR ## -## Ends in an error in state: 241. +## Ends in an error in state: 237. ## ## 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 Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## interactive_expr: Ident LBRACKET With ## -## Ends in an error in state: 240. +## Ends in an error in state: 236. ## ## 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 ] ## @@ -983,9 +982,9 @@ interactive_expr: Ident LBRACKET With -interactive_expr: Ident LPAR Unit COMMA With +interactive_expr: Ident LPAR Verbatim COMMA With ## -## Ends in an error in state: 339. +## Ends in an error in state: 335. ## ## nsepseq(expr,COMMA) -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] ## @@ -995,9 +994,9 @@ interactive_expr: Ident LPAR Unit COMMA With -interactive_expr: Ident LPAR Unit VBAR +interactive_expr: Ident LPAR Verbatim VBAR ## -## Ends in an error in state: 338. +## Ends in an error in state: 334. ## ## nsepseq(expr,COMMA) -> expr . [ RPAR ] ## nsepseq(expr,COMMA) -> expr . COMMA nsepseq(expr,COMMA) [ RPAR ] @@ -1009,23 +1008,23 @@ interactive_expr: Ident LPAR Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## interactive_expr: Ident LPAR With ## -## Ends in an error in state: 114. +## Ends in an error in state: 110. ## ## 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: 113. +## Ends in an error in state: 109. ## ## 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 Ident DOT With ## -## Ends in an error in state: 162. +## Ends in an error in state: 158. ## ## nsepseq(field_name,DOT) -> Ident DOT . nsepseq(field_name,DOT) [ EQ ] ## @@ -1064,7 +1063,7 @@ interactive_expr: Ident With Record Ident DOT With interactive_expr: Ident With Record Ident EQ Bytes RBRACKET ## -## Ends in an error in state: 237. +## Ends in an error in state: 233. ## ## 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 ] ## @@ -1075,26 +1074,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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 -> nsepseq(field_name,DOT) EQ expr -## In state 230, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment -## In state 167, spurious reduction of production sep_or_term_list(field_path_assignment,SEMI) -> nsepseq(field_path_assignment,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 190, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) EQ expr +## In state 226, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment +## In state 163, 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: 235. +## Ends in an error in state: 231. ## ## 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 ] @@ -1107,7 +1106,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: 234. +## Ends in an error in state: 230. ## ## 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 ] @@ -1120,24 +1119,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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 -> nsepseq(field_name,DOT) EQ expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 190, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) EQ expr ## interactive_expr: Ident With Record Ident EQ Bytes SEMI With ## -## Ends in an error in state: 231. +## Ends in an error in state: 227. ## ## 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 ] @@ -1150,7 +1149,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: 230. +## Ends in an error in state: 226. ## ## 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 ] @@ -1163,24 +1162,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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 -> nsepseq(field_name,DOT) EQ expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 190, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) EQ expr ## interactive_expr: Ident With Record Ident EQ With ## -## Ends in an error in state: 169. +## Ends in an error in state: 165. ## ## field_path_assignment -> nsepseq(field_name,DOT) EQ . expr [ SEMI RBRACKET End ] ## @@ -1192,7 +1191,7 @@ interactive_expr: Ident With Record Ident EQ With interactive_expr: Ident With Record Ident With ## -## Ends in an error in state: 161. +## Ends in an error in state: 157. ## ## nsepseq(field_name,DOT) -> Ident . [ EQ ] ## nsepseq(field_name,DOT) -> Ident . DOT nsepseq(field_name,DOT) [ EQ ] @@ -1205,7 +1204,7 @@ interactive_expr: Ident With Record Ident With interactive_expr: Ident With Record LBRACKET Ident EQ Bytes End ## -## Ends in an error in state: 164. +## Ends in an error in state: 160. ## ## 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 ] ## @@ -1216,26 +1215,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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 -> nsepseq(field_name,DOT) EQ expr -## In state 230, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment -## In state 167, spurious reduction of production sep_or_term_list(field_path_assignment,SEMI) -> nsepseq(field_path_assignment,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 190, spurious reduction of production field_path_assignment -> nsepseq(field_name,DOT) EQ expr +## In state 226, spurious reduction of production nsepseq(field_path_assignment,SEMI) -> field_path_assignment +## In state 163, 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: 160. +## Ends in an error in state: 156. ## ## 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 ] ## @@ -1247,7 +1246,7 @@ interactive_expr: Ident With Record LBRACKET With interactive_expr: Ident With Record With ## -## Ends in an error in state: 159. +## Ends in an error in state: 155. ## ## 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 ] @@ -1260,7 +1259,7 @@ interactive_expr: Ident With Record With interactive_expr: Ident With With ## -## Ends in an error in state: 158. +## Ends in an error in state: 154. ## ## 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 ] ## @@ -1270,9 +1269,9 @@ interactive_expr: Ident With With -interactive_expr: If Unit Then Unit Else With +interactive_expr: If Verbatim Then Verbatim Else With ## -## Ends in an error in state: 348. +## 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 ] ## @@ -1282,9 +1281,9 @@ interactive_expr: If Unit Then Unit Else With -interactive_expr: If Unit Then Unit SEMI EQ +interactive_expr: If Verbatim Then Verbatim SEMI EQ ## -## Ends in an error in state: 347. +## Ends in an error in state: 343. ## ## 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 ] ## @@ -1294,9 +1293,9 @@ interactive_expr: If Unit Then Unit SEMI EQ -interactive_expr: If Unit Then Unit VBAR +interactive_expr: If Verbatim Then Verbatim VBAR ## -## Ends in an error in state: 346. +## Ends in an error in state: 342. ## ## 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 ] ## @@ -1307,23 +1306,23 @@ interactive_expr: If Unit Then Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -interactive_expr: If Unit Then With +interactive_expr: If Verbatim Then With ## -## Ends in an error in state: 345. +## Ends in an error in state: 341. ## ## 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 ] ## @@ -1333,9 +1332,9 @@ interactive_expr: If Unit Then With -interactive_expr: If Unit VBAR +interactive_expr: If Verbatim VBAR ## -## Ends in an error in state: 344. +## Ends in an error in state: 340. ## ## 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 ] ## @@ -1346,23 +1345,23 @@ interactive_expr: If Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## interactive_expr: If With ## -## Ends in an error in state: 112. +## Ends in an error in state: 108. ## ## 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 ] ## @@ -1374,7 +1373,7 @@ interactive_expr: If With interactive_expr: LPAR Bytes RPAR With ## -## Ends in an error in state: 171. +## Ends in an error in state: 167. ## ## 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 ] ## @@ -1384,9 +1383,9 @@ interactive_expr: LPAR Bytes RPAR With -interactive_expr: LPAR If Unit Then Bytes Else Bytes VBAR +interactive_expr: LPAR If Verbatim Then Bytes Else Bytes VBAR ## -## Ends in an error in state: 352. +## Ends in an error in state: 348. ## ## 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 ] @@ -1398,58 +1397,59 @@ interactive_expr: LPAR If Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 345, spurious reduction of production cond_expr -> If expr Then expr option(SEMI) Else expr +## In state 224, spurious reduction of production expr -> cond_expr ## -interactive_expr: LPAR Unit COLON Ident VBAR +interactive_expr: LPAR Verbatim COLON Ident VBAR ## -## Ends in an error in state: 358. +## Ends in an error in state: 355. ## -## annot_expr -> LPAR disj_expr COLON type_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(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 ] ## ## The known suffix of the stack is as follows: -## LPAR disj_expr COLON type_expr +## LPAR annot_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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## In state 16, spurious reduction of production core_type -> Ident +## 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 354, spurious reduction of production annot_expr -> disj_expr COLON type_expr ## -interactive_expr: LPAR Unit COLON With +interactive_expr: LPAR Verbatim COLON With ## -## Ends in an error in state: 357. +## Ends in an error in state: 353. ## -## annot_expr -> LPAR disj_expr COLON . type_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 ] +## annot_expr -> disj_expr COLON . type_expr [ RPAR ] ## ## The known suffix of the stack is as follows: -## LPAR disj_expr COLON +## disj_expr COLON ## -interactive_expr: LPAR Unit COMMA With +interactive_expr: LPAR Verbatim COMMA With ## -## Ends in an error in state: 354. +## Ends in an error in state: 350. ## ## tuple_comp -> expr COMMA . nsepseq(expr,COMMA) [ RPAR ] ## @@ -1459,39 +1459,39 @@ interactive_expr: LPAR Unit COMMA With -interactive_expr: LPAR Unit VBAR +interactive_expr: LPAR Verbatim VBAR ## -## Ends in an error in state: 356. +## Ends in an error in state: 352. ## -## annot_expr -> LPAR disj_expr . COLON type_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 ] +## annot_expr -> disj_expr . COLON type_expr [ RPAR ] ## disj_expr -> disj_expr . Or conj_expr [ RPAR Or COMMA COLON ] ## expr -> disj_expr . [ RPAR COMMA ] ## ## The known suffix of the stack is as follows: -## LPAR disj_expr +## disj_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 147, 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 149, spurious reduction of production conj_expr -> set_membership -## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr ## interactive_expr: LPAR With ## -## Ends in an error in state: 110. +## Ends in an error in state: 106. ## -## annot_expr -> LPAR . disj_expr COLON type_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(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 ] ## par(tuple_comp) -> LPAR . tuple_comp 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 ] ## @@ -1501,9 +1501,9 @@ interactive_expr: LPAR With -interactive_expr: List LBRACKET Unit End +interactive_expr: List LBRACKET Verbatim End ## -## Ends in an error in state: 362. +## Ends in an error in state: 359. ## ## 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 ] ## @@ -1514,25 +1514,25 @@ interactive_expr: List LBRACKET Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 366, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 365, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 363, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 362, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## interactive_expr: List LBRACKET With ## -## Ends in an error in state: 360. +## Ends in an error in state: 357. ## ## 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 ] @@ -1543,9 +1543,9 @@ interactive_expr: List LBRACKET With -interactive_expr: List Unit RBRACKET +interactive_expr: List Verbatim RBRACKET ## -## Ends in an error in state: 374. +## Ends in an error in state: 371. ## ## 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 ] ## @@ -1556,25 +1556,25 @@ interactive_expr: List Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 366, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 365, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 363, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 362, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## interactive_expr: List With ## -## Ends in an error in state: 109. +## Ends in an error in state: 105. ## ## 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 ] ## injection(List,expr) -> List . 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 ] @@ -1589,7 +1589,7 @@ interactive_expr: List With interactive_expr: MINUS With ## -## Ends in an error in state: 108. +## Ends in an error in state: 104. ## ## unary_expr -> MINUS . 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 ] ## @@ -1599,9 +1599,9 @@ interactive_expr: MINUS With -interactive_expr: Map LBRACKET Unit ARROW Bytes End +interactive_expr: Map LBRACKET Verbatim ARROW Bytes End ## -## Ends in an error in state: 379. +## Ends in an error in state: 376. ## ## 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 ] ## @@ -1612,26 +1612,26 @@ interactive_expr: Map LBRACKET Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr -## In state 249, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 245, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr +## In state 245, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 241, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## interactive_expr: Map LBRACKET With ## -## Ends in an error in state: 377. +## Ends in an error in state: 374. ## ## 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 ] @@ -1642,9 +1642,9 @@ interactive_expr: Map LBRACKET With -interactive_expr: Map Unit ARROW Bytes RBRACKET +interactive_expr: Map Verbatim ARROW Bytes RBRACKET ## -## Ends in an error in state: 382. +## Ends in an error in state: 379. ## ## 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 ] ## @@ -1655,26 +1655,26 @@ interactive_expr: Map Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr -## In state 249, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 245, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr +## In state 245, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 241, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## -interactive_expr: Map Unit ARROW Bytes SEMI Unit ARROW Bytes SEMI With +interactive_expr: Map Verbatim ARROW Bytes SEMI Verbatim ARROW Bytes SEMI With ## -## Ends in an error in state: 254. +## Ends in an error in state: 250. ## ## nsepseq(binding,SEMI) -> binding SEMI . nsepseq(binding,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(binding,SEMI)) -> binding SEMI . seq(__anonymous_0(binding,SEMI)) [ RBRACKET End ] @@ -1685,9 +1685,9 @@ interactive_expr: Map Unit ARROW Bytes SEMI Unit ARROW Bytes SEMI With -interactive_expr: Map Unit ARROW Bytes SEMI Unit ARROW Bytes VBAR +interactive_expr: Map Verbatim ARROW Bytes SEMI Verbatim ARROW Bytes VBAR ## -## Ends in an error in state: 253. +## Ends in an error in state: 249. ## ## nsepseq(binding,SEMI) -> binding . [ RBRACKET End ] ## nsepseq(binding,SEMI) -> binding . SEMI nsepseq(binding,SEMI) [ RBRACKET End ] @@ -1700,24 +1700,24 @@ interactive_expr: Map Unit ARROW Bytes SEMI Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr ## -interactive_expr: Map Unit ARROW Bytes SEMI With +interactive_expr: Map Verbatim ARROW Bytes SEMI With ## -## Ends in an error in state: 250. +## Ends in an error in state: 246. ## ## nsepseq(binding,SEMI) -> binding SEMI . nsepseq(binding,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(binding,SEMI)) -> binding SEMI . seq(__anonymous_0(binding,SEMI)) [ RBRACKET End ] @@ -1728,9 +1728,9 @@ interactive_expr: Map Unit ARROW Bytes SEMI With -interactive_expr: Map Unit ARROW Bytes VBAR +interactive_expr: Map Verbatim ARROW Bytes VBAR ## -## Ends in an error in state: 249. +## Ends in an error in state: 245. ## ## nsepseq(binding,SEMI) -> binding . [ RBRACKET End ] ## nsepseq(binding,SEMI) -> binding . SEMI nsepseq(binding,SEMI) [ RBRACKET End ] @@ -1743,24 +1743,24 @@ interactive_expr: Map Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr ## -interactive_expr: Map Unit ARROW With +interactive_expr: Map Verbatim ARROW With ## -## Ends in an error in state: 247. +## Ends in an error in state: 243. ## ## binding -> expr ARROW . expr [ SEMI RBRACKET End ] ## @@ -1770,9 +1770,9 @@ interactive_expr: Map Unit ARROW With -interactive_expr: Map Unit VBAR +interactive_expr: Map Verbatim VBAR ## -## Ends in an error in state: 246. +## Ends in an error in state: 242. ## ## binding -> expr . ARROW expr [ SEMI RBRACKET End ] ## @@ -1783,23 +1783,23 @@ interactive_expr: Map Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## interactive_expr: Map With ## -## Ends in an error in state: 107. +## Ends in an error in state: 103. ## ## 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 ] ## injection(Map,binding) -> Map . 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 ] @@ -1814,7 +1814,7 @@ interactive_expr: Map With interactive_expr: Not Bytes With ## -## Ends in an error in state: 173. +## Ends in an error in state: 170. ## ## 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 ] @@ -1829,7 +1829,7 @@ interactive_expr: Not Bytes With interactive_expr: Not With ## -## Ends in an error in state: 103. +## Ends in an error in state: 99. ## ## unary_expr -> Not . 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 ] ## @@ -1841,7 +1841,7 @@ interactive_expr: Not With interactive_expr: Record Ident EQ Bytes RBRACKET ## -## Ends in an error in state: 397. +## Ends in an error in state: 394. ## ## 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 ] ## @@ -1852,26 +1852,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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 385, spurious reduction of production field_assignment -> Ident EQ expr -## In state 390, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 389, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 382, spurious reduction of production field_assignment -> Ident EQ expr +## In state 387, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 386, 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: 395. +## Ends in an error in state: 392. ## ## 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 ] @@ -1884,7 +1884,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: 394. +## Ends in an error in state: 391. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACKET End ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACKET End ] @@ -1897,24 +1897,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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 385, spurious reduction of production field_assignment -> Ident EQ expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 382, spurious reduction of production field_assignment -> Ident EQ expr ## interactive_expr: Record Ident EQ Bytes SEMI With ## -## Ends in an error in state: 391. +## Ends in an error in state: 388. ## ## 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 ] @@ -1927,7 +1927,7 @@ interactive_expr: Record Ident EQ Bytes SEMI With interactive_expr: Record Ident EQ Bytes VBAR ## -## Ends in an error in state: 390. +## Ends in an error in state: 387. ## ## nsepseq(field_assignment,SEMI) -> field_assignment . [ RBRACKET End ] ## nsepseq(field_assignment,SEMI) -> field_assignment . SEMI nsepseq(field_assignment,SEMI) [ RBRACKET End ] @@ -1940,24 +1940,24 @@ 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 385, spurious reduction of production field_assignment -> Ident EQ expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 382, spurious reduction of production field_assignment -> Ident EQ expr ## interactive_expr: Record Ident EQ With ## -## Ends in an error in state: 102. +## Ends in an error in state: 98. ## ## field_assignment -> Ident EQ . expr [ SEMI RBRACKET End ] ## @@ -1969,7 +1969,7 @@ interactive_expr: Record Ident EQ With interactive_expr: Record Ident With ## -## Ends in an error in state: 101. +## Ends in an error in state: 97. ## ## field_assignment -> Ident . EQ expr [ SEMI RBRACKET End ] ## @@ -1981,7 +1981,7 @@ interactive_expr: Record Ident With interactive_expr: Record LBRACKET Ident EQ Bytes End ## -## Ends in an error in state: 386. +## Ends in an error in state: 383. ## ## 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 ] ## @@ -1992,26 +1992,26 @@ 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 385, spurious reduction of production field_assignment -> Ident EQ expr -## In state 390, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 389, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 382, spurious reduction of production field_assignment -> Ident EQ expr +## In state 387, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 386, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) ## interactive_expr: Record LBRACKET With ## -## Ends in an error in state: 100. +## Ends in an error in state: 96. ## ## 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 ] ## @@ -2023,7 +2023,7 @@ interactive_expr: Record LBRACKET With interactive_expr: Record With ## -## Ends in an error in state: 99. +## Ends in an error in state: 95. ## ## 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 ] ## 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 ] @@ -2034,90 +2034,9 @@ interactive_expr: Record With -interactive_expr: Recursive Function LPAR Const Ident COLON Ident RPAR COLON Ident Is With +interactive_expr: Set LBRACKET Verbatim End ## -## Ends in an error in state: 98. -## -## fun_expr -> Recursive 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 ] -## -## The known suffix of the stack is as follows: -## Recursive Function parameters COLON type_expr Is -## - - - -interactive_expr: Recursive Function LPAR Const Ident COLON Ident RPAR COLON Ident VBAR -## -## Ends in an error in state: 97. -## -## fun_expr -> Recursive 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 ] -## -## The known suffix of the stack is as follows: -## Recursive Function parameters COLON type_expr -## -## WARNING: This example involves spurious reductions. -## This implies that, although the LR(1) items shown above provide an -## accurate view of the past (what has been recognized so far), they -## may provide an INCOMPLETE view of the future (what was expected next). -## In state 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type -## - - - -interactive_expr: Recursive Function LPAR Const Ident COLON Ident RPAR COLON With -## -## Ends in an error in state: 96. -## -## fun_expr -> Recursive 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 ] -## -## The known suffix of the stack is as follows: -## Recursive Function parameters COLON -## - - - -interactive_expr: Recursive Function LPAR Const Ident COLON Ident RPAR With -## -## Ends in an error in state: 95. -## -## fun_expr -> Recursive 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 ] -## -## The known suffix of the stack is as follows: -## Recursive Function parameters -## - - - -interactive_expr: Recursive Function With -## -## Ends in an error in state: 94. -## -## fun_expr -> Recursive 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 ] -## -## The known suffix of the stack is as follows: -## Recursive Function -## - - - -interactive_expr: Recursive With -## -## Ends in an error in state: 93. -## -## fun_expr -> Recursive . 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 ] -## -## The known suffix of the stack is as follows: -## Recursive -## - - - -interactive_expr: Set LBRACKET Unit End -## -## Ends in an error in state: 402. +## Ends in an error in state: 398. ## ## 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 ] ## @@ -2128,25 +2047,25 @@ interactive_expr: Set LBRACKET Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 366, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 365, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 363, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 362, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## interactive_expr: Set LBRACKET With ## -## Ends in an error in state: 400. +## Ends in an error in state: 396. ## ## 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 ] @@ -2157,9 +2076,9 @@ interactive_expr: Set LBRACKET With -interactive_expr: Set Unit RBRACKET +interactive_expr: Set Verbatim RBRACKET ## -## Ends in an error in state: 405. +## Ends in an error in state: 401. ## ## 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 ] ## @@ -2170,25 +2089,25 @@ interactive_expr: Set Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 366, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 365, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 363, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 362, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## -interactive_expr: Set Unit SEMI Unit SEMI With +interactive_expr: Set Verbatim SEMI Verbatim SEMI With ## -## Ends in an error in state: 371. +## Ends in an error in state: 368. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] @@ -2199,9 +2118,9 @@ interactive_expr: Set Unit SEMI Unit SEMI With -interactive_expr: Set Unit SEMI Unit VBAR +interactive_expr: Set Verbatim SEMI Verbatim VBAR ## -## Ends in an error in state: 370. +## Ends in an error in state: 367. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET End ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET End ] @@ -2214,23 +2133,23 @@ interactive_expr: Set Unit SEMI Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -interactive_expr: Set Unit SEMI With +interactive_expr: Set Verbatim SEMI With ## -## Ends in an error in state: 367. +## Ends in an error in state: 364. ## ## nsepseq(expr,SEMI) -> expr SEMI . nsepseq(expr,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(expr,SEMI)) -> expr SEMI . seq(__anonymous_0(expr,SEMI)) [ RBRACKET End ] @@ -2241,9 +2160,9 @@ interactive_expr: Set Unit SEMI With -interactive_expr: Set Unit VBAR +interactive_expr: Set Verbatim VBAR ## -## Ends in an error in state: 366. +## Ends in an error in state: 363. ## ## nsepseq(expr,SEMI) -> expr . [ RBRACKET End ] ## nsepseq(expr,SEMI) -> expr . SEMI nsepseq(expr,SEMI) [ RBRACKET End ] @@ -2256,23 +2175,23 @@ interactive_expr: Set Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## interactive_expr: Set With ## -## Ends in an error in state: 92. +## Ends in an error in state: 94. ## ## 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 ] ## injection(Set,expr) -> Set . 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 ] @@ -2285,9 +2204,9 @@ interactive_expr: Set With -interactive_expr: Unit And With +interactive_expr: Verbatim And With ## -## Ends in an error in state: 225. +## Ends in an error in state: 221. ## ## 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 ] ## @@ -2297,9 +2216,9 @@ interactive_expr: Unit And With -interactive_expr: Unit CAT With +interactive_expr: Verbatim CAT With ## -## Ends in an error in state: 201. +## Ends in an error in state: 197. ## ## 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 ] ## @@ -2309,9 +2228,9 @@ interactive_expr: Unit CAT With -interactive_expr: Unit COLON +interactive_expr: Verbatim COLON ## -## Ends in an error in state: 195. +## Ends in an error in state: 191. ## ## 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 ] @@ -2323,22 +2242,22 @@ interactive_expr: Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, spurious reduction of production conj_expr -> set_membership -## In state 227, spurious reduction of production disj_expr -> conj_expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr ## -interactive_expr: Unit CONS With +interactive_expr: Verbatim CONS With ## -## Ends in an error in state: 208. +## Ends in an error in state: 204. ## ## 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 ] ## @@ -2348,9 +2267,9 @@ interactive_expr: Unit CONS With -interactive_expr: Unit Contains With +interactive_expr: Verbatim Contains With ## -## Ends in an error in state: 198. +## Ends in an error in state: 194. ## ## 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 ] ## @@ -2360,9 +2279,9 @@ interactive_expr: Unit Contains With -interactive_expr: Unit EQ With +interactive_expr: Verbatim EQ With ## -## Ends in an error in state: 221. +## Ends in an error in state: 217. ## ## 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 ] ## @@ -2372,9 +2291,9 @@ interactive_expr: Unit EQ With -interactive_expr: Unit GE With +interactive_expr: Verbatim GE With ## -## Ends in an error in state: 219. +## Ends in an error in state: 215. ## ## 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 ] ## @@ -2384,9 +2303,9 @@ interactive_expr: Unit GE With -interactive_expr: Unit GT With +interactive_expr: Verbatim GT With ## -## Ends in an error in state: 217. +## Ends in an error in state: 213. ## ## 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 ] ## @@ -2396,9 +2315,9 @@ interactive_expr: Unit GT With -interactive_expr: Unit LE With +interactive_expr: Verbatim LE With ## -## Ends in an error in state: 215. +## Ends in an error in state: 211. ## ## 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 ] ## @@ -2408,9 +2327,9 @@ interactive_expr: Unit LE With -interactive_expr: Unit LT With +interactive_expr: Verbatim LT With ## -## Ends in an error in state: 213. +## Ends in an error in state: 209. ## ## 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 ] ## @@ -2420,9 +2339,9 @@ interactive_expr: Unit LT With -interactive_expr: Unit MINUS Unit With +interactive_expr: Verbatim MINUS Verbatim With ## -## Ends in an error in state: 207. +## Ends in an error in state: 203. ## ## 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 ] @@ -2435,9 +2354,9 @@ interactive_expr: Unit MINUS Unit With -interactive_expr: Unit MINUS With +interactive_expr: Verbatim MINUS With ## -## Ends in an error in state: 206. +## Ends in an error in state: 202. ## ## 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 ] ## @@ -2447,9 +2366,9 @@ interactive_expr: Unit MINUS With -interactive_expr: Unit Mod With +interactive_expr: Verbatim Mod With ## -## Ends in an error in state: 191. +## Ends in an error in state: 187. ## ## 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 ] ## @@ -2459,9 +2378,9 @@ interactive_expr: Unit Mod With -interactive_expr: Unit NE With +interactive_expr: Verbatim NE With ## -## Ends in an error in state: 211. +## Ends in an error in state: 207. ## ## 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 ] ## @@ -2471,9 +2390,9 @@ interactive_expr: Unit NE With -interactive_expr: Unit Or With +interactive_expr: Verbatim Or With ## -## Ends in an error in state: 196. +## Ends in an error in state: 192. ## ## 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 ] ## @@ -2483,9 +2402,9 @@ interactive_expr: Unit Or With -interactive_expr: Unit PLUS Unit With +interactive_expr: Verbatim PLUS Verbatim With ## -## Ends in an error in state: 205. +## Ends in an error in state: 201. ## ## 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 ] @@ -2498,9 +2417,9 @@ interactive_expr: Unit PLUS Unit With -interactive_expr: Unit PLUS With +interactive_expr: Verbatim PLUS With ## -## Ends in an error in state: 204. +## Ends in an error in state: 200. ## ## 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 ] ## @@ -2510,9 +2429,9 @@ interactive_expr: Unit PLUS With -interactive_expr: Unit SLASH With +interactive_expr: Verbatim SLASH With ## -## Ends in an error in state: 189. +## Ends in an error in state: 185. ## ## 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 ] ## @@ -2522,9 +2441,9 @@ interactive_expr: Unit SLASH With -interactive_expr: Unit TIMES With +interactive_expr: Verbatim TIMES With ## -## Ends in an error in state: 174. +## Ends in an error in state: 171. ## ## 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 ] ## @@ -2534,9 +2453,9 @@ interactive_expr: Unit TIMES With -interactive_expr: Unit VBAR +interactive_expr: Verbatim VBAR ## -## Ends in an error in state: 607. +## Ends in an error in state: 603. ## ## interactive_expr -> expr . EOF [ # ] ## @@ -2547,23 +2466,23 @@ interactive_expr: Unit 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -interactive_expr: Unit With +interactive_expr: Verbatim With ## -## Ends in an error in state: 197. +## Ends in an error in state: 193. ## ## 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 ] @@ -2576,7 +2495,7 @@ interactive_expr: Unit With interactive_expr: With ## -## Ends in an error in state: 605. +## Ends in an error in state: 601. ## ## interactive_expr' -> . interactive_expr [ # ] ## @@ -2588,7 +2507,7 @@ interactive_expr: With contract: Attributes LBRACKET String End ## -## Ends in an error in state: 551. +## 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 ] ## @@ -2599,15 +2518,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 543, spurious reduction of production nsepseq(String,SEMI) -> String -## In state 554, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) +## In state 539, spurious reduction of production nsepseq(String,SEMI) -> String +## In state 550, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) ## contract: Attributes LBRACKET With ## -## Ends in an error in state: 550. +## 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 ] ## @@ -2619,7 +2538,7 @@ contract: Attributes LBRACKET With contract: Attributes String End Attributes String End SEMI With ## -## Ends in an error in state: 600. +## Ends in an error in state: 596. ## ## seq(declaration) -> declaration . seq(declaration) [ EOF ] ## @@ -2631,7 +2550,7 @@ contract: Attributes String End Attributes String End SEMI With contract: Attributes String End SEMI With ## -## Ends in an error in state: 598. +## Ends in an error in state: 594. ## ## nseq(declaration) -> declaration . seq(declaration) [ EOF ] ## @@ -2643,7 +2562,7 @@ contract: Attributes String End SEMI With contract: Attributes String End With ## -## Ends in an error in state: 593. +## Ends in an error in state: 589. ## ## attr_decl -> open_attr_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -2655,7 +2574,7 @@ contract: Attributes String End With contract: Attributes String RBRACKET ## -## Ends in an error in state: 555. +## Ends in an error in state: 551. ## ## ne_injection(Attributes,String) -> Attributes sep_or_term_list(String,SEMI) . End [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2666,15 +2585,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 543, spurious reduction of production nsepseq(String,SEMI) -> String -## In state 554, spurious reduction of production sep_or_term_list(String,SEMI) -> nsepseq(String,SEMI) +## In state 539, spurious reduction of production nsepseq(String,SEMI) -> String +## In state 550, 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: 546. +## Ends in an error in state: 542. ## ## nsepseq(String,SEMI) -> String SEMI . nsepseq(String,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(String,SEMI)) -> String SEMI . seq(__anonymous_0(String,SEMI)) [ RBRACKET End ] @@ -2687,7 +2606,7 @@ contract: Attributes String SEMI String SEMI With contract: Attributes String SEMI String With ## -## Ends in an error in state: 545. +## Ends in an error in state: 541. ## ## nsepseq(String,SEMI) -> String . [ RBRACKET End ] ## nsepseq(String,SEMI) -> String . SEMI nsepseq(String,SEMI) [ RBRACKET End ] @@ -2701,7 +2620,7 @@ contract: Attributes String SEMI String With contract: Attributes String SEMI With ## -## Ends in an error in state: 544. +## Ends in an error in state: 540. ## ## nsepseq(String,SEMI) -> String SEMI . nsepseq(String,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(String,SEMI)) -> String SEMI . seq(__anonymous_0(String,SEMI)) [ RBRACKET End ] @@ -2714,7 +2633,7 @@ contract: Attributes String SEMI With contract: Attributes String With ## -## Ends in an error in state: 543. +## Ends in an error in state: 539. ## ## nsepseq(String,SEMI) -> String . [ RBRACKET End ] ## nsepseq(String,SEMI) -> String . SEMI nsepseq(String,SEMI) [ RBRACKET End ] @@ -2728,7 +2647,7 @@ contract: Attributes String With contract: Attributes With ## -## Ends in an error in state: 542. +## Ends in an error in state: 538. ## ## 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 ] @@ -2741,7 +2660,7 @@ contract: Attributes With contract: Const Ident COLON Ident EQ Bytes VBAR ## -## Ends in an error in state: 591. +## Ends in an error in state: 587. ## ## const_decl -> open_const_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] ## @@ -2752,25 +2671,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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 499, spurious reduction of production unqualified_decl(EQ) -> Ident COLON type_expr EQ expr -## In state 500, spurious reduction of production open_const_decl -> Const unqualified_decl(EQ) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 495, spurious reduction of production unqualified_decl(EQ) -> Ident COLON type_expr EQ expr +## In state 496, spurious reduction of production open_const_decl -> Const unqualified_decl(EQ) ## -contract: Const Ident COLON Ident EQ With +contract: Const Ident COLON String EQ With ## -## Ends in an error in state: 498. +## 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 ] ## @@ -2780,9 +2699,9 @@ contract: Const Ident COLON Ident EQ With -contract: Const Ident COLON Ident VBAR +contract: Const Ident COLON String VBAR ## -## Ends in an error in state: 497. +## 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 ] ## @@ -2793,17 +2712,16 @@ contract: Const Ident COLON 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## 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 ## contract: Const Ident COLON With ## -## Ends in an error in state: 496. +## 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 ] ## @@ -2815,7 +2733,7 @@ contract: Const Ident COLON With contract: Const Ident With ## -## Ends in an error in state: 495. +## Ends in an error in state: 491. ## ## unqualified_decl(EQ) -> Ident . COLON type_expr EQ expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2827,7 +2745,7 @@ contract: Const Ident With contract: Const With ## -## Ends in an error in state: 494. +## Ends in an error in state: 490. ## ## open_const_decl -> Const . unqualified_decl(EQ) [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -2837,9 +2755,37 @@ contract: Const With -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of LBRACKET VBAR Block +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Bytes VBAR ## -## Ends in an error in state: 505. +## Ends in an error in state: 585. +## +## fun_decl -> open_fun_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] +## +## The known suffix of the stack is as follows: +## open_fun_decl +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 463, 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: 501. ## ## case(if_clause) -> Case expr Of LBRACKET option(VBAR) . cases(if_clause) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2849,9 +2795,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of LBRACKET WILD ARROW Skip End +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: 534. +## Ends in an error in state: 530. ## ## case(if_clause) -> Case expr Of LBRACKET option(VBAR) cases(if_clause) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -2862,15 +2808,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 536, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) -## In state 533, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) +## In state 532, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) +## In state 529, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of LBRACKET With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of LBRACKET With ## -## Ends in an error in state: 504. +## 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 ] ## @@ -2880,9 +2826,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of VBAR Block +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of VBAR Block ## -## Ends in an error in state: 539. +## 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 ] ## @@ -2892,9 +2838,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of WILD ARROW Skip RBRACKET +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: 540. +## 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 ] ## @@ -2905,15 +2851,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 536, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) -## In state 533, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) +## In state 532, spurious reduction of production nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) +## In state 529, spurious reduction of production cases(if_clause) -> nsepseq(case_clause(if_clause),VBAR) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of WILD ARROW Skip VBAR With +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: 537. +## Ends in an error in state: 533. ## ## nsepseq(case_clause(if_clause),VBAR) -> case_clause(if_clause) VBAR . nsepseq(case_clause(if_clause),VBAR) [ RBRACKET End ] ## @@ -2923,9 +2869,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of WILD ARROW Skip With +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: 536. +## Ends in an error in state: 532. ## ## 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 ] @@ -2936,9 +2882,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of WILD ARROW With +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: 507. +## Ends in an error in state: 503. ## ## case_clause(if_clause) -> pattern ARROW . if_clause [ VBAR RBRACKET End ] ## @@ -2948,9 +2894,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of WILD RPAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of WILD RPAR ## -## Ends in an error in state: 506. +## Ends in an error in state: 502. ## ## case_clause(if_clause) -> pattern . ARROW if_clause [ VBAR RBRACKET End ] ## @@ -2961,14 +2907,14 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 298, spurious reduction of production pattern -> core_pattern +## In state 294, spurious reduction of production pattern -> core_pattern ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit Of With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim Of With ## -## Ends in an error in state: 503. +## 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 ] @@ -2979,9 +2925,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case Unit VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case Verbatim VBAR ## -## Ends in an error in state: 502. +## 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 ] @@ -2993,23 +2939,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Case With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Case With ## -## Ends in an error in state: 501. +## 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 ] @@ -3020,9 +2966,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Constr DOT And With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Constr DOT And With ## -## Ends in an error in state: 514. +## Ends in an error in state: 510. ## ## fun_call -> module_field . arguments [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3032,9 +2978,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Constr With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Constr With ## -## Ends in an error in state: 493. +## Ends in an error in state: 489. ## ## module_field -> Constr . DOT module_fun [ LPAR ] ## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ LBRACKET ASS ] @@ -3045,9 +2991,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ARROW Ident With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ARROW Ident With ## -## Ends in an error in state: 477. +## Ends in an error in state: 473. ## ## for_loop -> For Ident option(arrow_clause) . In collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3057,9 +3003,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ARROW With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ARROW With ## -## Ends in an error in state: 475. +## Ends in an error in state: 471. ## ## arrow_clause -> ARROW . Ident [ In ] ## @@ -3069,9 +3015,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ASS Bytes To Unit Step Unit VBAR +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: 490. +## Ends in an error in state: 486. ## ## for_loop -> For var_assign To expr Step expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3082,23 +3028,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ASS Bytes To Unit Step With +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: 489. +## Ends in an error in state: 485. ## ## for_loop -> For var_assign To expr Step . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3108,9 +3054,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ASS Bytes To Unit VBAR +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: 488. +## 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 ] @@ -3122,23 +3068,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ASS Bytes To With +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: 487. +## 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 ] @@ -3149,9 +3095,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ASS Bytes VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS Bytes VBAR ## -## Ends in an error in state: 486. +## Ends in an error in state: 482. ## ## 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 ] @@ -3163,24 +3109,24 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 474, spurious reduction of production var_assign -> Ident ASS expr +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 470, spurious reduction of production var_assign -> Ident ASS expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident ASS With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident ASS With ## -## Ends in an error in state: 473. +## Ends in an error in state: 469. ## ## var_assign -> Ident ASS . expr [ To ] ## @@ -3190,9 +3136,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident In Set Unit VBAR +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: 483. +## Ends in an error in state: 479. ## ## for_loop -> For Ident option(arrow_clause) In collection expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3203,23 +3149,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident In Set With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident In Set With ## -## Ends in an error in state: 482. +## Ends in an error in state: 478. ## ## for_loop -> For Ident option(arrow_clause) In collection . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3229,9 +3175,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident In With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident In With ## -## Ends in an error in state: 478. +## Ends in an error in state: 474. ## ## for_loop -> For Ident option(arrow_clause) In . collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3241,9 +3187,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For Ident With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For Ident With ## -## Ends in an error in state: 472. +## Ends in an error in state: 468. ## ## for_loop -> For Ident . option(arrow_clause) In collection expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## var_assign -> Ident . ASS expr [ To ] @@ -3254,9 +3200,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin For With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin For With ## -## Ends in an error in state: 471. +## Ends in an error in state: 467. ## ## 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 ] @@ -3268,9 +3214,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Ident ASS With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident ASS With ## -## Ends in an error in state: 520. +## Ends in an error in state: 516. ## ## assignment -> lhs ASS . rhs [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3280,9 +3226,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Ident DOT Ident With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident DOT Ident With ## -## Ends in an error in state: 513. +## Ends in an error in state: 509. ## ## lhs -> path . [ ASS ] ## map_lookup -> path . brackets(expr) [ ASS ] @@ -3294,16 +3240,16 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 130, spurious reduction of production nsepseq(selection,DOT) -> selection -## In state 342, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) -## In state 428, spurious reduction of production path -> projection +## In state 126, spurious reduction of production nsepseq(selection,DOT) -> selection +## In state 338, spurious reduction of production projection -> Ident DOT nsepseq(selection,DOT) +## In state 424, spurious reduction of production path -> projection ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Ident LBRACKET Bytes RBRACKET With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident LBRACKET Bytes RBRACKET With ## -## Ends in an error in state: 519. +## Ends in an error in state: 515. ## ## assignment -> lhs . ASS rhs [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3313,9 +3259,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Ident With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Ident With ## -## Ends in an error in state: 460. +## Ends in an error in state: 456. ## ## fun_call -> Ident . arguments [ VBAR SEMI RBRACKET RBRACE End Else ] ## path -> Ident . [ LBRACKET ASS ] @@ -3327,9 +3273,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If Unit Then LBRACE Skip End +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: 571. +## Ends in an error in state: 567. ## ## clause_block -> LBRACE sep_or_term_list(statement,SEMI) . RBRACE [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3340,15 +3286,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 557, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 574, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 553, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 570, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If Unit Then LBRACE With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then LBRACE With ## -## Ends in an error in state: 459. +## Ends in an error in state: 455. ## ## clause_block -> LBRACE . sep_or_term_list(statement,SEMI) RBRACE [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3358,9 +3304,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If Unit Then Skip Else With +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: 577. +## Ends in an error in state: 573. ## ## conditional -> If expr Then if_clause option(SEMI) Else . if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3370,9 +3316,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If Unit Then Skip SEMI EQ +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: 576. +## Ends in an error in state: 572. ## ## conditional -> If expr Then if_clause option(SEMI) . Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3382,9 +3328,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If Unit Then Skip With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then Skip With ## -## Ends in an error in state: 575. +## Ends in an error in state: 571. ## ## conditional -> If expr Then if_clause . option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3394,9 +3340,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If Unit Then With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim Then With ## -## Ends in an error in state: 458. +## Ends in an error in state: 454. ## ## conditional -> If expr Then . if_clause option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3406,9 +3352,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If Unit VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If Verbatim VBAR ## -## Ends in an error in state: 457. +## Ends in an error in state: 453. ## ## conditional -> If expr . Then if_clause option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3419,23 +3365,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin If With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin If With ## -## Ends in an error in state: 456. +## Ends in an error in state: 452. ## ## conditional -> If . expr Then if_clause option(SEMI) Else if_clause [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3445,9 +3391,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Constr DOT Ident With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Constr DOT Ident With ## -## Ends in an error in state: 427. +## Ends in an error in state: 423. ## ## projection -> Constr DOT Ident . DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3457,9 +3403,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Constr DOT With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Constr DOT With ## -## Ends in an error in state: 426. +## Ends in an error in state: 422. ## ## projection -> Constr DOT . Ident DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3469,9 +3415,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Constr With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Constr With ## -## Ends in an error in state: 425. +## Ends in an error in state: 421. ## ## projection -> Constr . DOT Ident DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3481,9 +3427,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident VBAR ## -## Ends in an error in state: 433. +## 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 ] @@ -3496,14 +3442,14 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 424, spurious reduction of production path -> Ident +## In state 420, spurious reduction of production path -> Ident ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident While +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident While ## -## Ends in an error in state: 424. +## Ends in an error in state: 420. ## ## path -> Ident . [ With VBAR SEMI RBRACKET RBRACE End Else ] ## projection -> Ident . DOT nsepseq(selection,DOT) [ With VBAR SEMI RBRACKET RBRACE End Else ] @@ -3514,9 +3460,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Map LBRACKET Unit ARROW Bytes End +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: 449. +## Ends in an error in state: 445. ## ## ne_injection(Map,binding) -> Map LBRACKET sep_or_term_list(binding,SEMI) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3527,26 +3473,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr -## In state 249, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 245, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr +## In state 245, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 241, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Map LBRACKET With +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: 448. +## Ends in an error in state: 444. ## ## ne_injection(Map,binding) -> Map LBRACKET . sep_or_term_list(binding,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3556,9 +3502,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Map Unit ARROW Bytes RBRACKET +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: 451. +## Ends in an error in state: 447. ## ## ne_injection(Map,binding) -> Map sep_or_term_list(binding,SEMI) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3569,26 +3515,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 248, spurious reduction of production binding -> expr ARROW expr -## In state 249, spurious reduction of production nsepseq(binding,SEMI) -> binding -## In state 245, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 244, spurious reduction of production binding -> expr ARROW expr +## In state 245, spurious reduction of production nsepseq(binding,SEMI) -> binding +## In state 241, spurious reduction of production sep_or_term_list(binding,SEMI) -> nsepseq(binding,SEMI) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Map With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Map With ## -## Ends in an error in state: 447. +## Ends in an error in state: 443. ## ## 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 ] @@ -3599,9 +3545,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Record Ident EQ Bytes RBRACKET +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: 445. +## Ends in an error in state: 441. ## ## ne_injection(Record,field_assignment) -> Record sep_or_term_list(field_assignment,SEMI) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3612,26 +3558,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 385, spurious reduction of production field_assignment -> Ident EQ expr -## In state 390, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 389, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 382, spurious reduction of production field_assignment -> Ident EQ expr +## In state 387, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 386, 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 Ident Is Begin Patch Ident With Record LBRACKET Ident EQ Bytes End +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: 443. +## 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 ] ## @@ -3642,26 +3588,26 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 385, spurious reduction of production field_assignment -> Ident EQ expr -## In state 390, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment -## In state 389, spurious reduction of production sep_or_term_list(field_assignment,SEMI) -> nsepseq(field_assignment,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 382, spurious reduction of production field_assignment -> Ident EQ expr +## In state 387, spurious reduction of production nsepseq(field_assignment,SEMI) -> field_assignment +## In state 386, 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 Ident Is Begin Patch Ident With Record LBRACKET With +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: 442. +## Ends in an error in state: 438. ## ## ne_injection(Record,field_assignment) -> Record LBRACKET . sep_or_term_list(field_assignment,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3671,9 +3617,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Record With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Record With ## -## Ends in an error in state: 441. +## Ends in an error in state: 437. ## ## 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 ] @@ -3684,9 +3630,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Set LBRACKET Unit End +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: 437. +## Ends in an error in state: 433. ## ## ne_injection(Set,expr) -> Set LBRACKET sep_or_term_list(expr,SEMI) . RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3697,25 +3643,25 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 366, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 365, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 363, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 362, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Set LBRACKET With +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: 436. +## Ends in an error in state: 432. ## ## ne_injection(Set,expr) -> Set LBRACKET . sep_or_term_list(expr,SEMI) RBRACKET [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3725,9 +3671,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Set Unit RBRACKET +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: 439. +## Ends in an error in state: 435. ## ## ne_injection(Set,expr) -> Set sep_or_term_list(expr,SEMI) . End [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3738,25 +3684,25 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 366, spurious reduction of production nsepseq(expr,SEMI) -> expr -## In state 365, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) +## In state 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr +## In state 363, spurious reduction of production nsepseq(expr,SEMI) -> expr +## In state 362, spurious reduction of production sep_or_term_list(expr,SEMI) -> nsepseq(expr,SEMI) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With Set With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With Set With ## -## Ends in an error in state: 435. +## Ends in an error in state: 431. ## ## 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 ] @@ -3767,9 +3713,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch Ident With With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch Ident With With ## -## Ends in an error in state: 434. +## 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 ] @@ -3781,9 +3727,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Patch With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Patch With ## -## Ends in an error in state: 432. +## Ends in an error in state: 428. ## ## 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 ] @@ -3795,9 +3741,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Remove Unit From Map With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim From Map With ## -## Ends in an error in state: 430. +## Ends in an error in state: 426. ## ## map_remove -> Remove expr From Map . path [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3807,9 +3753,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Remove Unit From Set With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim From Set With ## -## Ends in an error in state: 423. +## Ends in an error in state: 419. ## ## set_remove -> Remove expr From Set . path [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3819,9 +3765,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Remove Unit From With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim From With ## -## Ends in an error in state: 422. +## Ends in an error in state: 418. ## ## 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 ] @@ -3832,9 +3778,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Remove Unit VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove Verbatim VBAR ## -## Ends in an error in state: 421. +## Ends in an error in state: 417. ## ## 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 ] @@ -3846,23 +3792,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Remove With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Remove With ## -## Ends in an error in state: 420. +## Ends in an error in state: 416. ## ## 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 ] @@ -3873,9 +3819,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip End While +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End While ## -## Ends in an error in state: 468. +## Ends in an error in state: 464. ## ## open_fun_decl -> Function Ident parameters COLON type_expr Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -3885,9 +3831,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip End With With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End With With ## -## Ends in an error in state: 469. +## 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 ] ## @@ -3897,9 +3843,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip RBRACE +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip RBRACE ## -## Ends in an error in state: 579. +## Ends in an error in state: 575. ## ## block -> Begin sep_or_term_list(statement,SEMI) . End [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -3910,15 +3856,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 557, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 574, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 553, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 570, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip SEMI Skip SEMI With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip SEMI Skip SEMI With ## -## Ends in an error in state: 560. +## Ends in an error in state: 556. ## ## nsepseq(statement,SEMI) -> statement SEMI . nsepseq(statement,SEMI) [ RBRACE End ] ## seq(__anonymous_0(statement,SEMI)) -> statement SEMI . seq(__anonymous_0(statement,SEMI)) [ RBRACE End ] @@ -3929,9 +3875,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip SEMI Skip With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip SEMI Skip With ## -## Ends in an error in state: 559. +## Ends in an error in state: 555. ## ## nsepseq(statement,SEMI) -> statement . [ RBRACE End ] ## nsepseq(statement,SEMI) -> statement . SEMI nsepseq(statement,SEMI) [ RBRACE End ] @@ -3943,9 +3889,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip SEMI With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip SEMI With ## -## Ends in an error in state: 558. +## Ends in an error in state: 554. ## ## nsepseq(statement,SEMI) -> statement SEMI . nsepseq(statement,SEMI) [ RBRACE End ] ## nseq(__anonymous_0(statement,SEMI)) -> statement SEMI . seq(__anonymous_0(statement,SEMI)) [ RBRACE End ] @@ -3956,9 +3902,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip With ## -## Ends in an error in state: 557. +## Ends in an error in state: 553. ## ## nsepseq(statement,SEMI) -> statement . [ RBRACE End ] ## nsepseq(statement,SEMI) -> statement . SEMI nsepseq(statement,SEMI) [ RBRACE End ] @@ -3970,9 +3916,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Var Ident COLON Ident ASS With +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: 416. +## Ends in an error in state: 412. ## ## unqualified_decl(ASS) -> Ident COLON type_expr ASS . expr [ SEMI RBRACE End ] ## @@ -3982,9 +3928,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Var Ident COLON Ident VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var Ident COLON String VBAR ## -## Ends in an error in state: 415. +## Ends in an error in state: 411. ## ## unqualified_decl(ASS) -> Ident COLON type_expr . ASS expr [ SEMI RBRACE End ] ## @@ -3995,17 +3941,16 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## 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 ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Var Ident COLON With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var Ident COLON With ## -## Ends in an error in state: 414. +## Ends in an error in state: 410. ## ## unqualified_decl(ASS) -> Ident COLON . type_expr ASS expr [ SEMI RBRACE End ] ## @@ -4015,9 +3960,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Var Ident With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var Ident With ## -## Ends in an error in state: 413. +## Ends in an error in state: 409. ## ## unqualified_decl(ASS) -> Ident . COLON type_expr ASS expr [ SEMI RBRACE End ] ## @@ -4027,9 +3972,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Var With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Var With ## -## Ends in an error in state: 412. +## Ends in an error in state: 408. ## ## open_var_decl -> Var . unqualified_decl(ASS) [ SEMI RBRACE End ] ## @@ -4039,9 +3984,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin While Unit VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin While Verbatim VBAR ## -## Ends in an error in state: 410. +## Ends in an error in state: 406. ## ## while_loop -> While expr . block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4052,23 +3997,23 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 193, spurious reduction of production unary_expr -> core_expr +## In state 143, spurious reduction of production mult_expr -> unary_expr +## In state 170, spurious reduction of production add_expr -> mult_expr +## In state 199, spurious reduction of production cons_expr -> add_expr +## In state 196, spurious reduction of production cat_expr -> cons_expr +## In state 219, spurious reduction of production comp_expr -> cat_expr +## In state 206, spurious reduction of production set_membership -> comp_expr +## In state 145, spurious reduction of production conj_expr -> set_membership +## In state 223, spurious reduction of production disj_expr -> conj_expr +## In state 191, spurious reduction of production expr -> disj_expr ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin While With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin While With ## -## Ends in an error in state: 409. +## Ends in an error in state: 405. ## ## while_loop -> While . expr block [ VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4078,9 +4023,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin With ## -## Ends in an error in state: 411. +## Ends in an error in state: 407. ## ## block -> Begin . sep_or_term_list(statement,SEMI) End [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4090,9 +4035,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Block LBRACE Skip End +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block LBRACE Skip End ## -## Ends in an error in state: 582. +## Ends in an error in state: 578. ## ## block -> Block LBRACE sep_or_term_list(statement,SEMI) . RBRACE [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4103,15 +4048,15 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident 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 557, spurious reduction of production nsepseq(statement,SEMI) -> statement -## In state 574, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) +## In state 553, spurious reduction of production nsepseq(statement,SEMI) -> statement +## In state 570, spurious reduction of production sep_or_term_list(statement,SEMI) -> nsepseq(statement,SEMI) ## -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Block LBRACE With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block LBRACE With ## -## Ends in an error in state: 408. +## Ends in an error in state: 404. ## ## block -> Block LBRACE . sep_or_term_list(statement,SEMI) RBRACE [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4121,9 +4066,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Block -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Block With +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Block With ## -## Ends in an error in state: 407. +## Ends in an error in state: 403. ## ## block -> Block . LBRACE sep_or_term_list(statement,SEMI) RBRACE [ With VBAR SEMI RBRACKET RBRACE End Else ] ## @@ -4133,37 +4078,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Block -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Bytes VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is With ## -## Ends in an error in state: 589. -## -## fun_decl -> open_fun_decl . option(SEMI) [ Type Recursive Function EOF Const Attributes ] -## -## The known suffix of the stack is as follows: -## open_fun_decl -## -## WARNING: This example involves spurious reductions. -## This implies that, although the LR(1) items shown above provide an -## accurate view of the past (what has been recognized so far), they -## may provide an INCOMPLETE view of the future (what was expected next). -## In state 197, spurious reduction of production unary_expr -> core_expr -## In state 147, 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 149, 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 467, 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 Ident Is With -## -## Ends in an error in state: 466. +## 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 ] @@ -4174,9 +4091,9 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is With -contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident VBAR +contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON String VBAR ## -## Ends in an error in state: 465. +## 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 ] @@ -4188,17 +4105,16 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## 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 ## contract: Function Ident LPAR Const Ident COLON Ident RPAR COLON With ## -## Ends in an error in state: 464. +## 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 ] @@ -4211,7 +4127,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: 463. +## 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 ] @@ -4224,7 +4140,7 @@ contract: Function Ident LPAR Const Ident COLON Ident RPAR With contract: Function Ident With ## -## Ends in an error in state: 462. +## 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 ] @@ -4237,7 +4153,7 @@ contract: Function Ident With contract: Function With ## -## Ends in an error in state: 461. +## Ends in an error in state: 457. ## ## 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 ] @@ -4248,9 +4164,9 @@ contract: Function With -contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip End While +contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End While ## -## Ends in an error in state: 585. +## Ends in an error in state: 581. ## ## open_fun_decl -> Recursive Function Ident parameters COLON type_expr Is block . With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## @@ -4260,9 +4176,9 @@ contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident -contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is Begin Skip End With With +contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is Begin Skip End With With ## -## Ends in an error in state: 586. +## 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 ] ## @@ -4272,9 +4188,9 @@ contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident -contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident Is With +contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON String Is With ## -## Ends in an error in state: 88. +## Ends in an error in state: 89. ## ## open_fun_decl -> Recursive Function Ident parameters COLON type_expr Is . block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Recursive Function Ident parameters COLON type_expr Is . expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4285,9 +4201,9 @@ contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident -contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident VBAR +contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON String VBAR ## -## Ends in an error in state: 87. +## Ends in an error in state: 88. ## ## open_fun_decl -> Recursive Function Ident parameters COLON type_expr . Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Recursive Function Ident parameters COLON type_expr . Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4299,17 +4215,16 @@ contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON Ident ## This implies that, although the LR(1) items shown above provide an ## accurate view of the past (what has been recognized so far), they ## may provide an INCOMPLETE view of the future (what was expected next). -## In state 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## 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 ## contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON With ## -## Ends in an error in state: 86. +## Ends in an error in state: 87. ## ## open_fun_decl -> Recursive Function Ident parameters COLON . type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Recursive Function Ident parameters COLON . type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4322,7 +4237,7 @@ contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR COLON With contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR With ## -## Ends in an error in state: 85. +## Ends in an error in state: 86. ## ## open_fun_decl -> Recursive Function Ident parameters . COLON type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Recursive Function Ident parameters . COLON type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4335,7 +4250,7 @@ contract: Recursive Function Ident LPAR Const Ident COLON Ident RPAR With contract: Recursive Function Ident With ## -## Ends in an error in state: 69. +## Ends in an error in state: 70. ## ## open_fun_decl -> Recursive Function Ident . parameters COLON type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Recursive Function Ident . parameters COLON type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4348,7 +4263,7 @@ contract: Recursive Function Ident With contract: Recursive Function With ## -## Ends in an error in state: 68. +## Ends in an error in state: 69. ## ## open_fun_decl -> Recursive Function . Ident parameters COLON type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Recursive Function . Ident parameters COLON type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4361,7 +4276,7 @@ contract: Recursive Function With contract: Recursive With ## -## Ends in an error in state: 67. +## Ends in an error in state: 68. ## ## open_fun_decl -> Recursive . Function Ident parameters COLON type_expr Is block With expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] ## open_fun_decl -> Recursive . Function Ident parameters COLON type_expr Is expr [ Type SEMI Recursive RBRACE Function End EOF Const Attributes ] @@ -4374,7 +4289,7 @@ contract: Recursive With contract: Type Ident Is BigMap With ## -## Ends in an error in state: 18. +## Ends in an error in state: 19. ## ## core_type -> BigMap . type_tuple [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## @@ -4386,7 +4301,7 @@ contract: Type Ident Is BigMap With contract: Type Ident Is Constr Of With ## -## Ends in an error in state: 27. +## Ends in an error in state: 28. ## ## variant -> Constr Of . fun_type [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## @@ -4398,7 +4313,7 @@ contract: Type Ident Is Constr Of With contract: Type Ident Is Constr VBAR With ## -## Ends in an error in state: 39. +## Ends in an error in state: 40. ## ## nsepseq(variant,VBAR) -> variant VBAR . nsepseq(variant,VBAR) [ Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## @@ -4410,7 +4325,7 @@ contract: Type Ident Is Constr VBAR With contract: Type Ident Is Constr With ## -## Ends in an error in state: 26. +## Ends in an error in state: 27. ## ## variant -> Constr . [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## variant -> Constr . Of fun_type [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] @@ -4421,79 +4336,9 @@ contract: Type Ident Is Constr With -contract: Type Ident Is Ident ARROW With -## -## Ends in an error in state: 36. -## -## fun_type -> cartesian ARROW . fun_type [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] -## -## The known suffix of the stack is as follows: -## cartesian ARROW -## - - - -contract: Type Ident Is Ident TIMES Ident TIMES With -## -## Ends in an error in state: 33. -## -## nsepseq(core_type,TIMES) -> core_type TIMES . nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] -## -## The known suffix of the stack is as follows: -## core_type TIMES -## - - - -contract: Type Ident Is Ident TIMES LPAR Ident RPAR With -## -## Ends in an error in state: 32. -## -## nsepseq(core_type,TIMES) -> core_type . [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] -## nsepseq(core_type,TIMES) -> core_type . TIMES nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] -## -## The known suffix of the stack is as follows: -## core_type -## - - - -contract: Type Ident Is Ident TIMES With -## -## Ends in an error in state: 30. -## -## cartesian -> core_type TIMES . nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] -## -## The known suffix of the stack is as follows: -## core_type TIMES -## - - - -contract: Type Ident Is Ident VBAR -## -## Ends in an error in state: 64. -## -## type_decl -> Type Ident Is type_expr . option(SEMI) [ Type Recursive Function EOF Const Attributes ] -## -## The known suffix of the stack is as follows: -## Type Ident Is type_expr -## -## WARNING: This example involves spurious reductions. -## This implies that, although the LR(1) items shown above provide an -## accurate view of the past (what has been recognized so far), they -## may provide an INCOMPLETE view of the future (what was expected next). -## In state 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type -## - - - contract: Type Ident Is Ident With ## -## Ends in an error in state: 15. +## Ends in an error in state: 16. ## ## core_type -> Ident . [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## core_type -> Ident . type_tuple [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] @@ -4504,22 +4349,9 @@ contract: Type Ident Is Ident With -contract: Type Ident Is LPAR Constr RPAR With +contract: Type Ident Is LPAR String VBAR ## -## Ends in an error in state: 29. -## -## cartesian -> core_type . [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] -## cartesian -> core_type . TIMES nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] -## -## The known suffix of the stack is as follows: -## core_type -## - - - -contract: Type Ident Is LPAR Ident VBAR -## -## Ends in an error in state: 61. +## Ends in an error in state: 62. ## ## par(type_expr) -> LPAR type_expr . RPAR [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## @@ -4530,17 +4362,16 @@ contract: Type Ident Is 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## 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 ## contract: Type Ident Is LPAR With ## -## Ends in an error in state: 6. +## Ends in an error in state: 7. ## ## par(type_expr) -> LPAR . type_expr RPAR [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## @@ -4552,7 +4383,7 @@ contract: Type Ident Is LPAR With contract: Type Ident Is List With ## -## Ends in an error in state: 13. +## Ends in an error in state: 14. ## ## core_type -> List . par(type_expr) [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## @@ -4562,9 +4393,9 @@ contract: Type Ident Is List With -contract: Type Ident Is Map LPAR Ident COMMA With +contract: Type Ident Is Map LPAR String COMMA With ## -## Ends in an error in state: 21. +## Ends in an error in state: 22. ## ## nsepseq(type_expr,COMMA) -> type_expr COMMA . nsepseq(type_expr,COMMA) [ RPAR ] ## @@ -4574,9 +4405,9 @@ contract: Type Ident Is Map LPAR Ident COMMA With -contract: Type Ident Is Map LPAR Ident VBAR +contract: Type Ident Is Map LPAR String VBAR ## -## Ends in an error in state: 20. +## Ends in an error in state: 21. ## ## nsepseq(type_expr,COMMA) -> type_expr . [ RPAR ] ## nsepseq(type_expr,COMMA) -> type_expr . COMMA nsepseq(type_expr,COMMA) [ RPAR ] @@ -4588,17 +4419,16 @@ contract: Type Ident Is Map 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type +## 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 ## contract: Type Ident Is Map LPAR With ## -## Ends in an error in state: 12. +## Ends in an error in state: 13. ## ## par(nsepseq(type_expr,COMMA)) -> LPAR . nsepseq(type_expr,COMMA) RPAR [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## @@ -4610,7 +4440,7 @@ contract: Type Ident Is Map LPAR With contract: Type Ident Is Map With ## -## Ends in an error in state: 11. +## Ends in an error in state: 12. ## ## core_type -> Map . type_tuple [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## @@ -4622,7 +4452,7 @@ contract: Type Ident Is Map With contract: Type Ident Is Record Ident COLON Ident RBRACKET ## -## Ends in an error in state: 59. +## Ends in an error in state: 60. ## ## record_type -> Record sep_or_term_list(field_decl,SEMI) . End [ Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## @@ -4633,20 +4463,20 @@ contract: Type Ident Is Record Ident COLON Ident 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type -## In state 47, spurious reduction of production field_decl -> Ident COLON type_expr -## In state 52, spurious reduction of production nsepseq(field_decl,SEMI) -> field_decl -## In state 51, spurious reduction of production sep_or_term_list(field_decl,SEMI) -> nsepseq(field_decl,SEMI) +## In state 16, spurious reduction of production core_type -> Ident +## 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 48, spurious reduction of production field_decl -> Ident COLON type_expr +## In state 53, spurious reduction of production nsepseq(field_decl,SEMI) -> field_decl +## In state 52, spurious reduction of production sep_or_term_list(field_decl,SEMI) -> nsepseq(field_decl,SEMI) ## contract: Type Ident Is Record Ident COLON Ident SEMI Ident COLON Ident SEMI With ## -## Ends in an error in state: 57. +## Ends in an error in state: 58. ## ## nsepseq(field_decl,SEMI) -> field_decl SEMI . nsepseq(field_decl,SEMI) [ RBRACKET End ] ## seq(__anonymous_0(field_decl,SEMI)) -> field_decl SEMI . seq(__anonymous_0(field_decl,SEMI)) [ RBRACKET End ] @@ -4659,7 +4489,7 @@ contract: Type Ident Is Record Ident COLON Ident SEMI Ident COLON Ident SEMI Wit contract: Type Ident Is Record Ident COLON Ident SEMI Ident COLON Ident VBAR ## -## Ends in an error in state: 56. +## Ends in an error in state: 57. ## ## nsepseq(field_decl,SEMI) -> field_decl . [ RBRACKET End ] ## nsepseq(field_decl,SEMI) -> field_decl . SEMI nsepseq(field_decl,SEMI) [ RBRACKET End ] @@ -4672,18 +4502,18 @@ contract: Type Ident Is Record Ident COLON Ident SEMI Ident COLON 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type -## In state 47, spurious reduction of production field_decl -> Ident COLON type_expr +## In state 16, spurious reduction of production core_type -> Ident +## 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 48, spurious reduction of production field_decl -> Ident COLON type_expr ## contract: Type Ident Is Record Ident COLON Ident SEMI With ## -## Ends in an error in state: 53. +## Ends in an error in state: 54. ## ## nsepseq(field_decl,SEMI) -> field_decl SEMI . nsepseq(field_decl,SEMI) [ RBRACKET End ] ## nseq(__anonymous_0(field_decl,SEMI)) -> field_decl SEMI . seq(__anonymous_0(field_decl,SEMI)) [ RBRACKET End ] @@ -4696,7 +4526,7 @@ contract: Type Ident Is Record Ident COLON Ident SEMI With contract: Type Ident Is Record Ident COLON Ident VBAR ## -## Ends in an error in state: 52. +## Ends in an error in state: 53. ## ## nsepseq(field_decl,SEMI) -> field_decl . [ RBRACKET End ] ## nsepseq(field_decl,SEMI) -> field_decl . SEMI nsepseq(field_decl,SEMI) [ RBRACKET End ] @@ -4709,18 +4539,18 @@ contract: Type Ident Is Record Ident COLON 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type -## In state 47, spurious reduction of production field_decl -> Ident COLON type_expr +## In state 16, spurious reduction of production core_type -> Ident +## 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 48, spurious reduction of production field_decl -> Ident COLON type_expr ## contract: Type Ident Is Record Ident COLON With ## -## Ends in an error in state: 10. +## Ends in an error in state: 11. ## ## field_decl -> Ident COLON . type_expr [ SEMI RBRACKET End ] ## @@ -4732,7 +4562,7 @@ contract: Type Ident Is Record Ident COLON With contract: Type Ident Is Record Ident With ## -## Ends in an error in state: 9. +## Ends in an error in state: 10. ## ## field_decl -> Ident . COLON type_expr [ SEMI RBRACKET End ] ## @@ -4744,7 +4574,7 @@ contract: Type Ident Is Record Ident With contract: Type Ident Is Record LBRACKET Ident COLON Ident End ## -## Ends in an error in state: 48. +## Ends in an error in state: 49. ## ## record_type -> Record LBRACKET sep_or_term_list(field_decl,SEMI) . RBRACKET [ Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## @@ -4755,20 +4585,20 @@ contract: Type Ident Is Record LBRACKET Ident COLON Ident 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 15, spurious reduction of production core_type -> Ident -## In state 29, spurious reduction of production cartesian -> core_type -## In state 35, spurious reduction of production fun_type -> cartesian -## In state 43, spurious reduction of production type_expr -> fun_type -## In state 47, spurious reduction of production field_decl -> Ident COLON type_expr -## In state 52, spurious reduction of production nsepseq(field_decl,SEMI) -> field_decl -## In state 51, spurious reduction of production sep_or_term_list(field_decl,SEMI) -> nsepseq(field_decl,SEMI) +## In state 16, spurious reduction of production core_type -> Ident +## 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 48, spurious reduction of production field_decl -> Ident COLON type_expr +## In state 53, spurious reduction of production nsepseq(field_decl,SEMI) -> field_decl +## In state 52, spurious reduction of production sep_or_term_list(field_decl,SEMI) -> nsepseq(field_decl,SEMI) ## contract: Type Ident Is Record LBRACKET With ## -## Ends in an error in state: 8. +## Ends in an error in state: 9. ## ## record_type -> Record LBRACKET . sep_or_term_list(field_decl,SEMI) RBRACKET [ Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## @@ -4780,7 +4610,7 @@ contract: Type Ident Is Record LBRACKET With contract: Type Ident Is Record With ## -## Ends in an error in state: 7. +## Ends in an error in state: 8. ## ## record_type -> Record . sep_or_term_list(field_decl,SEMI) End [ Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## record_type -> Record . LBRACKET sep_or_term_list(field_decl,SEMI) RBRACKET [ Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] @@ -4793,7 +4623,7 @@ contract: Type Ident Is Record With contract: Type Ident Is Set With ## -## Ends in an error in state: 5. +## Ends in an error in state: 6. ## ## core_type -> Set . par(type_expr) [ VBAR Type TIMES SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] ## @@ -4803,9 +4633,91 @@ contract: Type Ident Is Set With +contract: Type Ident Is String ARROW With +## +## Ends in an error in state: 37. +## +## fun_type -> cartesian ARROW . fun_type [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] +## +## The known suffix of the stack is as follows: +## cartesian ARROW +## + + + +contract: Type Ident Is String TIMES String TIMES With +## +## Ends in an error in state: 34. +## +## nsepseq(core_type,TIMES) -> core_type TIMES . nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] +## +## The known suffix of the stack is as follows: +## core_type TIMES +## + + + +contract: Type Ident Is String TIMES String With +## +## Ends in an error in state: 33. +## +## nsepseq(core_type,TIMES) -> core_type . [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] +## nsepseq(core_type,TIMES) -> core_type . TIMES nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] +## +## The known suffix of the stack is as follows: +## core_type +## + + + +contract: Type Ident Is String TIMES With +## +## Ends in an error in state: 31. +## +## cartesian -> core_type TIMES . nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] +## +## The known suffix of the stack is as follows: +## core_type TIMES +## + + + +contract: Type Ident Is String VBAR +## +## Ends in an error in state: 65. +## +## type_decl -> Type Ident Is type_expr . option(SEMI) [ Type Recursive Function EOF Const Attributes ] +## +## The known suffix of the stack is as follows: +## Type Ident Is type_expr +## +## WARNING: This example involves spurious reductions. +## This implies that, although the LR(1) items shown above provide an +## accurate view of the past (what has been recognized so far), they +## may provide an INCOMPLETE view of the future (what was expected next). +## In state 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 +## + + + +contract: Type Ident Is String With +## +## Ends in an error in state: 30. +## +## cartesian -> core_type . [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] +## cartesian -> core_type . TIMES nsepseq(core_type,TIMES) [ VBAR Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ARROW ] +## +## The known suffix of the stack is as follows: +## core_type +## + + + contract: Type Ident Is VBAR Const ## -## Ends in an error in state: 25. +## Ends in an error in state: 26. ## ## sum_type -> option(VBAR) . nsepseq(variant,VBAR) [ Type SEMI Recursive RPAR RBRACKET Is Function End EQ EOF Const COMMA Attributes ASS ] ## From 838fdf6a5f832047d8bcf54b34a1b660ef1df8c4 Mon Sep 17 00:00:00 2001 From: Christian Rinderknecht Date: Mon, 8 Jun 2020 12:40:14 +0200 Subject: [PATCH 6/6] Fixed build. --- src/bin/expect_tests/literals.ml | 4 +- src/passes/01-parser/pascaligo/dune | 2 + .../02-concrete_to_imperative/pascaligo.ml | 48 +++++++++---------- 3 files changed, 27 insertions(+), 27 deletions(-) diff --git a/src/bin/expect_tests/literals.ml b/src/bin/expect_tests/literals.ml index c4c4b03a9..aebe463e3 100644 --- a/src/bin/expect_tests/literals.ml +++ b/src/bin/expect_tests/literals.ml @@ -7,7 +7,7 @@ let%expect_test _ = let%expect_test _ = run_ligo_bad ["interpret" ; "(\"thisisnotasignature\":signature)" ; "--syntax=pascaligo"] ; [%expect {| - ligo: in file "", line 0, characters 1-32. Badly formatted literal: Signature thisisnotasignature {"location":"in file \"\", line 0, characters 1-32"} + ligo: in file "", line 0, characters 0-33. Badly formatted literal: Signature thisisnotasignature {"location":"in file \"\", line 0, characters 0-33"} If you're not sure how to fix this error, you can @@ -25,7 +25,7 @@ let%expect_test _ = let%expect_test _ = run_ligo_bad ["interpret" ; "(\"thisisnotapublickey\":key)" ; "--syntax=pascaligo"] ; [%expect {| - ligo: in file "", line 0, characters 1-26. Badly formatted literal: key thisisnotapublickey {"location":"in file \"\", line 0, characters 1-26"} + ligo: in file "", line 0, characters 0-27. Badly formatted literal: key thisisnotapublickey {"location":"in file \"\", line 0, characters 0-27"} If you're not sure how to fix this error, you can diff --git a/src/passes/01-parser/pascaligo/dune b/src/passes/01-parser/pascaligo/dune index 5aa59af6d..5b2f099ca 100644 --- a/src/passes/01-parser/pascaligo/dune +++ b/src/passes/01-parser/pascaligo/dune @@ -17,6 +17,8 @@ (modules Scoping AST pascaligo Parser ParserLog LexToken ParErr Pretty) (libraries + pprint + terminal_size menhirLib parser_shared hex diff --git a/src/passes/02-concrete_to_imperative/pascaligo.ml b/src/passes/02-concrete_to_imperative/pascaligo.ml index 4d978247b..62a946fd6 100644 --- a/src/passes/02-concrete_to_imperative/pascaligo.ml +++ b/src/passes/02-concrete_to_imperative/pascaligo.ml @@ -282,20 +282,21 @@ let rec compile_expression (t:Raw.expr) : expr result = let return x = ok x in match t with | EAnnot a -> ( - let ((expr , type_expr) , loc) = r_split a in + let par, loc = r_split a in + let expr, _, type_expr = par.inside in let%bind expr' = compile_expression expr in let%bind type_expr' = compile_type_expression type_expr in return @@ e_annotation ~loc expr' type_expr' ) | EVar c -> ( - let (c' , loc) = r_split c in + let (c', loc) = r_split c in match constants c' with | None -> return @@ e_variable ~loc (Var.of_name c.value) | Some s -> return @@ e_constant ~loc s [] ) | ECall x -> ( - let ((f, args) , loc) = r_split x in - let (args , args_loc) = r_split args in + let ((f, args), loc) = r_split x in + let (args, args_loc) = r_split args in let args' = npseq_to_list args.inside in match f with | EVar name -> ( @@ -698,7 +699,7 @@ and compile_fun_expression : loc:_ -> Raw.fun_expr -> (type_expression option * expression) result = fun ~loc x -> let open! Raw in - let {kwd_recursive;param;ret_type;return} : fun_expr = x in + let {param; ret_type; return; _} : fun_expr = x in let statements = [] in (match param.value.inside with a, [] -> ( @@ -714,10 +715,8 @@ and compile_fun_expression : bind_fold_right_list aux result body in let binder = Var.of_name binder in let fun_type = t_function input_type output_type in - let expression = match kwd_recursive with - | None -> e_lambda ~loc binder (Some input_type)(Some output_type) result - | Some _ -> e_recursive ~loc binder fun_type - @@ {binder;input_type=Some input_type; output_type= Some output_type; result} + let expression = + e_lambda ~loc binder (Some input_type)(Some output_type) result in ok (Some fun_type , expression) ) @@ -745,10 +744,8 @@ and compile_fun_expression : let aux prec cur = cur (Some prec) in bind_fold_right_list aux result body in let fun_type = t_function input_type output_type in - let expression = match kwd_recursive with - | None -> e_lambda ~loc binder (Some input_type)(Some output_type) result - | Some _ -> e_recursive ~loc binder fun_type - @@ {binder;input_type=Some input_type; output_type= Some output_type; result} + let expression = + e_lambda ~loc binder (Some input_type)(Some output_type) result in ok (Some fun_type , expression) ) @@ -822,7 +819,7 @@ and compile_single_instruction : Raw.instruction -> (_ -> expression result) res let%bind bound = compile_expression fi.bound in let%bind step = match fi.step with | None -> ok @@ e_int_z Z.one - | Some step -> compile_expression step in + | Some (_, step) -> compile_expression step in let%bind body = compile_block fi.block.value in let%bind body = body @@ None in return_statement @@ e_for ~loc binder start bound step body @@ -910,23 +907,24 @@ and compile_single_instruction : Raw.instruction -> (_ -> expression result) res let%bind m = compile_cases cases in return_statement @@ e_matching ~loc expr m ) - | RecordPatch r -> ( + | RecordPatch r -> let reg = r.region in let (r,loc) = r_split r in - let aux (fa :Raw.field_assign Raw.reg) : Raw.field_path_assign Raw.reg= - {value = {field_path = (fa.value.field_name, []); equal=fa.value.equal; field_expr = fa.value.field_expr}; - region = fa.region} - in + let aux (fa :Raw.field_assign Raw.reg) : Raw.field_path_assign Raw.reg = + {value = {field_path = fa.value.field_name, []; + assignment = fa.value.assignment; + field_expr = fa.value.field_expr}; + region = fa.region} in let update : Raw.field_path_assign Raw.reg Raw.ne_injection Raw.reg = { - value = Raw.map_ne_injection aux r.record_inj.value; - region=r.record_inj.region - } in - let u : Raw.update = {record=r.path;kwd_with=r.kwd_with; updates=update} in + value = Raw.map_ne_injection aux r.record_inj.value; + region = r.record_inj.region} in + let u : Raw.update = { + record = r.path; + kwd_with = r.kwd_with; + updates = update} in let%bind expr = compile_update {value=u;region=reg} in let (name , access_path) = compile_path r.path in return_statement @@ e_ez_assign ~loc name access_path expr - - ) | MapPatch patch -> ( let (map_p, loc) = r_split patch in let (name, access_path) = compile_path map_p.path in