From aa76e02d26270cccc6a94da01c697c390269175c Mon Sep 17 00:00:00 2001 From: Jason Evans Date: Wed, 21 Aug 2024 10:26:24 -0700 Subject: [PATCH] Simplify Sep* --- bootstrap/bin/hocc/Parse.hmh | 30 +++--- bootstrap/bin/hocc/Parse.ml | 185 +++++++++++++++++------------------ 2 files changed, 103 insertions(+), 112 deletions(-) diff --git a/bootstrap/bin/hocc/Parse.hmh b/bootstrap/bin/hocc/Parse.hmh index 6a6144e7..ab0e4a01 100644 --- a/bootstrap/bin/hocc/Parse.hmh +++ b/bootstrap/bin/hocc/Parse.hmh @@ -166,9 +166,9 @@ type nonterm_ident = | Token of {cident: token_cident; token_alias: nonterm_token_alias; symbol_type0: nonterm_symbol_type0; prec_ref: nonterm_prec_ref} and nonterm_sep = - | SepLineDelim of {line_delim: Scan.Token.t} - | SepSemi of {semi: Scan.Token.t} - | SepBar of {bar: Scan.Token.t} + | SepLineDelim of {line_delim: token_line_delim} + | SepSemi of {semi: token_semi} + | SepBar of {bar: token_bar} and nonterm_codes_tl = | CodesTlSepCode of {sep: nonterm_sep; code: nonterm_code; codes_tl: nonterm_codes_tl} | CodesTlEpsilon @@ -356,15 +356,9 @@ include hocc Token {cident; token_alias; symbol_type0; prec_ref} nonterm Sep of nonterm_sep ::= - | line_delim:LINE_DELIM -> - let LINE_DELIM {token_=line_delim} = line_delim in - SepLineDelim {line_delim} - | semi:";" -> - let SEMI {token_=semi} = semi in - SepSemi {semi} - | bar:"|" -> - let BAR {token_=bar} = bar in - SepBar {bar} + | line_delim:LINE_DELIM -> SepLineDelim {line_delim} + | semi:";" -> SepSemi {semi} + | bar:"|" -> SepBar {bar} nonterm CodesTl of nonterm_codes_tl ::= | sep:Sep code:Code codes_tl:CodesTl -> CodesTlSepCode {sep; code; codes_tl} @@ -508,9 +502,9 @@ include hocc MatterToken {token_} | sep:Sep -> let token_ = match sep with - | SepLineDelim {line_delim=token_} - | SepSemi {semi=token_} - | SepBar {bar=token_} + | SepLineDelim {line_delim=LINE_DELIM {token_}} + | SepSemi {semi=SEMI {token_}} + | SepBar {bar=BAR {token_}} -> token_ in MatterToken {token_} @@ -1210,17 +1204,17 @@ let rec pp_token_hocc (HOCC {token_}) formatter = | SepLineDelim {line_delim} -> formatter |> Fmt.fmt "SepLineDelim " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "line_delim=" |> Scan.Token.pp line_delim + |> Fmt.fmt "line_delim=" |> pp_token_line_delim line_delim |> fmt_rcurly ~alt ~width | SepSemi {semi} -> formatter |> Fmt.fmt "SepSemi " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "semi=" |> Scan.Token.pp semi + |> Fmt.fmt "semi=" |> pp_token_semi semi |> fmt_rcurly ~alt ~width | SepBar {bar} -> formatter |> Fmt.fmt "SepBar " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "bar=" |> Scan.Token.pp bar + |> Fmt.fmt "bar=" |> pp_token_bar bar |> fmt_rcurly ~alt ~width and pp_sep sep formatter = fmt_sep sep formatter diff --git a/bootstrap/bin/hocc/Parse.ml b/bootstrap/bin/hocc/Parse.ml index c8bea676..4b4f6996 100644 --- a/bootstrap/bin/hocc/Parse.ml +++ b/bootstrap/bin/hocc/Parse.ml @@ -159,9 +159,9 @@ type nonterm_ident = | Token of {cident: token_cident; token_alias: nonterm_token_alias; symbol_type0: nonterm_symbol_type0; prec_ref: nonterm_prec_ref} and nonterm_sep = - | SepLineDelim of {line_delim: Scan.Token.t} - | SepSemi of {semi: Scan.Token.t} - | SepBar of {bar: Scan.Token.t} + | SepLineDelim of {line_delim: token_line_delim} + | SepSemi of {semi: token_semi} + | SepBar of {bar: token_bar} and nonterm_codes_tl = | CodesTlSepCode of {sep: nonterm_sep; code: nonterm_code; codes_tl: nonterm_codes_tl} | CodesTlEpsilon @@ -12209,9 +12209,8 @@ Token {cident; token_alias; symbol_type0; prec_ref} | Elm.{symbol=Symbol.Token (LINE_DELIM line_delim); _} :: tl__hocc__ -> Symbol.Nonterm (Sep ( (*______________________________________________________________________________*) -#360 "./Parse.hmh" -let LINE_DELIM {token_=line_delim} = line_delim in - SepLineDelim {line_delim} +#359 "./Parse.hmh" +SepLineDelim {line_delim} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () @@ -12220,9 +12219,8 @@ let LINE_DELIM {token_=line_delim} = line_delim in | Elm.{symbol=Symbol.Token (SEMI semi); _} :: tl__hocc__ -> Symbol.Nonterm (Sep ( (*______________________________________________________________________________*) -#363 "./Parse.hmh" -let SEMI {token_=semi} = semi in - SepSemi {semi} +#360 "./Parse.hmh" +SepSemi {semi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () @@ -12231,9 +12229,8 @@ let SEMI {token_=semi} = semi in | Elm.{symbol=Symbol.Token (BAR bar); _} :: tl__hocc__ -> Symbol.Nonterm (Sep ( (*______________________________________________________________________________*) -#366 "./Parse.hmh" -let BAR {token_=bar} = bar in - SepBar {bar} +#361 "./Parse.hmh" +SepBar {bar} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () @@ -12244,7 +12241,7 @@ let BAR {token_=bar} = bar in :: Elm.{symbol=Symbol.Nonterm (Sep sep); _} :: tl__hocc__ -> Symbol.Nonterm (CodesTl ( (*______________________________________________________________________________*) -#370 "./Parse.hmh" +#364 "./Parse.hmh" CodesTlSepCode {sep; code; codes_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12253,7 +12250,7 @@ CodesTlSepCode {sep; code; codes_tl} (* 26 *) (function tl__hocc__ -> Symbol.Nonterm (CodesTl ( (*______________________________________________________________________________*) -#371 "./Parse.hmh" +#365 "./Parse.hmh" CodesTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12263,7 +12260,7 @@ CodesTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Code code); _} :: tl__hocc__ -> Symbol.Nonterm (Codes ( (*______________________________________________________________________________*) -#374 "./Parse.hmh" +#368 "./Parse.hmh" Codes {code; codes_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12273,7 +12270,7 @@ Codes {code; codes_tl} | Elm.{symbol=Symbol.Nonterm (Codes codes); _} :: tl__hocc__ -> Symbol.Nonterm (Codes0 ( (*______________________________________________________________________________*) -#377 "./Parse.hmh" +#371 "./Parse.hmh" Codes0Codes {codes} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12282,7 +12279,7 @@ Codes0Codes {codes} (* 29 *) (function tl__hocc__ -> Symbol.Nonterm (Codes0 ( (*______________________________________________________________________________*) -#378 "./Parse.hmh" +#372 "./Parse.hmh" Codes0Epsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12293,7 +12290,7 @@ Codes0Epsilon :: Elm.{symbol=Symbol.Token (INDENT indent); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#381 "./Parse.hmh" +#375 "./Parse.hmh" DelimitedBlock {indent; codes; dedent} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12305,7 +12302,7 @@ DelimitedBlock {indent; codes; dedent} :: Elm.{symbol=Symbol.Token (LPAREN lparen); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#382 "./Parse.hmh" +#376 "./Parse.hmh" DelimitedParen {lparen; codes0; rparen} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12317,7 +12314,7 @@ DelimitedParen {lparen; codes0; rparen} :: Elm.{symbol=Symbol.Token (LCAPTURE lcapture); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#383 "./Parse.hmh" +#377 "./Parse.hmh" DelimitedCapture {lcapture; codes0; rcapture} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12329,7 +12326,7 @@ DelimitedCapture {lcapture; codes0; rcapture} :: Elm.{symbol=Symbol.Token (LBRACK lbrack); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#384 "./Parse.hmh" +#378 "./Parse.hmh" DelimitedList {lbrack; codes0; rbrack} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12341,7 +12338,7 @@ DelimitedList {lbrack; codes0; rbrack} :: Elm.{symbol=Symbol.Token (LARRAY larray); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#385 "./Parse.hmh" +#379 "./Parse.hmh" DelimitedArray {larray; codes0; rarray} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12353,7 +12350,7 @@ DelimitedArray {larray; codes0; rarray} :: Elm.{symbol=Symbol.Token (LCURLY lcurly); _} :: tl__hocc__ -> Symbol.Nonterm (Delimited ( (*______________________________________________________________________________*) -#386 "./Parse.hmh" +#380 "./Parse.hmh" DelimitedModule {lcurly; codes0; rcurly} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12363,7 +12360,7 @@ DelimitedModule {lcurly; codes0; rcurly} | Elm.{symbol=Symbol.Token (OTHER_TOKEN token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#390 "./Parse.hmh" +#384 "./Parse.hmh" let OTHER_TOKEN {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12374,7 +12371,7 @@ let OTHER_TOKEN {token_} = token_ in | Elm.{symbol=Symbol.Token (UIDENT token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#393 "./Parse.hmh" +#387 "./Parse.hmh" let UIDENT {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12385,7 +12382,7 @@ let UIDENT {token_} = token_ in | Elm.{symbol=Symbol.Token (CIDENT token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#396 "./Parse.hmh" +#390 "./Parse.hmh" let CIDENT {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12396,7 +12393,7 @@ let CIDENT {token_} = token_ in | Elm.{symbol=Symbol.Token (USCORE token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#399 "./Parse.hmh" +#393 "./Parse.hmh" let USCORE {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12407,7 +12404,7 @@ let USCORE {token_} = token_ in | Elm.{symbol=Symbol.Token (ISTRING token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#402 "./Parse.hmh" +#396 "./Parse.hmh" let ISTRING {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12418,7 +12415,7 @@ let ISTRING {token_} = token_ in | Elm.{symbol=Symbol.Token (OF token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#405 "./Parse.hmh" +#399 "./Parse.hmh" let OF {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12429,7 +12426,7 @@ let OF {token_} = token_ in | Elm.{symbol=Symbol.Token (COLON token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#408 "./Parse.hmh" +#402 "./Parse.hmh" let COLON {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12440,7 +12437,7 @@ let COLON {token_} = token_ in | Elm.{symbol=Symbol.Token (DOT token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#411 "./Parse.hmh" +#405 "./Parse.hmh" let DOT {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12451,7 +12448,7 @@ let DOT {token_} = token_ in | Elm.{symbol=Symbol.Token (ARROW token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#414 "./Parse.hmh" +#408 "./Parse.hmh" let ARROW {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12462,7 +12459,7 @@ let ARROW {token_} = token_ in | Elm.{symbol=Symbol.Token (LT token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#417 "./Parse.hmh" +#411 "./Parse.hmh" let LT {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12473,7 +12470,7 @@ let LT {token_} = token_ in | Elm.{symbol=Symbol.Token (COMMA token_); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) -#420 "./Parse.hmh" +#414 "./Parse.hmh" let COMMA {token_} = token_ in CodeToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12485,7 +12482,7 @@ let COMMA {token_} = token_ in :: Elm.{symbol=Symbol.Nonterm (Delimited delimited); _} :: tl__hocc__ -> Symbol.Nonterm (CodeTl ( (*______________________________________________________________________________*) -#424 "./Parse.hmh" +#418 "./Parse.hmh" CodeTlDelimited {delimited; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12496,7 +12493,7 @@ CodeTlDelimited {delimited; code_tl} :: Elm.{symbol=Symbol.Nonterm (CodeToken code_token); _} :: tl__hocc__ -> Symbol.Nonterm (CodeTl ( (*______________________________________________________________________________*) -#425 "./Parse.hmh" +#419 "./Parse.hmh" CodeTlCodeToken {code_token; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12505,7 +12502,7 @@ CodeTlCodeToken {code_token; code_tl} (* 49 *) (function tl__hocc__ -> Symbol.Nonterm (CodeTl ( (*______________________________________________________________________________*) -#426 "./Parse.hmh" +#420 "./Parse.hmh" CodeTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12515,7 +12512,7 @@ CodeTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Delimited delimited); _} :: tl__hocc__ -> Symbol.Nonterm (Code ( (*______________________________________________________________________________*) -#429 "./Parse.hmh" +#423 "./Parse.hmh" CodeDelimited {delimited; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12526,7 +12523,7 @@ CodeDelimited {delimited; code_tl} :: Elm.{symbol=Symbol.Nonterm (CodeToken code_token); _} :: tl__hocc__ -> Symbol.Nonterm (Code ( (*______________________________________________________________________________*) -#430 "./Parse.hmh" +#424 "./Parse.hmh" CodeCodeToken {code_token; code_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12536,7 +12533,7 @@ CodeCodeToken {code_token; code_tl} | Elm.{symbol=Symbol.Token (CIDENT cident); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamSymbol ( (*______________________________________________________________________________*) -#433 "./Parse.hmh" +#427 "./Parse.hmh" ProdParamSymbolCident {cident} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12546,7 +12543,7 @@ ProdParamSymbolCident {cident} | Elm.{symbol=Symbol.Token (ISTRING alias); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamSymbol ( (*______________________________________________________________________________*) -#434 "./Parse.hmh" +#428 "./Parse.hmh" ProdParamSymbolAlias {alias} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12558,7 +12555,7 @@ ProdParamSymbolAlias {alias} :: Elm.{symbol=Symbol.Nonterm (Ident ident); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#438 "./Parse.hmh" +#432 "./Parse.hmh" ProdParamBinding {ident; prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12568,7 +12565,7 @@ ProdParamBinding {ident; prod_param_symbol} | Elm.{symbol=Symbol.Nonterm (ProdParamSymbol prod_param_symbol); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParam ( (*______________________________________________________________________________*) -#439 "./Parse.hmh" +#433 "./Parse.hmh" ProdParam {prod_param_symbol} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12579,7 +12576,7 @@ ProdParam {prod_param_symbol} :: Elm.{symbol=Symbol.Nonterm (ProdParam prod_param); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParamsTl ( (*______________________________________________________________________________*) -#443 "./Parse.hmh" +#437 "./Parse.hmh" ProdParamsTlProdParam {prod_param; prod_params_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12588,7 +12585,7 @@ ProdParamsTlProdParam {prod_param; prod_params_tl} (* 57 *) (function tl__hocc__ -> Symbol.Nonterm (ProdParamsTl ( (*______________________________________________________________________________*) -#444 "./Parse.hmh" +#438 "./Parse.hmh" ProdParamsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12598,7 +12595,7 @@ ProdParamsTlEpsilon :: Elm.{symbol=Symbol.Nonterm (ProdParam prod_param); _} :: tl__hocc__ -> Symbol.Nonterm (ProdParams ( (*______________________________________________________________________________*) -#448 "./Parse.hmh" +#442 "./Parse.hmh" ProdParamsProdParam {prod_param; prod_params_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12608,7 +12605,7 @@ ProdParamsProdParam {prod_param; prod_params_tl} | Elm.{symbol=Symbol.Nonterm (ProdParams prod_params); _} :: tl__hocc__ -> Symbol.Nonterm (ProdPattern ( (*______________________________________________________________________________*) -#451 "./Parse.hmh" +#445 "./Parse.hmh" ProdPatternParams {prod_params} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12618,7 +12615,7 @@ ProdPatternParams {prod_params} | Elm.{symbol=Symbol.Token (EPSILON_ epsilon_); _} :: tl__hocc__ -> Symbol.Nonterm (ProdPattern ( (*______________________________________________________________________________*) -#452 "./Parse.hmh" +#446 "./Parse.hmh" ProdPatternEpsilon {epsilon_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12629,7 +12626,7 @@ ProdPatternEpsilon {epsilon_} :: Elm.{symbol=Symbol.Nonterm (ProdPattern prod_pattern); _} :: tl__hocc__ -> Symbol.Nonterm (Prod ( (*______________________________________________________________________________*) -#455 "./Parse.hmh" +#449 "./Parse.hmh" Prod {prod_pattern; prec_ref} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12641,7 +12638,7 @@ Prod {prod_pattern; prec_ref} :: _ :: tl__hocc__ -> Symbol.Nonterm (ProdsTl ( (*______________________________________________________________________________*) -#458 "./Parse.hmh" +#452 "./Parse.hmh" ProdsTlProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12650,7 +12647,7 @@ ProdsTlProd {prod; prods_tl} (* 63 *) (function tl__hocc__ -> Symbol.Nonterm (ProdsTl ( (*______________________________________________________________________________*) -#459 "./Parse.hmh" +#453 "./Parse.hmh" ProdsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12661,7 +12658,7 @@ ProdsTlEpsilon :: _ :: tl__hocc__ -> Symbol.Nonterm (Prods ( (*______________________________________________________________________________*) -#463 "./Parse.hmh" +#457 "./Parse.hmh" ProdsProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12672,7 +12669,7 @@ ProdsProd {prod; prods_tl} :: Elm.{symbol=Symbol.Nonterm (Prod prod); _} :: tl__hocc__ -> Symbol.Nonterm (Prods ( (*______________________________________________________________________________*) -#464 "./Parse.hmh" +#458 "./Parse.hmh" ProdsProd {prod; prods_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12684,7 +12681,7 @@ ProdsProd {prod; prods_tl} :: Elm.{symbol=Symbol.Nonterm (Prods prods); _} :: tl__hocc__ -> Symbol.Nonterm (Reduction ( (*______________________________________________________________________________*) -#467 "./Parse.hmh" +#461 "./Parse.hmh" Reduction {prods; code} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12696,7 +12693,7 @@ Reduction {prods; code} :: _ :: tl__hocc__ -> Symbol.Nonterm (ReductionsTl ( (*______________________________________________________________________________*) -#471 "./Parse.hmh" +#465 "./Parse.hmh" ReductionsTlReduction {reduction; reductions_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12705,7 +12702,7 @@ ReductionsTlReduction {reduction; reductions_tl} (* 68 *) (function tl__hocc__ -> Symbol.Nonterm (ReductionsTl ( (*______________________________________________________________________________*) -#472 "./Parse.hmh" +#466 "./Parse.hmh" ReductionsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12715,7 +12712,7 @@ ReductionsTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Reduction reduction); _} :: tl__hocc__ -> Symbol.Nonterm (Reductions ( (*______________________________________________________________________________*) -#476 "./Parse.hmh" +#470 "./Parse.hmh" ReductionsReduction {reduction; reductions_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12725,7 +12722,7 @@ ReductionsReduction {reduction; reductions_tl} | _ :: tl__hocc__ -> Symbol.Nonterm (NontermType ( (*______________________________________________________________________________*) -#479 "./Parse.hmh" +#473 "./Parse.hmh" NontermTypeNonterm (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12735,7 +12732,7 @@ NontermTypeNonterm | _ :: tl__hocc__ -> Symbol.Nonterm (NontermType ( (*______________________________________________________________________________*) -#480 "./Parse.hmh" +#474 "./Parse.hmh" NontermTypeStart (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12749,7 +12746,7 @@ NontermTypeStart :: Elm.{symbol=Symbol.Nonterm (NontermType nonterm_type); _} :: tl__hocc__ -> Symbol.Nonterm (Nonterm ( (*______________________________________________________________________________*) -#484 "./Parse.hmh" +#478 "./Parse.hmh" NontermProds {nonterm_type; cident; prec_ref; prods} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12764,7 +12761,7 @@ NontermProds {nonterm_type; cident; prec_ref; prods} :: Elm.{symbol=Symbol.Nonterm (NontermType nonterm_type); _} :: tl__hocc__ -> Symbol.Nonterm (Nonterm ( (*______________________________________________________________________________*) -#487 "./Parse.hmh" +#481 "./Parse.hmh" NontermReductions {nonterm_type; cident; symbol_type; prec_ref; reductions} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12774,7 +12771,7 @@ NontermReductions {nonterm_type; cident; symbol_type; prec_ref; reductions} | Elm.{symbol=Symbol.Nonterm (Prec prec_); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#490 "./Parse.hmh" +#484 "./Parse.hmh" StmtPrec {prec_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12784,7 +12781,7 @@ StmtPrec {prec_} | Elm.{symbol=Symbol.Nonterm (Token token_); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#491 "./Parse.hmh" +#485 "./Parse.hmh" StmtToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12794,7 +12791,7 @@ StmtToken {token_} | Elm.{symbol=Symbol.Nonterm (Nonterm nonterm_); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#492 "./Parse.hmh" +#486 "./Parse.hmh" StmtNonterm {nonterm_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12804,7 +12801,7 @@ StmtNonterm {nonterm_} | Elm.{symbol=Symbol.Nonterm (Code code); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) -#493 "./Parse.hmh" +#487 "./Parse.hmh" StmtCode {code} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12816,7 +12813,7 @@ StmtCode {code} :: _ :: tl__hocc__ -> Symbol.Nonterm (StmtsTl ( (*______________________________________________________________________________*) -#496 "./Parse.hmh" +#490 "./Parse.hmh" StmtsTl {stmt; stmts_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12825,7 +12822,7 @@ StmtsTl {stmt; stmts_tl} (* 79 *) (function tl__hocc__ -> Symbol.Nonterm (StmtsTl ( (*______________________________________________________________________________*) -#497 "./Parse.hmh" +#491 "./Parse.hmh" StmtsTlEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12835,7 +12832,7 @@ StmtsTlEpsilon :: Elm.{symbol=Symbol.Nonterm (Stmt stmt); _} :: tl__hocc__ -> Symbol.Nonterm (Stmts ( (*______________________________________________________________________________*) -#500 "./Parse.hmh" +#494 "./Parse.hmh" Stmts {stmt; stmts_tl} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12848,7 +12845,7 @@ Stmts {stmt; stmts_tl} :: Elm.{symbol=Symbol.Token (HOCC hocc_); _} :: tl__hocc__ -> Symbol.Nonterm (Hocc ( (*______________________________________________________________________________*) -#503 "./Parse.hmh" +#497 "./Parse.hmh" Hocc {hocc_; indent; stmts; dedent} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -12858,7 +12855,7 @@ Hocc {hocc_; indent; stmts; dedent} | Elm.{symbol=Symbol.Nonterm (CodeToken code_token); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#507 "./Parse.hmh" +#501 "./Parse.hmh" let CodeToken {token_} = code_token in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12869,11 +12866,11 @@ let CodeToken {token_} = code_token in | Elm.{symbol=Symbol.Nonterm (Sep sep); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#510 "./Parse.hmh" +#504 "./Parse.hmh" let token_ = match sep with - | SepLineDelim {line_delim=token_} - | SepSemi {semi=token_} - | SepBar {bar=token_} + | SepLineDelim {line_delim=LINE_DELIM {token_}} + | SepSemi {semi=SEMI {token_}} + | SepBar {bar=BAR {token_}} -> token_ in MatterToken {token_} @@ -12885,7 +12882,7 @@ let token_ = match sep with | Elm.{symbol=Symbol.Token (INDENT token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#518 "./Parse.hmh" +#512 "./Parse.hmh" let INDENT {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12896,7 +12893,7 @@ let INDENT {token_} = token_ in | Elm.{symbol=Symbol.Token (DEDENT token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#521 "./Parse.hmh" +#515 "./Parse.hmh" let DEDENT {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12907,7 +12904,7 @@ let DEDENT {token_} = token_ in | Elm.{symbol=Symbol.Token (LPAREN token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#524 "./Parse.hmh" +#518 "./Parse.hmh" let LPAREN {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12918,7 +12915,7 @@ let LPAREN {token_} = token_ in | Elm.{symbol=Symbol.Token (RPAREN token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#527 "./Parse.hmh" +#521 "./Parse.hmh" let RPAREN {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12929,7 +12926,7 @@ let RPAREN {token_} = token_ in | Elm.{symbol=Symbol.Token (LCAPTURE token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#530 "./Parse.hmh" +#524 "./Parse.hmh" let LCAPTURE {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12940,7 +12937,7 @@ let LCAPTURE {token_} = token_ in | Elm.{symbol=Symbol.Token (RCAPTURE token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#533 "./Parse.hmh" +#527 "./Parse.hmh" let RCAPTURE {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12951,7 +12948,7 @@ let RCAPTURE {token_} = token_ in | Elm.{symbol=Symbol.Token (LBRACK token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#536 "./Parse.hmh" +#530 "./Parse.hmh" let LBRACK {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12962,7 +12959,7 @@ let LBRACK {token_} = token_ in | Elm.{symbol=Symbol.Token (RBRACK token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#539 "./Parse.hmh" +#533 "./Parse.hmh" let RBRACK {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12973,7 +12970,7 @@ let RBRACK {token_} = token_ in | Elm.{symbol=Symbol.Token (LARRAY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#542 "./Parse.hmh" +#536 "./Parse.hmh" let LARRAY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12984,7 +12981,7 @@ let LARRAY {token_} = token_ in | Elm.{symbol=Symbol.Token (RARRAY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#545 "./Parse.hmh" +#539 "./Parse.hmh" let RARRAY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -12995,7 +12992,7 @@ let RARRAY {token_} = token_ in | Elm.{symbol=Symbol.Token (LCURLY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#548 "./Parse.hmh" +#542 "./Parse.hmh" let LCURLY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -13006,7 +13003,7 @@ let LCURLY {token_} = token_ in | Elm.{symbol=Symbol.Token (RCURLY token_); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) -#551 "./Parse.hmh" +#545 "./Parse.hmh" let RCURLY {token_} = token_ in MatterToken {token_} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -13018,7 +13015,7 @@ let RCURLY {token_} = token_ in :: Elm.{symbol=Symbol.Nonterm (MatterToken matter_token); _} :: tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#556 "./Parse.hmh" +#550 "./Parse.hmh" let MatterToken {token_} = matter_token in Matter {token_; matter} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -13028,7 +13025,7 @@ let MatterToken {token_} = matter_token in (* 97 *) (function tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#558 "./Parse.hmh" +#552 "./Parse.hmh" MatterEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -13040,7 +13037,7 @@ MatterEpsilon :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmh ( (*______________________________________________________________________________*) -#562 "./Parse.hmh" +#556 "./Parse.hmh" let EOI {token_=eoi} = eoi in Hmh {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -13055,7 +13052,7 @@ let EOI {token_=eoi} = eoi in :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmhi ( (*______________________________________________________________________________*) -#567 "./Parse.hmh" +#561 "./Parse.hmh" let EOI {token_=eoi} = eoi in Hmhi {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) @@ -13269,7 +13266,7 @@ let EOI {token_=eoi} = eoi in | Status.Prefix -> t |> feed token |> walk | _ -> not_reached () end -#569 "./Parse.hmh" +#563 "./Parse.hmh" let rec scan scanner = let scanner, scan_token = Scan.next scanner in @@ -13914,17 +13911,17 @@ let rec pp_token_hocc (HOCC {token_}) formatter = | SepLineDelim {line_delim} -> formatter |> Fmt.fmt "SepLineDelim " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "line_delim=" |> Scan.Token.pp line_delim + |> Fmt.fmt "line_delim=" |> pp_token_line_delim line_delim |> fmt_rcurly ~alt ~width | SepSemi {semi} -> formatter |> Fmt.fmt "SepSemi " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "semi=" |> Scan.Token.pp semi + |> Fmt.fmt "semi=" |> pp_token_semi semi |> fmt_rcurly ~alt ~width | SepBar {bar} -> formatter |> Fmt.fmt "SepBar " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "bar=" |> Scan.Token.pp bar + |> Fmt.fmt "bar=" |> pp_token_bar bar |> fmt_rcurly ~alt ~width and pp_sep sep formatter = fmt_sep sep formatter