diff --git a/bootstrap/bin/hocc/Parse.hmh b/bootstrap/bin/hocc/Parse.hmh index f982c209..faf6e10e 100644 --- a/bootstrap/bin/hocc/Parse.hmh +++ b/bootstrap/bin/hocc/Parse.hmh @@ -273,6 +273,8 @@ type nonterm_precs_tl = | Hmhi of {prelude: nonterm_matter; hocc_: token_hocc; postlude: nonterm_matter; eoi: token_eoi} include hocc + neutral pCodeTl + (* hocc-specific keywords *) token HOCC "hocc" of token_hocc token NONTERM "nonterm" of token_nonterm @@ -294,7 +296,6 @@ include hocc token ISTRING of token_istring (* Punctuation/separators *) - neutral pCodeTl token COLON_COLON_EQ "::=" of token_colon_colon_eq token OF "of" of token_of token COLON ":" of token_colon @@ -731,37 +732,16 @@ let hmhi scanner = let hmh scanner = let rec inner scanner errs parser = begin let scanner, scan_token, token, mals = scan scanner in -(* - File.Fmt.stderr - |> Fmt.fmt "XXX scan_token=" - |> Scan.Token.pp scan_token - |> Fmt.fmt "\n" - |> ignore; -*) let errs = match mals with | [] -> errs | _ -> List.fold ~init:errs ~f:(fun errs mal -> Error.init_mal mal :: errs) mals in - let {stack=_XXX; status} as parser = next token parser in -(* - File.Fmt.stderr - |> Fmt.fmt "XXX status=" - |> Status.pp status - |> Fmt.fmt "\n" - |> ignore; -*) + let {status; _} as parser = next token parser in match status, errs with | Prefix, _ -> inner scanner errs parser | Accept (Hmh hmh), [] -> scanner, Ok hmh | Accept (Hmh _), _ -> scanner, Error errs | Reject _, _ -> begin -(* - File.Fmt.stderr - |> Fmt.fmt "XXX stack=" - |> Stack.fmt ~alt:true stack - |> Fmt.fmt "\n" - |> ignore; -*) let errs = Error.init_token scan_token "Unexpected token" :: errs in scanner, Error errs end diff --git a/bootstrap/bin/hocc/Parse.ml b/bootstrap/bin/hocc/Parse.ml index 57a5e49a..43c4d24e 100644 --- a/bootstrap/bin/hocc/Parse.ml +++ b/bootstrap/bin/hocc/Parse.ml @@ -364,13 +364,13 @@ include struct end let precs = [| - Prec.init ~index:0L ~name:"pCIDENT" ~assoc:(Some Right) ~doms:(Ordset.empty (module Uns)); - Prec.init ~index:1L ~name:"pCodeTl" ~assoc:None ~doms:(Ordset.empty (module Uns)); + Prec.init ~index:0L ~name:"pCodeTl" ~assoc:None ~doms:(Ordset.empty (module Uns)); + Prec.init ~index:1L ~name:"pCIDENT" ~assoc:(Some Right) ~doms:(Ordset.empty (module Uns)); Prec.init ~index:2L ~name:"pDOT" ~assoc:(Some Left) ~doms:(Ordset.empty (module Uns)); - Prec.init ~index:3L ~name:"pBAR" ~assoc:None ~doms:(Ordset.singleton (module Uns) 1L); - Prec.init ~index:4L ~name:"pCOMMA" ~assoc:(Some Left) ~doms:(Ordset.singleton (module Uns) 0L); - Prec.init ~index:5L ~name:"pSEMI" ~assoc:(Some Right) ~doms:(Ordset.singleton (module Uns) 1L); - Prec.init ~index:6L ~name:"pAS" ~assoc:None ~doms:(Ordset.of_list (module Uns) [0L; 4L]) + Prec.init ~index:3L ~name:"pBAR" ~assoc:None ~doms:(Ordset.singleton (module Uns) 0L); + Prec.init ~index:4L ~name:"pCOMMA" ~assoc:(Some Left) ~doms:(Ordset.singleton (module Uns) 1L); + Prec.init ~index:5L ~name:"pSEMI" ~assoc:(Some Right) ~doms:(Ordset.singleton (module Uns) 0L); + Prec.init ~index:6L ~name:"pAS" ~assoc:None ~doms:(Ordset.of_list (module Uns) [1L; 4L]) |] module Prod = struct @@ -527,7 +527,7 @@ include struct Prod.init ~index:59L ~lhs_index:58L ~rhs_indexes:[|57L; 58L|] ~prec:None ~callback:59L; Prod.init ~index:60L ~lhs_index:58L ~rhs_indexes:[||] - ~prec:(Some (Array.get 1L precs)) ~callback:60L; + ~prec:(Some (Array.get 0L precs)) ~callback:60L; Prod.init ~index:61L ~lhs_index:59L ~rhs_indexes:[|56L; 58L|] ~prec:None ~callback:61L; Prod.init ~index:62L ~lhs_index:59L ~rhs_indexes:[|57L; 58L|] @@ -579,7 +579,7 @@ include struct Prod.init ~index:85L ~lhs_index:65L ~rhs_indexes:[|29L; 65L; 30L|] ~prec:None ~callback:85L; Prod.init ~index:86L ~lhs_index:65L ~rhs_indexes:[|12L; 65L|] - ~prec:(Some (Array.get 0L precs)) ~callback:86L; + ~prec:(Some (Array.get 1L precs)) ~callback:86L; Prod.init ~index:87L ~lhs_index:65L ~rhs_indexes:[|64L; 18L; 29L; 65L; 30L|] ~prec:None ~callback:87L; Prod.init ~index:88L ~lhs_index:65L ~rhs_indexes:[|65L; 23L; 65L|] @@ -828,7 +828,7 @@ include struct ~prods:(Ordset.empty (module Prod)) ~first:(Ordset.singleton (module Uns) 11L) ~follow:(Ordset.of_list (module Uns) [2L; 3L; 4L; 5L; 6L; 7L; 8L; 9L; 10L; 11L; 12L; 13L; 14L; 15L; 16L; 17L; 18L; 19L; 20L; 21L; 22L; 23L; 24L; 25L; 26L; 27L; 28L; 29L; 30L; 31L; 32L; 33L; 34L; 35L; 36L; 37L; 38L; 39L; 40L]); Symbol.init ~index:12L ~name:"CIDENT" - ~prec:(Some (Array.get 0L precs)) ~alias:None ~start:false + ~prec:(Some (Array.get 1L precs)) ~alias:None ~start:false ~prods:(Ordset.empty (module Prod)) ~first:(Ordset.singleton (module Uns) 12L) ~follow:(Ordset.of_list (module Uns) [2L; 3L; 4L; 5L; 6L; 7L; 8L; 9L; 10L; 11L; 12L; 13L; 14L; 15L; 16L; 17L; 18L; 19L; 20L; 21L; 22L; 23L; 24L; 25L; 26L; 27L; 28L; 29L; 30L; 31L; 32L; 33L; 34L; 35L; 36L; 37L; 38L; 39L; 40L]); Symbol.init ~index:13L ~name:"USCORE" @@ -22714,7 +22714,7 @@ include struct :: _ :: tl__hocc__ -> Symbol.Nonterm (PrecsTl ( (*______________________________________________________________________________*) -#337 "./Parse.hmh" +#338 "./Parse.hmh" PrecsTlUident {uident; precs_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22723,7 +22723,7 @@ PrecsTlUident {uident; precs_tl} (* 1 *) (function tl__hocc__ -> Symbol.Nonterm (PrecsTl ( (*______________________________________________________________________________*) -#338 "./Parse.hmh" +#339 "./Parse.hmh" PrecsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22733,7 +22733,7 @@ PrecsTlEpsilon :: Elm.{symbol=Symbol.Token (UIDENT uident); _} :: tl__hocc__ -> Symbol.Nonterm (Precs ( (*______________________________________________________________________________*) -#341 "./Parse.hmh" +#342 "./Parse.hmh" Precs {uident; precs_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22744,7 +22744,7 @@ Precs {uident; precs_tl} :: _ :: tl__hocc__ -> Symbol.Nonterm (PrecRels ( (*______________________________________________________________________________*) -#344 "./Parse.hmh" +#345 "./Parse.hmh" PrecRelsPrecs {precs} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22753,7 +22753,7 @@ PrecRelsPrecs {precs} (* 4 *) (function tl__hocc__ -> Symbol.Nonterm (PrecRels ( (*______________________________________________________________________________*) -#345 "./Parse.hmh" +#346 "./Parse.hmh" PrecRelsEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22762,7 +22762,7 @@ PrecRelsEpsilon | _ :: tl__hocc__ -> Symbol.Nonterm (PrecType ( (*______________________________________________________________________________*) -#348 "./Parse.hmh" +#349 "./Parse.hmh" PrecTypeNeutral (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22772,7 +22772,7 @@ PrecTypeNeutral | _ :: tl__hocc__ -> Symbol.Nonterm (PrecType ( (*______________________________________________________________________________*) -#349 "./Parse.hmh" +#350 "./Parse.hmh" PrecTypeLeft (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22782,7 +22782,7 @@ PrecTypeLeft | _ :: tl__hocc__ -> Symbol.Nonterm (PrecType ( (*______________________________________________________________________________*) -#350 "./Parse.hmh" +#351 "./Parse.hmh" PrecTypeRight (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22794,7 +22794,7 @@ PrecTypeRight :: Elm.{symbol=Symbol.Nonterm (PrecType prec_type); _} :: tl__hocc__ -> Symbol.Nonterm (Prec ( (*______________________________________________________________________________*) -#353 "./Parse.hmh" +#354 "./Parse.hmh" Prec {prec_type; uident; prec_rels} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22806,7 +22806,7 @@ Prec {prec_type; uident; prec_rels} :: Elm.{symbol=Symbol.Token (CIDENT cident); _} :: tl__hocc__ -> Symbol.Nonterm (SymbolTypeQualifier ( (*______________________________________________________________________________*) -#357 "./Parse.hmh" +#358 "./Parse.hmh" SymbolTypeQualifier {cident; symbol_type_qualifier_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22815,7 +22815,7 @@ SymbolTypeQualifier {cident; symbol_type_qualifier_tl} (* 10 *) (function tl__hocc__ -> Symbol.Nonterm (SymbolTypeQualifier ( (*______________________________________________________________________________*) -#358 "./Parse.hmh" +#359 "./Parse.hmh" SymbolTypeQualifierEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22826,7 +22826,7 @@ SymbolTypeQualifierEpsilon :: _ :: tl__hocc__ -> Symbol.Nonterm (SymbolType ( (*______________________________________________________________________________*) -#362 "./Parse.hmh" +#363 "./Parse.hmh" SymbolType {symbol_type_qualifier; symbol_type} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22836,7 +22836,7 @@ SymbolType {symbol_type_qualifier; symbol_type} | Elm.{symbol=Symbol.Nonterm (SymbolType symbol_type); _} :: tl__hocc__ -> Symbol.Nonterm (SymbolType0 ( (*______________________________________________________________________________*) -#365 "./Parse.hmh" +#366 "./Parse.hmh" SymbolType0SymbolType {symbol_type} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22845,7 +22845,7 @@ SymbolType0SymbolType {symbol_type} (* 13 *) (function tl__hocc__ -> Symbol.Nonterm (SymbolType0 ( (*______________________________________________________________________________*) -#366 "./Parse.hmh" +#367 "./Parse.hmh" SymbolType0Epsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22855,7 +22855,7 @@ SymbolType0Epsilon :: _ :: tl__hocc__ -> Symbol.Nonterm (PrecRef ( (*______________________________________________________________________________*) -#369 "./Parse.hmh" +#370 "./Parse.hmh" PrecRefUident {uident} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22864,7 +22864,7 @@ PrecRefUident {uident} (* 15 *) (function tl__hocc__ -> Symbol.Nonterm (PrecRef ( (*______________________________________________________________________________*) -#370 "./Parse.hmh" +#371 "./Parse.hmh" PrecRefEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22873,7 +22873,7 @@ PrecRefEpsilon | Elm.{symbol=Symbol.Token (ISTRING alias); _} :: tl__hocc__ -> Symbol.Nonterm (TokenAlias ( (*______________________________________________________________________________*) -#373 "./Parse.hmh" +#374 "./Parse.hmh" TokenAlias {alias} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22882,7 +22882,7 @@ TokenAlias {alias} (* 17 *) (function tl__hocc__ -> Symbol.Nonterm (TokenAlias ( (*______________________________________________________________________________*) -#374 "./Parse.hmh" +#375 "./Parse.hmh" TokenAliasEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22895,7 +22895,7 @@ TokenAliasEpsilon :: _ :: tl__hocc__ -> Symbol.Nonterm (Token ( (*______________________________________________________________________________*) -#378 "./Parse.hmh" +#379 "./Parse.hmh" Token {cident; token_alias; symbol_type0; prec_ref} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22905,7 +22905,7 @@ Token {cident; token_alias; symbol_type0; prec_ref} | Elm.{symbol=Symbol.Token (LINE_DELIM line_delim); _} :: tl__hocc__ -> Symbol.Nonterm (Sep ( (*______________________________________________________________________________*) -#381 "./Parse.hmh" +#382 "./Parse.hmh" SepLineDelim {line_delim} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22915,7 +22915,7 @@ SepLineDelim {line_delim} | Elm.{symbol=Symbol.Token (SEMI semi); _} :: tl__hocc__ -> Symbol.Nonterm (Sep ( (*______________________________________________________________________________*) -#382 "./Parse.hmh" +#383 "./Parse.hmh" SepSemi {semi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22925,7 +22925,7 @@ SepSemi {semi} | Elm.{symbol=Symbol.Token (BAR bar); _} :: tl__hocc__ -> Symbol.Nonterm (Sep ( (*______________________________________________________________________________*) -#383 "./Parse.hmh" +#384 "./Parse.hmh" SepBar {bar} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22937,7 +22937,7 @@ SepBar {bar} :: Elm.{symbol=Symbol.Nonterm (Sep sep); _} :: tl__hocc__ -> Symbol.Nonterm (CodesTl ( (*______________________________________________________________________________*) -#386 "./Parse.hmh" +#387 "./Parse.hmh" CodesTlSepCode {sep; code; codes_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22946,7 +22946,7 @@ CodesTlSepCode {sep; code; codes_tl} (* 23 *) (function tl__hocc__ -> Symbol.Nonterm (CodesTl ( (*______________________________________________________________________________*) -#387 "./Parse.hmh" +#388 "./Parse.hmh" CodesTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22956,7 +22956,7 @@ CodesTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Code code); _} :: tl__hocc__ -> Symbol.Nonterm (Codes ( (*______________________________________________________________________________*) -#390 "./Parse.hmh" +#391 "./Parse.hmh" Codes {code; codes_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22966,7 +22966,7 @@ Codes {code; codes_tl} | Elm.{symbol=Symbol.Nonterm (Codes codes); _} :: tl__hocc__ -> Symbol.Nonterm (Codes0 ( (*______________________________________________________________________________*) -#393 "./Parse.hmh" +#394 "./Parse.hmh" Codes0Codes {codes} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22975,7 +22975,7 @@ Codes0Codes {codes} (* 26 *) (function tl__hocc__ -> Symbol.Nonterm (Codes0 ( (*______________________________________________________________________________*) -#394 "./Parse.hmh" +#395 "./Parse.hmh" Codes0Epsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22986,7 +22986,7 @@ Codes0Epsilon :: Elm.{symbol=Symbol.Token (INDENT indent); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#397 "./Parse.hmh" +#398 "./Parse.hmh" DelimitedBlock {indent; codes; dedent} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -22998,7 +22998,7 @@ DelimitedBlock {indent; codes; dedent} :: Elm.{symbol=Symbol.Token (LPAREN lparen); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#398 "./Parse.hmh" +#399 "./Parse.hmh" DelimitedParen {lparen; codes0; rparen} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23010,7 +23010,7 @@ DelimitedParen {lparen; codes0; rparen} :: Elm.{symbol=Symbol.Token (LCAPTURE lcapture); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#399 "./Parse.hmh" +#400 "./Parse.hmh" DelimitedCapture {lcapture; codes0; rcapture} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23022,7 +23022,7 @@ DelimitedCapture {lcapture; codes0; rcapture} :: Elm.{symbol=Symbol.Token (LBRACK lbrack); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#400 "./Parse.hmh" +#401 "./Parse.hmh" DelimitedList {lbrack; codes0; rbrack} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23034,7 +23034,7 @@ DelimitedList {lbrack; codes0; rbrack} :: Elm.{symbol=Symbol.Token (LARRAY larray); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#401 "./Parse.hmh" +#402 "./Parse.hmh" DelimitedArray {larray; codes0; rarray} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23046,7 +23046,7 @@ DelimitedArray {larray; codes0; rarray} :: Elm.{symbol=Symbol.Token (LCURLY lcurly); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#402 "./Parse.hmh" +#403 "./Parse.hmh" DelimitedModule {lcurly; codes0; rcurly} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23056,7 +23056,7 @@ DelimitedModule {lcurly; codes0; rcurly} | Elm.{symbol=Symbol.Token (HOCC (HOCC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23066,7 +23066,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23076,7 +23076,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23086,7 +23086,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (START (START {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23096,7 +23096,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23106,7 +23106,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23116,7 +23116,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (LEFT (LEFT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23126,7 +23126,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23136,7 +23136,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (PREC (PREC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23146,7 +23146,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (OTHER_TOKEN (OTHER_TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23156,7 +23156,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23166,7 +23166,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (CIDENT (CIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23176,7 +23176,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (USCORE (USCORE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23186,7 +23186,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (ISTRING (ISTRING {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23196,7 +23196,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (COLON_COLON_EQ (COLON_COLON_EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23206,7 +23206,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (AS (AS {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23216,7 +23216,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (OF (OF {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23226,7 +23226,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (COLON (COLON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23236,7 +23236,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (DOT (DOT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23246,7 +23246,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (ARROW (ARROW {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23256,7 +23256,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (BAR (BAR {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23266,7 +23266,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (LT (LT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23276,7 +23276,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (EQ (EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23286,7 +23286,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (COMMA (COMMA {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23296,7 +23296,7 @@ CodeToken {token} | Elm.{symbol=Symbol.Token (SEMI (SEMI {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#431 "./Parse.hmh" CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23307,7 +23307,7 @@ CodeToken {token} :: Elm.{symbol=Symbol.Nonterm (Delimited delimited); _} :: tl__hocc__ -> Symbol.Nonterm (CodeTl ( (*______________________________________________________________________________*) -#433 "./Parse.hmh" +#434 "./Parse.hmh" CodeTlDelimited {delimited; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23318,7 +23318,7 @@ CodeTlDelimited {delimited; code_tl} :: Elm.{symbol=Symbol.Nonterm (CodeToken code_token); _} :: tl__hocc__ -> Symbol.Nonterm (CodeTl ( (*______________________________________________________________________________*) -#434 "./Parse.hmh" +#435 "./Parse.hmh" CodeTlCodeToken {code_token; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23327,7 +23327,7 @@ CodeTlCodeToken {code_token; code_tl} (* 60 *) (function tl__hocc__ -> Symbol.Nonterm (CodeTl ( (*______________________________________________________________________________*) -#435 "./Parse.hmh" +#436 "./Parse.hmh" CodeTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23337,7 +23337,7 @@ CodeTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Delimited delimited); _} :: tl__hocc__ -> Symbol.Nonterm (Code ( (*______________________________________________________________________________*) -#438 "./Parse.hmh" +#439 "./Parse.hmh" CodeDelimited {delimited; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23348,7 +23348,7 @@ CodeDelimited {delimited; code_tl} :: Elm.{symbol=Symbol.Nonterm (CodeToken code_token); _} :: tl__hocc__ -> Symbol.Nonterm (Code ( (*______________________________________________________________________________*) -#439 "./Parse.hmh" +#440 "./Parse.hmh" CodeCodeToken {code_token; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23358,7 +23358,7 @@ CodeCodeToken {code_token; code_tl} | Elm.{symbol=Symbol.Token (HOCC (HOCC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23368,7 +23368,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23378,7 +23378,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23388,7 +23388,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (START (START {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23398,7 +23398,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23408,7 +23408,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23418,7 +23418,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (LEFT (LEFT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23428,7 +23428,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23438,7 +23438,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (PREC (PREC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23448,7 +23448,7 @@ Binding {token} | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#453 "./Parse.hmh" Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23458,7 +23458,7 @@ Binding {token} | Elm.{symbol=Symbol.Nonterm (Binding binding); _} :: tl__hocc__ -> Symbol.Nonterm (PatternField ( (*______________________________________________________________________________*) -#455 "./Parse.hmh" +#456 "./Parse.hmh" PatternFieldBinding {binding} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23470,7 +23470,7 @@ PatternFieldBinding {binding} :: _ :: tl__hocc__ -> Symbol.Nonterm (PatternField ( (*______________________________________________________________________________*) -#456 "./Parse.hmh" +#457 "./Parse.hmh" PatternFieldPattern {pattern} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23480,7 +23480,7 @@ PatternFieldPattern {pattern} | Elm.{symbol=Symbol.Nonterm (PatternField field); _} :: tl__hocc__ -> Symbol.Nonterm (PatternFields ( (*______________________________________________________________________________*) -#461 "./Parse.hmh" +#462 "./Parse.hmh" PatternFieldsOne {field} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23492,7 +23492,7 @@ PatternFieldsOne {field} :: Elm.{symbol=Symbol.Nonterm (PatternField field); _} :: tl__hocc__ -> Symbol.Nonterm (PatternFields ( (*______________________________________________________________________________*) -#461 "./Parse.hmh" +#462 "./Parse.hmh" PatternFieldsOne {field} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23504,7 +23504,7 @@ PatternFieldsOne {field} :: Elm.{symbol=Symbol.Nonterm (PatternField field); _} :: tl__hocc__ -> Symbol.Nonterm (PatternFields ( (*______________________________________________________________________________*) -#463 "./Parse.hmh" +#464 "./Parse.hmh" PatternFieldsMulti {field; fields} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23514,7 +23514,7 @@ PatternFieldsMulti {field; fields} | _ :: tl__hocc__ -> Symbol.Nonterm (SemiSuffix ( (*______________________________________________________________________________*) -#468 "./Parse.hmh" +#469 "./Parse.hmh" SemiSuffix (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23523,7 +23523,7 @@ SemiSuffix (* 79 *) (function tl__hocc__ -> Symbol.Nonterm (SemiSuffix ( (*______________________________________________________________________________*) -#468 "./Parse.hmh" +#469 "./Parse.hmh" SemiSuffix (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23532,7 +23532,7 @@ SemiSuffix | _ :: tl__hocc__ -> Symbol.Nonterm (ModulePath ( (*______________________________________________________________________________*) -#473 "./Parse.hmh" +#474 "./Parse.hmh" ModulePath (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23544,7 +23544,7 @@ ModulePath :: _ :: tl__hocc__ -> Symbol.Nonterm (ModulePath ( (*______________________________________________________________________________*) -#473 "./Parse.hmh" +#474 "./Parse.hmh" ModulePath (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23554,7 +23554,7 @@ ModulePath | _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#477 "./Parse.hmh" +#478 "./Parse.hmh" PatternUscore (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23564,7 +23564,7 @@ PatternUscore | Elm.{symbol=Symbol.Nonterm (Binding binding); _} :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#480 "./Parse.hmh" +#481 "./Parse.hmh" PatternBinding {binding} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23576,7 +23576,7 @@ PatternBinding {binding} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#480 "./Parse.hmh" +#481 "./Parse.hmh" PatternBinding {binding} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23588,7 +23588,7 @@ PatternBinding {binding} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#484 "./Parse.hmh" +#485 "./Parse.hmh" PatternPattern {pattern} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23599,7 +23599,7 @@ PatternPattern {pattern} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#484 "./Parse.hmh" +#485 "./Parse.hmh" PatternPattern {pattern} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23613,7 +23613,7 @@ PatternPattern {pattern} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#484 "./Parse.hmh" +#485 "./Parse.hmh" PatternPattern {pattern} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23625,7 +23625,7 @@ PatternPattern {pattern} :: Elm.{symbol=Symbol.Nonterm (Pattern pattern_a); _} :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#486 "./Parse.hmh" +#487 "./Parse.hmh" PatternComma {pattern_a; pattern_b} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23638,7 +23638,7 @@ PatternComma {pattern_a; pattern_b} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#489 "./Parse.hmh" +#490 "./Parse.hmh" PatternFields {fields} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23653,7 +23653,7 @@ PatternFields {fields} :: _ :: tl__hocc__ -> Symbol.Nonterm (Pattern ( (*______________________________________________________________________________*) -#489 "./Parse.hmh" +#490 "./Parse.hmh" PatternFields {fields} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23663,7 +23663,7 @@ PatternFields {fields} | Elm.{symbol=Symbol.Token (CIDENT cident); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamSymbol ( (*______________________________________________________________________________*) -#492 "./Parse.hmh" +#493 "./Parse.hmh" ProdParamSymbolCident {cident} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23673,7 +23673,7 @@ ProdParamSymbolCident {cident} | Elm.{symbol=Symbol.Token (ISTRING alias); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamSymbol ( (*______________________________________________________________________________*) -#493 "./Parse.hmh" +#494 "./Parse.hmh" ProdParamSymbolAlias {alias} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23685,7 +23685,7 @@ ProdParamSymbolAlias {alias} :: Elm.{symbol=Symbol.Nonterm (Binding binding); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#497 "./Parse.hmh" +#498 "./Parse.hmh" ProdParamBinding {binding; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23699,7 +23699,7 @@ ProdParamBinding {binding; prod_param_symbol} :: Elm.{symbol=Symbol.Token (LPAREN lparen); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#500 "./Parse.hmh" +#501 "./Parse.hmh" ProdParamPattern {lparen; pattern; rparen; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23715,7 +23715,7 @@ ProdParamPattern {lparen; pattern; rparen; prod_param_symbol} :: _ :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#500 "./Parse.hmh" +#501 "./Parse.hmh" ProdParamPattern {lparen; pattern; rparen; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23730,7 +23730,7 @@ ProdParamPattern {lparen; pattern; rparen; prod_param_symbol} :: Elm.{symbol=Symbol.Token (LCURLY lcurly); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#504 "./Parse.hmh" +#505 "./Parse.hmh" ProdParamFields {lcurly; fields; rcurly; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23747,7 +23747,7 @@ ProdParamFields {lcurly; fields; rcurly; prod_param_symbol} :: _ :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#504 "./Parse.hmh" +#505 "./Parse.hmh" ProdParamFields {lcurly; fields; rcurly; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23759,7 +23759,7 @@ ProdParamFields {lcurly; fields; rcurly; prod_param_symbol} :: _ :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#507 "./Parse.hmh" +#508 "./Parse.hmh" ProdParam {prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23769,7 +23769,7 @@ ProdParam {prod_param_symbol} | Elm.{symbol=Symbol.Nonterm (ProdParamSymbol prod_param_symbol); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#507 "./Parse.hmh" +#508 "./Parse.hmh" ProdParam {prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23780,7 +23780,7 @@ ProdParam {prod_param_symbol} :: Elm.{symbol=Symbol.Nonterm (ProdParam prod_param); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamsTl ( (*______________________________________________________________________________*) -#511 "./Parse.hmh" +#512 "./Parse.hmh" ProdParamsTlProdParam {prod_param; prod_params_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23790,7 +23790,7 @@ ProdParamsTlProdParam {prod_param; prod_params_tl} | Elm.{symbol=Symbol.Nonterm (PrecRef prec_ref); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamsTl ( (*______________________________________________________________________________*) -#512 "./Parse.hmh" +#513 "./Parse.hmh" ProdParamsTlPrecRef {prec_ref} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23801,7 +23801,7 @@ ProdParamsTlPrecRef {prec_ref} :: Elm.{symbol=Symbol.Nonterm (ProdParam prod_param); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParams ( (*______________________________________________________________________________*) -#516 "./Parse.hmh" +#517 "./Parse.hmh" ProdParamsProdParam {prod_param; prod_params_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23811,7 +23811,7 @@ ProdParamsProdParam {prod_param; prod_params_tl} | Elm.{symbol=Symbol.Nonterm (ProdParams prod_params); _} :: tl__hocc__ -> Symbol.Nonterm (ProdPattern ( (*______________________________________________________________________________*) -#519 "./Parse.hmh" +#520 "./Parse.hmh" ProdPatternParams {prod_params} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23822,7 +23822,7 @@ ProdPatternParams {prod_params} :: Elm.{symbol=Symbol.Token (EPSILON_ epsilon); _} :: tl__hocc__ -> Symbol.Nonterm (ProdPattern ( (*______________________________________________________________________________*) -#520 "./Parse.hmh" +#521 "./Parse.hmh" ProdPatternEpsilon {epsilon; prec_ref} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23832,7 +23832,7 @@ ProdPatternEpsilon {epsilon; prec_ref} | Elm.{symbol=Symbol.Nonterm (ProdPattern prod_pattern); _} :: tl__hocc__ -> Symbol.Nonterm (Prod ( (*______________________________________________________________________________*) -#523 "./Parse.hmh" +#524 "./Parse.hmh" Prod {prod_pattern} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23844,7 +23844,7 @@ Prod {prod_pattern} :: _ :: tl__hocc__ -> Symbol.Nonterm (ProdsTl ( (*______________________________________________________________________________*) -#526 "./Parse.hmh" +#527 "./Parse.hmh" ProdsTlProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23853,7 +23853,7 @@ ProdsTlProd {prod; prods_tl} (* 107 *) (function tl__hocc__ -> Symbol.Nonterm (ProdsTl ( (*______________________________________________________________________________*) -#527 "./Parse.hmh" +#528 "./Parse.hmh" ProdsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23864,7 +23864,7 @@ ProdsTlEpsilon :: _ :: tl__hocc__ -> Symbol.Nonterm (Prods ( (*______________________________________________________________________________*) -#531 "./Parse.hmh" +#532 "./Parse.hmh" ProdsProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23875,7 +23875,7 @@ ProdsProd {prod; prods_tl} :: Elm.{symbol=Symbol.Nonterm (Prod prod); _} :: tl__hocc__ -> Symbol.Nonterm (Prods ( (*______________________________________________________________________________*) -#531 "./Parse.hmh" +#532 "./Parse.hmh" ProdsProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23887,7 +23887,7 @@ ProdsProd {prod; prods_tl} :: Elm.{symbol=Symbol.Nonterm (Prods prods); _} :: tl__hocc__ -> Symbol.Nonterm (Reduction ( (*______________________________________________________________________________*) -#534 "./Parse.hmh" +#535 "./Parse.hmh" Reduction {prods; code} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23899,7 +23899,7 @@ Reduction {prods; code} :: _ :: tl__hocc__ -> Symbol.Nonterm (ReductionsTl ( (*______________________________________________________________________________*) -#538 "./Parse.hmh" +#539 "./Parse.hmh" ReductionsTlReduction {reduction; reductions_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23908,7 +23908,7 @@ ReductionsTlReduction {reduction; reductions_tl} (* 112 *) (function tl__hocc__ -> Symbol.Nonterm (ReductionsTl ( (*______________________________________________________________________________*) -#539 "./Parse.hmh" +#540 "./Parse.hmh" ReductionsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23918,7 +23918,7 @@ ReductionsTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Reduction reduction); _} :: tl__hocc__ -> Symbol.Nonterm (Reductions ( (*______________________________________________________________________________*) -#543 "./Parse.hmh" +#544 "./Parse.hmh" ReductionsReduction {reduction; reductions_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23928,7 +23928,7 @@ ReductionsReduction {reduction; reductions_tl} | _ :: tl__hocc__ -> Symbol.Nonterm (NontermType ( (*______________________________________________________________________________*) -#546 "./Parse.hmh" +#547 "./Parse.hmh" NontermTypeNonterm (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23938,7 +23938,7 @@ NontermTypeNonterm | _ :: tl__hocc__ -> Symbol.Nonterm (NontermType ( (*______________________________________________________________________________*) -#547 "./Parse.hmh" +#548 "./Parse.hmh" NontermTypeStart (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23952,7 +23952,7 @@ NontermTypeStart :: Elm.{symbol=Symbol.Nonterm (NontermType nonterm_type); _} :: tl__hocc__ -> Symbol.Nonterm (Nonterm ( (*______________________________________________________________________________*) -#551 "./Parse.hmh" +#552 "./Parse.hmh" NontermProds {nonterm_type; cident; prec_ref; prods} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23967,7 +23967,7 @@ NontermProds {nonterm_type; cident; prec_ref; prods} :: Elm.{symbol=Symbol.Nonterm (NontermType nonterm_type); _} :: tl__hocc__ -> Symbol.Nonterm (Nonterm ( (*______________________________________________________________________________*) -#554 "./Parse.hmh" +#555 "./Parse.hmh" NontermReductions {nonterm_type; cident; symbol_type; prec_ref; reductions} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23977,7 +23977,7 @@ NontermReductions {nonterm_type; cident; symbol_type; prec_ref; reductions} | Elm.{symbol=Symbol.Nonterm (Prec prec); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#557 "./Parse.hmh" +#558 "./Parse.hmh" StmtPrec {prec} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23987,7 +23987,7 @@ StmtPrec {prec} | Elm.{symbol=Symbol.Nonterm (Token token); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#558 "./Parse.hmh" +#559 "./Parse.hmh" StmtToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -23997,7 +23997,7 @@ StmtToken {token} | Elm.{symbol=Symbol.Nonterm (Nonterm nonterm); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#559 "./Parse.hmh" +#560 "./Parse.hmh" StmtNonterm {nonterm} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24009,7 +24009,7 @@ StmtNonterm {nonterm} :: _ :: tl__hocc__ -> Symbol.Nonterm (StmtsTl ( (*______________________________________________________________________________*) -#562 "./Parse.hmh" +#563 "./Parse.hmh" StmtsTl {stmt; stmts_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24018,7 +24018,7 @@ StmtsTl {stmt; stmts_tl} (* 122 *) (function tl__hocc__ -> Symbol.Nonterm (StmtsTl ( (*______________________________________________________________________________*) -#563 "./Parse.hmh" +#564 "./Parse.hmh" StmtsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24028,7 +24028,7 @@ StmtsTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Stmt stmt); _} :: tl__hocc__ -> Symbol.Nonterm (Stmts ( (*______________________________________________________________________________*) -#566 "./Parse.hmh" +#567 "./Parse.hmh" Stmts {stmt; stmts_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24041,7 +24041,7 @@ Stmts {stmt; stmts_tl} :: Elm.{symbol=Symbol.Token (HOCC hocc_); _} :: tl__hocc__ -> Symbol.Nonterm (Hocc ( (*______________________________________________________________________________*) -#569 "./Parse.hmh" +#570 "./Parse.hmh" Hocc {hocc_; indent; stmts; dedent} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24051,7 +24051,7 @@ Hocc {hocc_; indent; stmts; dedent} | Elm.{symbol=Symbol.Nonterm (Sep sep); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#574 "./Parse.hmh" +#575 "./Parse.hmh" let token = match sep with | SepLineDelim {line_delim=LINE_DELIM {token}} | SepSemi {semi=SEMI {token}} @@ -24067,7 +24067,7 @@ let token = match sep with | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24077,7 +24077,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24087,7 +24087,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (START (START {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24097,7 +24097,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24107,7 +24107,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24117,7 +24117,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (LEFT (LEFT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24127,7 +24127,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24137,7 +24137,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (PREC (PREC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24147,7 +24147,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (OTHER_TOKEN (OTHER_TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24157,7 +24157,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24167,7 +24167,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (CIDENT (CIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24177,7 +24177,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (USCORE (USCORE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24187,7 +24187,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (ISTRING (ISTRING {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24197,7 +24197,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (COLON_COLON_EQ (COLON_COLON_EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24207,7 +24207,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (AS (AS {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24217,7 +24217,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (OF (OF {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24227,7 +24227,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (COLON (COLON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24237,7 +24237,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (DOT (DOT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24247,7 +24247,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (ARROW (ARROW {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24257,7 +24257,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (LT (LT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24267,7 +24267,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (EQ (EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24277,7 +24277,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (COMMA (COMMA {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24287,7 +24287,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (INDENT (INDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24297,7 +24297,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (DEDENT (DEDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24307,7 +24307,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (LPAREN (LPAREN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24317,7 +24317,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (RPAREN (RPAREN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24327,7 +24327,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (LCAPTURE (LCAPTURE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24337,7 +24337,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (RCAPTURE (RCAPTURE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24347,7 +24347,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (LBRACK (LBRACK {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24357,7 +24357,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (RBRACK (RBRACK {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24367,7 +24367,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (LARRAY (LARRAY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24377,7 +24377,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (RARRAY (RARRAY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24387,7 +24387,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (LCURLY (LCURLY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24397,7 +24397,7 @@ MatterToken {token} | Elm.{symbol=Symbol.Token (RCURLY (RCURLY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#615 "./Parse.hmh" +#616 "./Parse.hmh" MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24408,7 +24408,7 @@ MatterToken {token} :: Elm.{symbol=Symbol.Nonterm (MatterToken (MatterToken {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#618 "./Parse.hmh" +#619 "./Parse.hmh" Matter {token; matter} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24417,7 +24417,7 @@ Matter {token; matter} (* 161 *) (function tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#619 "./Parse.hmh" +#620 "./Parse.hmh" MatterEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24429,7 +24429,7 @@ MatterEpsilon :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmh ( (*______________________________________________________________________________*) -#622 "./Parse.hmh" +#623 "./Parse.hmh" Hmh {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24443,7 +24443,7 @@ Hmh {prelude; hocc_; postlude; eoi} :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmhi ( (*______________________________________________________________________________*) -#625 "./Parse.hmh" +#626 "./Parse.hmh" Hmhi {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24656,7 +24656,7 @@ Hmhi {prelude; hocc_; postlude; eoi} | Status.Prefix -> t |> feed token |> walk | _ -> not_reached () end -#626 "./Parse.hmh" +#627 "./Parse.hmh" let rec scan scanner = let scanner, scan_token = Scan.next scanner in @@ -24765,37 +24765,16 @@ let hmhi scanner = let hmh scanner = let rec inner scanner errs parser = begin let scanner, scan_token, token, mals = scan scanner in -(* - File.Fmt.stderr - |> Fmt.fmt "XXX scan_token=" - |> Scan.Token.pp scan_token - |> Fmt.fmt "\n" - |> ignore; -*) let errs = match mals with | [] -> errs | _ -> List.fold ~init:errs ~f:(fun errs mal -> Error.init_mal mal :: errs) mals in - let {stack=_XXX; status} as parser = next token parser in -(* - File.Fmt.stderr - |> Fmt.fmt "XXX status=" - |> Status.pp status - |> Fmt.fmt "\n" - |> ignore; -*) + let {status; _} as parser = next token parser in match status, errs with | Prefix, _ -> inner scanner errs parser | Accept (Hmh hmh), [] -> scanner, Ok hmh | Accept (Hmh _), _ -> scanner, Error errs | Reject _, _ -> begin -(* - File.Fmt.stderr - |> Fmt.fmt "XXX stack=" - |> Stack.fmt ~alt:true stack - |> Fmt.fmt "\n" - |> ignore; -*) let errs = Error.init_token scan_token "Unexpected token" :: errs in scanner, Error errs end diff --git a/bootstrap/test/hocc/Parse_a.expected b/bootstrap/test/hocc/Parse_a.expected index 7cda2180..25f5aaf9 100644 --- a/bootstrap/test/hocc/Parse_a.expected +++ b/bootstrap/test/hocc/Parse_a.expected @@ -41,4 +41,4 @@ hocc: N6 ::= OP N4 hocc: N6 ::= N4 N5 hocc: N6 ::= epsilon hocc: N7 ::= OP N1 N2 -hocc: N8 ::= N5 N5 N5 N5 N6 N5 N5 N5 N5 N5 N5 N5 +hocc: N8 ::= N5 N5 N5 N5 N6 N5 N5 N5 N5 N5 N5 N5 N5 N5 N5 N5 N5 N5 N5 N5 N5 diff --git a/bootstrap/test/hocc/Parse_a.hmh b/bootstrap/test/hocc/Parse_a.hmh index 7b26c4d4..6ffd69b0 100644 --- a/bootstrap/test/hocc/Parse_a.hmh +++ b/bootstrap/test/hocc/Parse_a.hmh @@ -1,5 +1,9 @@ # Matter. +# Various special tokens which are only contextually reserved. +nonterm epsilon start token neutral left right prec _ ::= +of : . -> | < = , ; as ( ) (| |) [ ] [| |] { } + include hocc neutral p1 left p2 @@ -63,6 +67,18 @@ include hocc (X.(x9)):N5 (x10, x11):N5 {x12; x13=x14; x15={x16; _}; _;}:N5 - -> () + hocc:N5 + nonterm:N5 + epsilon:N5 + start:N5 + token:N5 + neutral:N5 + left:N5 + right:N5 + prec:N5 + -> + # Various special tokens which are only contextually reserved. + hocc nonterm epsilon start token neutral left right prec _ ::= + of : . -> | < = , ; as ( ) (| |) [ ] [| |] { } # Matter. diff --git a/doc/tools/hocc.md b/doc/tools/hocc.md index 0cdda2ae..0e1d2cfd 100644 --- a/doc/tools/hocc.md +++ b/doc/tools/hocc.md @@ -71,7 +71,7 @@ Example invocations: ## Parser specification The `hocc` specification grammar is layered onto Hemlock's grammar via the addition of several -keywords and one operator: +contextual keywords and one operator: - Parser: `hocc` - Symbols: @@ -89,6 +89,10 @@ tree construction. Precedences may be declared via the `neutral`/`left`/`right` symbols may be assigned those precedences for use during conflict resolution via the `prec` reference clause. +The `hocc` keyword introduces the `hocc` statement, and it cannot be otherwise used outside the +`hocc` statement. There are no other syntactic restrictions of note with regard to the keywords and +operator. + The following subsections document specification semantics. See the `hocc` [grammar](#grammar) specification for comprehensive syntax details. @@ -147,9 +151,9 @@ actions on the corresponding start symbol. The wrapper's name is generated by ap start symbol's name. For example, `start S ...` implies the `S'` wrapper symbol. As such, `start S ...` and `nonterm S' ...` cannot coexist. -As for tokens, non-terminals with variant contents must have a declared data type. A parser which -universally utilizes implicitly typed non-terminals does not construct a parse tree, but it may -still be useful as a recognizer, or as an abstract grammar specification which `hocc` can verify +Just as for tokens, non-terminals with variant contents must have a declared data type. A parser +which universally utilizes implicitly typed non-terminals does not construct a parse tree, but it +may still be useful as a recognizer, or as an abstract grammar specification which `hocc` can verify without generating a parser. ```hocc @@ -210,18 +214,19 @@ for the enclosing non-terminal. start S ::= N B prec p1 ``` -All of the above examples use non-terminals of implicit data type `Unit.t`, which also implies -trivial `()` "reduction" code. This can be written explicitly. +All of the above examples use non-terminals lacking concrete type. Non-terminals in a runnable +parser must have concrete type, `unit` in the simplest case, as well as reduction code associated +with every production. ```hocc hocc token A token B - nonterm N of Unit.t ::= + nonterm N of unit ::= | A | epsilon -> () - start S of Unit.t ::= N B -> () + start S of unit ::= N B -> () ``` Parsers which construct a parse tree may need to associate production-specific reduction code rather @@ -240,6 +245,39 @@ hocc u1 + u2 ``` +The following example uses richer pattern binding syntax to reduce boilerplate. Patterns support +relevant Hemlock pattern syntax, with the notable exception of type constraints, which are out of +place in `hocc` proper because it makes no attempt at typing embedded code. + +```hocc +type point: point = { + x: r64 + y: r64 + } + +hocc + token R64 of r64 + token LPAREN "(" + token RPAREN ")" + token COMMA "," + left pAdd + token PLUS "+" prec pAdd + token MINUS "-" prec pAdd + token EOI + + nonterm Point of point ::= + | "(" x:R64 "," y:R64 ")" -> {x; y} + | p0:Point "+" p1:Point prec pAdd -> + let {x=x0; y=y0} = p0 + let {x=x1; y=y1} = p1 + {x=x0+x1; y=y0+y1} + | {x=x0; y=y0}:Point "-" {x=x1; y=y1}:Point prec pAdd -> + {x=x0-x1; y=y0-y1} + + start S of point ::= + | p:Point EOI -> p +``` + Ordinarily, the characteristic finite state machine (CFSM) corresponding to an LR(1) grammar delays each transition until the lookahead symbol becomes available. However this poses a challenge for start symbols because there is no concrete lookahead symbol past the end of input. The following @@ -914,6 +952,8 @@ The `hocc` specification language grammar is equivalent to the following specifi ```hocc hocc + neutral pCodeTl + # hocc-specific keywords token HOCC "hocc" token NONTERM "nonterm" @@ -927,7 +967,8 @@ hocc # Identifiers token UIDENT # Uncapitalized - token CIDENT # Capitalized + right pCIDENT + token CIDENT prec pCIDENT # Capitalized token USCORE "_" # Token alias @@ -937,12 +978,19 @@ hocc token COLON_COLON_EQ "::=" token OF "of" token COLON ":" - token DOT "." + left pDOT + token DOT "." prec pDOT token ARROW "->" - token BAR "|" + neutral pBAR < pCodeTl + token BAR "|" prec pBAR token LT "<" - token COMMA "," - token SEMI ";" + left pCOMMA < pCIDENT + token EQ "=" + token COMMA "," prec pCOMMA + right pSEMI < pCodeTl + token SEMI ";" prec pSEMI + neutral pAS < pCOMMA + token AS "as" prec pAS token LINE_DELIM # Left-right paired delimiters @@ -1022,46 +1070,93 @@ hocc | "{" Codes0 "}" nonterm CodeToken ::= + | "hocc" | "nonterm" | "epsilon" | "start" | "token" | "neutral" | "left" | "right" | "prec" | OTHER_TOKEN | UIDENT | CIDENT | "_" | ISTRING - | "of" - | ":" - | "." - | "->" - | "<" - | "," + | "::=" + | "of" | ":" | "." | "->" | "|" | "<" | "=" | "," | ";" nonterm CodeTl ::= | Delimited CodeTl - | OTHER_TOKEN CodeTl - | epsilon + | CodeToken CodeTl + | epsilon prec pCodeTl nonterm Code ::= | Delimited CodeTl | CodeToken CodeTl + nonterm Binding ::= + | "hocc" | "nonterm" | "epsilon" | "start" | "token" | "neutral" | "left" | "right" | "prec" + | UIDENT + + nonterm PatternField ::= + | Binding + | UIDENT "=" Pattern + + nonterm PatternFields prec pSEMI ::= + | PatternField + | PatternField ";" "_" + | PatternField ";" PatternFields + + nonterm SemiSuffix ::= + | ";" + | epsilon + + nonterm ModulePath ::= + | CIDENT + | ModulePath "." ModulePath prec pDOT + + nonterm Pattern ::= + | "_" + | Binding + | Pattern "as" Binding prec pAS + | "(" Pattern ")" + | CIDENT Pattern prec pCIDENT + | ModulePath "." "(" Pattern ")" + | Pattern "," Pattern prec pCOMMA + | "{" PatternFields SemiSuffix "}" + | ModulePath "." "{" PatternFields SemiSuffix "}" + nonterm ProdParamSymbol ::= | CIDENT | ISTRING - nonterm ProdParam ::= - | Ident ":" ProdParamSymbol - | ProdParamSymbol + nonterm Binding ::= + | "hocc" | "nonterm" | "epsilon" | "start" | "token" | "neutral" | "left" | "right" | "prec" + | UIDENT + + nonterm PatternField ::= + | Binding + | UIDENT "=" Pattern + + nonterm PatternFields prec pSEMI ::= + | PatternField + | PatternField ";" "_" + | PatternField ";" PatternFields - nonterm ProdParamsTl ::= - | ProdParam ProdParamsTl + nonterm SemiSuffix ::= + | ";" | epsilon - nonterm ProdParams ::= ProdParam ProdParamsTl + nonterm ModulePath ::= + | CIDENT + | ModulePath "." ModulePath prec pDOT - nonterm ProdPattern ::= - | ProdParams - | "epsilon" + nonterm Pattern ::= + | "_" + | Binding + | Pattern "as" Binding prec pAS + | "(" Pattern ")" + | CIDENT Pattern prec pCIDENT + | ModulePath "." "(" Pattern ")" + | Pattern "," Pattern prec pCOMMA + | "{" PatternFields SemiSuffix "}" + | ModulePath "." "{" PatternFields SemiSuffix "}" - nonterm Prod ::= ProdPattern PrecRef + nonterm Prod ::= ProdPattern nonterm ProdsTl ::= | "|" Prod ProdsTl @@ -1090,7 +1185,6 @@ hocc | Prec | Token | Nonterm - | Code nonterm StmtsTl ::= | LINE_DELIM Stmt StmtsTl @@ -1101,20 +1195,22 @@ hocc nonterm Hocc ::= "hocc" INDENT Stmts DEDENT nonterm MatterToken ::= - | CodeToken | Sep + | "nonterm" | "epsilon" | "start" | "token" | "neutral" | "left" | "right" | "prec" + | OTHER_TOKEN + | UIDENT + | CIDENT + | "_" + | ISTRING + | "::=" + | "as" | "of" | ":" | "." | "->" | "<" | "=" | "," | INDENT | DEDENT - | "(" - | ")" - | "(|" - | "|)" - | "[" - | "]" - | "[|" - | "|]" - | "{" - | "}" + | "(" | ")" + | "(|" | "|)" + | "[" | "]" + | "[|" | "|]" + | "{" | "}" nonterm Matter ::= | MatterToken Matter