diff --git a/bootstrap/bin/hocc/Parse.hmh b/bootstrap/bin/hocc/Parse.hmh index ef46b58d..f982c209 100644 --- a/bootstrap/bin/hocc/Parse.hmh +++ b/bootstrap/bin/hocc/Parse.hmh @@ -53,83 +53,83 @@ module Error = struct end type token_hocc = - | HOCC of {token_: Scan.Token.t} + | HOCC of {token: Scan.Token.t} type token_nonterm = - | NONTERM of {token_: Scan.Token.t} + | NONTERM of {token: Scan.Token.t} type token_epsilon = - | EPSILON of {token_: Scan.Token.t} + | EPSILON of {token: Scan.Token.t} type token_start = - | START of {token_: Scan.Token.t} + | START of {token: Scan.Token.t} type token_token = - | TOKEN of {token_: Scan.Token.t} + | TOKEN of {token: Scan.Token.t} type token_neutral = - | NEUTRAL of {token_: Scan.Token.t} + | NEUTRAL of {token: Scan.Token.t} type token_left = - | LEFT of {token_: Scan.Token.t} + | LEFT of {token: Scan.Token.t} type token_right = - | RIGHT of {token_: Scan.Token.t} + | RIGHT of {token: Scan.Token.t} type token_prec = - | PREC of {token_: Scan.Token.t} + | PREC of {token: Scan.Token.t} type token_uident = - | UIDENT of {token_: Scan.Token.t} + | UIDENT of {token: Scan.Token.t} type token_cident = - | CIDENT of {token_: Scan.Token.t} + | CIDENT of {token: Scan.Token.t} type token_uscore = - | USCORE of {token_: Scan.Token.t} + | USCORE of {token: Scan.Token.t} type token_istring = - | ISTRING of {token_: Scan.Token.t} + | ISTRING of {token: Scan.Token.t} type token_colon_colon_eq = - | COLON_COLON_EQ of {token_: Scan.Token.t} + | COLON_COLON_EQ of {token: Scan.Token.t} type token_of = - | OF of {token_: Scan.Token.t} + | OF of {token: Scan.Token.t} type token_colon = - | COLON of {token_: Scan.Token.t} + | COLON of {token: Scan.Token.t} type token_dot = - | DOT of {token_: Scan.Token.t} + | DOT of {token: Scan.Token.t} type token_arrow = - | ARROW of {token_: Scan.Token.t} + | ARROW of {token: Scan.Token.t} type token_bar = - | BAR of {token_: Scan.Token.t} + | BAR of {token: Scan.Token.t} type token_lt = - | LT of {token_: Scan.Token.t} + | LT of {token: Scan.Token.t} type token_eq = - | EQ of {token_: Scan.Token.t} + | EQ of {token: Scan.Token.t} type token_comma = - | COMMA of {token_: Scan.Token.t} + | COMMA of {token: Scan.Token.t} type token_semi = - | SEMI of {token_: Scan.Token.t} + | SEMI of {token: Scan.Token.t} type token_as = - | AS of {token_: Scan.Token.t} + | AS of {token: Scan.Token.t} type token_line_delim = - | LINE_DELIM of {token_: Scan.Token.t} + | LINE_DELIM of {token: Scan.Token.t} type token_indent = - | INDENT of {token_: Scan.Token.t} + | INDENT of {token: Scan.Token.t} type token_dedent = - | DEDENT of {token_: Scan.Token.t} + | DEDENT of {token: Scan.Token.t} type token_lparen = - | LPAREN of {token_: Scan.Token.t} + | LPAREN of {token: Scan.Token.t} type token_rparen = - | RPAREN of {token_: Scan.Token.t} + | RPAREN of {token: Scan.Token.t} type token_lcapture = - | LCAPTURE of {token_: Scan.Token.t} + | LCAPTURE of {token: Scan.Token.t} type token_rcapture = - | RCAPTURE of {token_: Scan.Token.t} + | RCAPTURE of {token: Scan.Token.t} type token_lbrack = - | LBRACK of {token_: Scan.Token.t} + | LBRACK of {token: Scan.Token.t} type token_rbrack = - | RBRACK of {token_: Scan.Token.t} + | RBRACK of {token: Scan.Token.t} type token_larray = - | LARRAY of {token_: Scan.Token.t} + | LARRAY of {token: Scan.Token.t} type token_rarray = - | RARRAY of {token_: Scan.Token.t} + | RARRAY of {token: Scan.Token.t} type token_lcurly = - | LCURLY of {token_: Scan.Token.t} + | LCURLY of {token: Scan.Token.t} type token_rcurly = - | RCURLY of {token_: Scan.Token.t} + | RCURLY of {token: Scan.Token.t} type token_other_token = - | OTHER_TOKEN of {token_: Scan.Token.t} + | OTHER_TOKEN of {token: Scan.Token.t} type token_eoi = - | EOI of {token_: Scan.Token.t} + | EOI of {token: Scan.Token.t} type nonterm_precs_tl = | PrecsTlUident of {uident: token_uident; precs_tl: nonterm_precs_tl} @@ -184,7 +184,7 @@ type nonterm_precs_tl = | DelimitedArray of {larray: token_larray; codes0: nonterm_codes0; rarray: token_rarray} | DelimitedModule of {lcurly: token_lcurly; codes0: nonterm_codes0; rcurly: token_rcurly} and nonterm_code_token = - | CodeToken of {token_: Scan.Token.t} + | CodeToken of {token: Scan.Token.t} and nonterm_code_tl = | CodeTlDelimited of {delimited: nonterm_delimited; code_tl: nonterm_code_tl} | CodeTlCodeToken of {code_token: nonterm_code_token; code_tl: nonterm_code_tl} @@ -193,7 +193,7 @@ type nonterm_precs_tl = | CodeDelimited of {delimited: nonterm_delimited; code_tl: nonterm_code_tl} | CodeCodeToken of {code_token: nonterm_code_token; code_tl: nonterm_code_tl} and nonterm_binding = - | Binding of {token_: Scan.Token.t} + | Binding of {token: Scan.Token.t} and nonterm_pattern_field = | PatternFieldBinding of {binding: nonterm_binding} | PatternFieldPattern of {pattern: nonterm_pattern} @@ -253,7 +253,7 @@ type nonterm_precs_tl = symbol_type: nonterm_symbol_type; prec_ref: nonterm_prec_ref; reductions: nonterm_reductions} and nonterm_stmt = | StmtPrec of {prec: nonterm_prec} - | StmtToken of {token_: nonterm_token} + | StmtToken of {token: nonterm_token} | StmtNonterm of {nonterm: nonterm_nonterm} and nonterm_stmts_tl = | StmtsTl of {stmt: nonterm_stmt; stmts_tl: nonterm_stmts_tl} @@ -263,9 +263,9 @@ type nonterm_precs_tl = and nonterm_hocc = | Hocc of {hocc_: token_hocc; indent: token_indent; stmts: nonterm_stmts; dedent: token_dedent} and nonterm_matter_token = - | MatterToken of {token_: Scan.Token.t} + | MatterToken of {token: Scan.Token.t} and nonterm_matter = - | Matter of {token_: Scan.Token.t; matter: nonterm_matter} + | Matter of {token: Scan.Token.t; matter: nonterm_matter} | MatterEpsilon and nonterm_hmh = | Hmh of {prelude: nonterm_matter; hocc_: nonterm_hocc; postlude: nonterm_matter; eoi: token_eoi} @@ -402,32 +402,32 @@ include hocc | lcurly:"{" codes0:Codes0 rcurly:"}" -> DelimitedModule {lcurly; codes0; rcurly} nonterm CodeToken of nonterm_code_token ::= - | (HOCC {token_}):"hocc" - | (NONTERM {token_}):"nonterm" - | (EPSILON {token_}):"epsilon" - | (START {token_}):"start" - | (TOKEN {token_}):"token" - | (NEUTRAL {token_}):"neutral" - | (LEFT {token_}):"left" - | (RIGHT {token_}):"right" - | (PREC {token_}):"prec" - | (OTHER_TOKEN {token_}):OTHER_TOKEN - | (UIDENT {token_}):UIDENT - | (CIDENT {token_}):CIDENT - | (USCORE {token_}):"_" - | (ISTRING {token_}):ISTRING - | (COLON_COLON_EQ {token_}):"::=" - | (AS {token_}):"as" - | (OF {token_}):"of" - | (COLON {token_}):":" - | (DOT {token_}):"." - | (ARROW {token_}):"->" - | (BAR {token_}):"|" - | (LT {token_}):"<" - | (EQ {token_}):"=" - | (COMMA {token_}):"," - | (SEMI {token_}):";" - -> CodeToken {token_} + | (HOCC {token}):"hocc" + | (NONTERM {token}):"nonterm" + | (EPSILON {token}):"epsilon" + | (START {token}):"start" + | (TOKEN {token}):"token" + | (NEUTRAL {token}):"neutral" + | (LEFT {token}):"left" + | (RIGHT {token}):"right" + | (PREC {token}):"prec" + | (OTHER_TOKEN {token}):OTHER_TOKEN + | (UIDENT {token}):UIDENT + | (CIDENT {token}):CIDENT + | (USCORE {token}):"_" + | (ISTRING {token}):ISTRING + | (COLON_COLON_EQ {token}):"::=" + | (AS {token}):"as" + | (OF {token}):"of" + | (COLON {token}):":" + | (DOT {token}):"." + | (ARROW {token}):"->" + | (BAR {token}):"|" + | (LT {token}):"<" + | (EQ {token}):"=" + | (COMMA {token}):"," + | (SEMI {token}):";" + -> CodeToken {token} nonterm CodeTl of nonterm_code_tl ::= | delimited:Delimited code_tl:CodeTl -> CodeTlDelimited {delimited; code_tl} @@ -439,17 +439,17 @@ include hocc | code_token:CodeToken code_tl:CodeTl -> CodeCodeToken {code_token; code_tl} nonterm Binding of nonterm_binding ::= - | (HOCC {token_}):"hocc" - | (NONTERM {token_}):"nonterm" - | (EPSILON {token_}):"epsilon" - | (START {token_}):"start" - | (TOKEN {token_}):"token" - | (NEUTRAL {token_}):"neutral" - | (LEFT {token_}):"left" - | (RIGHT {token_}):"right" - | (PREC {token_}):"prec" - | (UIDENT {token_}):UIDENT - -> Binding {token_} + | (HOCC {token}):"hocc" + | (NONTERM {token}):"nonterm" + | (EPSILON {token}):"epsilon" + | (START {token}):"start" + | (TOKEN {token}):"token" + | (NEUTRAL {token}):"neutral" + | (LEFT {token}):"left" + | (RIGHT {token}):"right" + | (PREC {token}):"prec" + | (UIDENT {token}):UIDENT + -> Binding {token} nonterm PatternField of nonterm_pattern_field ::= | binding:Binding -> PatternFieldBinding {binding} @@ -555,7 +555,7 @@ include hocc nonterm Stmt of nonterm_stmt ::= | prec:Prec -> StmtPrec {prec} - | token_:Token -> StmtToken {token_} + | token:Token -> StmtToken {token} | nonterm:Nonterm -> StmtNonterm {nonterm} nonterm StmtsTl of nonterm_stmts_tl ::= @@ -571,53 +571,51 @@ include hocc nonterm MatterToken of nonterm_matter_token ::= | sep:Sep -> - let token_ = match sep with - | SepLineDelim {line_delim=LINE_DELIM {token_}} - | SepSemi {semi=SEMI {token_}} - | SepBar {bar=BAR {token_}} - -> token_ + let token = match sep with + | SepLineDelim {line_delim=LINE_DELIM {token}} + | SepSemi {semi=SEMI {token}} + | SepBar {bar=BAR {token}} + -> token in - MatterToken {token_} - | (NONTERM {token_}):"nonterm" - | (EPSILON {token_}):"epsilon" - | (START {token_}):"start" - | (TOKEN {token_}):"token" - | (NEUTRAL {token_}):"neutral" - | (LEFT {token_}):"left" - | (RIGHT {token_}):"right" - | (PREC {token_}):"prec" - | (OTHER_TOKEN {token_}):OTHER_TOKEN - | (UIDENT {token_}):UIDENT - | (CIDENT {token_}):CIDENT - | (USCORE {token_}):"_" - | (ISTRING {token_}):ISTRING - | (COLON_COLON_EQ {token_}):"::=" - | (AS {token_}):"as" - | (OF {token_}):"of" - | (COLON {token_}):":" - | (DOT {token_}):"." - | (ARROW {token_}):"->" - | (LT {token_}):"<" - | (EQ {token_}):"=" - | (COMMA {token_}):"," - | (INDENT {token_}):INDENT - | (DEDENT {token_}):DEDENT - | (LPAREN {token_}):"(" - | (RPAREN {token_}):")" - | (LCAPTURE {token_}):"(|" - | (RCAPTURE {token_}):"|)" - | (LBRACK {token_}):"[" - | (RBRACK {token_}):"]" - | (LARRAY {token_}):"[|" - | (RARRAY {token_}):"|]" - | (LCURLY {token_}):"{" - | (RCURLY {token_}):"}" - -> MatterToken {token_} + MatterToken {token} + | (NONTERM {token}):"nonterm" + | (EPSILON {token}):"epsilon" + | (START {token}):"start" + | (TOKEN {token}):"token" + | (NEUTRAL {token}):"neutral" + | (LEFT {token}):"left" + | (RIGHT {token}):"right" + | (PREC {token}):"prec" + | (OTHER_TOKEN {token}):OTHER_TOKEN + | (UIDENT {token}):UIDENT + | (CIDENT {token}):CIDENT + | (USCORE {token}):"_" + | (ISTRING {token}):ISTRING + | (COLON_COLON_EQ {token}):"::=" + | (AS {token}):"as" + | (OF {token}):"of" + | (COLON {token}):":" + | (DOT {token}):"." + | (ARROW {token}):"->" + | (LT {token}):"<" + | (EQ {token}):"=" + | (COMMA {token}):"," + | (INDENT {token}):INDENT + | (DEDENT {token}):DEDENT + | (LPAREN {token}):"(" + | (RPAREN {token}):")" + | (LCAPTURE {token}):"(|" + | (RCAPTURE {token}):"|)" + | (LBRACK {token}):"[" + | (RBRACK {token}):"]" + | (LARRAY {token}):"[|" + | (RARRAY {token}):"|]" + | (LCURLY {token}):"{" + | (RCURLY {token}):"}" + -> MatterToken {token} nonterm Matter of nonterm_matter ::= - | matter_token:MatterToken matter:Matter -> - let MatterToken {token_} = matter_token in - Matter {token_; matter} + | (MatterToken {token}):MatterToken matter:Matter -> Matter {token; matter} | epsilon -> MatterEpsilon start Hmh of nonterm_hmh ::= @@ -636,49 +634,49 @@ let rec scan scanner = | Tok_whitespace _ | Tok_hash_comment _ | Tok_paren_comment _ -> None (* Swallow. *) - | Tok_uident _ -> Some (Token.UIDENT (UIDENT {token_=scan_token})) - | Tok_cident _ -> Some (Token.CIDENT (CIDENT {token_=scan_token})) - | Tok_uscore _ -> Some (Token.USCORE (USCORE {token_=scan_token})) - | Tok_istring _ -> Some (Token.ISTRING (ISTRING {token_=scan_token})) - | Tok_as _ -> Some (Token.AS (AS {token_=scan_token})) - | Tok_of _ -> Some (Token.OF (OF {token_=scan_token})) - | Tok_colon _ -> Some (Token.COLON (COLON {token_=scan_token})) - | Tok_dot _ -> Some (Token.DOT (DOT {token_=scan_token})) - | Tok_arrow _ -> Some (Token.ARROW (ARROW {token_=scan_token})) - | Tok_bar _ -> Some (Token.BAR (BAR {token_=scan_token})) - | Tok_lt _ -> Some (Token.LT (LT {token_=scan_token})) - | Tok_eq _ -> Some (Token.EQ (EQ {token_=scan_token})) - | Tok_comma _ -> Some (Token.COMMA (COMMA {token_=scan_token})) - | Tok_semi _ -> Some (Token.SEMI (SEMI {token_=scan_token})) - | Tok_line_delim _ -> Some (Token.LINE_DELIM (LINE_DELIM {token_=scan_token})) - | Tok_indent _ -> Some (Token.INDENT (INDENT {token_=scan_token})) - | Tok_dedent _ -> Some (Token.DEDENT (DEDENT {token_=scan_token})) - | Tok_lparen _ -> Some (Token.LPAREN (LPAREN {token_=scan_token})) - | Tok_rparen _ -> Some (Token.RPAREN (RPAREN {token_=scan_token})) - | Tok_lcapture _ -> Some (Token.LCAPTURE (LCAPTURE {token_=scan_token})) - | Tok_rcapture _ -> Some (Token.RCAPTURE (RCAPTURE {token_=scan_token})) - | Tok_lbrack _ -> Some (Token.LBRACK (LBRACK {token_=scan_token})) - | Tok_rbrack _ -> Some (Token.RBRACK (RBRACK {token_=scan_token})) - | Tok_larray _ -> Some (Token.LARRAY (LARRAY {token_=scan_token})) - | Tok_rarray _ -> Some (Token.RARRAY (RARRAY {token_=scan_token})) - | Tok_lcurly _ -> Some (Token.LCURLY (LCURLY {token_=scan_token})) - | Tok_rcurly _ -> Some (Token.RCURLY (RCURLY {token_=scan_token})) - | Tok_end_of_input _ -> Some (Token.EOI (EOI {token_=scan_token})) - | _ -> Some (Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token})) + | Tok_uident _ -> Some (Token.UIDENT (UIDENT {token=scan_token})) + | Tok_cident _ -> Some (Token.CIDENT (CIDENT {token=scan_token})) + | Tok_uscore _ -> Some (Token.USCORE (USCORE {token=scan_token})) + | Tok_istring _ -> Some (Token.ISTRING (ISTRING {token=scan_token})) + | Tok_as _ -> Some (Token.AS (AS {token=scan_token})) + | Tok_of _ -> Some (Token.OF (OF {token=scan_token})) + | Tok_colon _ -> Some (Token.COLON (COLON {token=scan_token})) + | Tok_dot _ -> Some (Token.DOT (DOT {token=scan_token})) + | Tok_arrow _ -> Some (Token.ARROW (ARROW {token=scan_token})) + | Tok_bar _ -> Some (Token.BAR (BAR {token=scan_token})) + | Tok_lt _ -> Some (Token.LT (LT {token=scan_token})) + | Tok_eq _ -> Some (Token.EQ (EQ {token=scan_token})) + | Tok_comma _ -> Some (Token.COMMA (COMMA {token=scan_token})) + | Tok_semi _ -> Some (Token.SEMI (SEMI {token=scan_token})) + | Tok_line_delim _ -> Some (Token.LINE_DELIM (LINE_DELIM {token=scan_token})) + | Tok_indent _ -> Some (Token.INDENT (INDENT {token=scan_token})) + | Tok_dedent _ -> Some (Token.DEDENT (DEDENT {token=scan_token})) + | Tok_lparen _ -> Some (Token.LPAREN (LPAREN {token=scan_token})) + | Tok_rparen _ -> Some (Token.RPAREN (RPAREN {token=scan_token})) + | Tok_lcapture _ -> Some (Token.LCAPTURE (LCAPTURE {token=scan_token})) + | Tok_rcapture _ -> Some (Token.RCAPTURE (RCAPTURE {token=scan_token})) + | Tok_lbrack _ -> Some (Token.LBRACK (LBRACK {token=scan_token})) + | Tok_rbrack _ -> Some (Token.RBRACK (RBRACK {token=scan_token})) + | Tok_larray _ -> Some (Token.LARRAY (LARRAY {token=scan_token})) + | Tok_rarray _ -> Some (Token.RARRAY (RARRAY {token=scan_token})) + | Tok_lcurly _ -> Some (Token.LCURLY (LCURLY {token=scan_token})) + | Tok_rcurly _ -> Some (Token.RCURLY (RCURLY {token=scan_token})) + | Tok_end_of_input _ -> Some (Token.EOI (EOI {token=scan_token})) + | _ -> Some (Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token})) end - | Tok_hocc _ -> Some (Token.HOCC (HOCC {token_=scan_token})) - | Tok_token _ -> Some (Token.TOKEN (TOKEN {token_=scan_token})) - | Tok_nonterm _ -> Some (Token.NONTERM (NONTERM {token_=scan_token})) - | Tok_start _ -> Some (Token.START (START {token_=scan_token})) - | Tok_epsilon _ -> Some (Token.EPSILON_ (EPSILON {token_=scan_token})) - | Tok_neutral _ -> Some (Token.NEUTRAL (NEUTRAL {token_=scan_token})) - | Tok_left _ -> Some (Token.LEFT (LEFT {token_=scan_token})) - | Tok_right _ -> Some (Token.RIGHT (RIGHT {token_=scan_token})) - | Tok_prec _ -> Some (Token.PREC (PREC {token_=scan_token})) - | Tok_colon_colon_eq _ -> Some (Token.COLON_COLON_EQ (COLON_COLON_EQ {token_=scan_token})) + | Tok_hocc _ -> Some (Token.HOCC (HOCC {token=scan_token})) + | Tok_token _ -> Some (Token.TOKEN (TOKEN {token=scan_token})) + | Tok_nonterm _ -> Some (Token.NONTERM (NONTERM {token=scan_token})) + | Tok_start _ -> Some (Token.START (START {token=scan_token})) + | Tok_epsilon _ -> Some (Token.EPSILON_ (EPSILON {token=scan_token})) + | Tok_neutral _ -> Some (Token.NEUTRAL (NEUTRAL {token=scan_token})) + | Tok_left _ -> Some (Token.LEFT (LEFT {token=scan_token})) + | Tok_right _ -> Some (Token.RIGHT (RIGHT {token=scan_token})) + | Tok_prec _ -> Some (Token.PREC (PREC {token=scan_token})) + | Tok_colon_colon_eq _ -> Some (Token.COLON_COLON_EQ (COLON_COLON_EQ {token=scan_token})) in match token_opt with - | Some token_ -> scanner, scan_token, token_, [] + | Some token -> scanner, scan_token, token, [] | None -> scan scanner end | mal :: [] -> begin @@ -704,20 +702,20 @@ let rec scan scanner = u64=rendition } in let scan_token = Scan.Token.HmcToken tok in - scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token}), [] + scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), [] end - | None -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token}), [mal] + | None -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), [mal] end - | mals -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token}), mals + | mals -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), mals let hmhi scanner = let rec inner scanner errs parser = begin - let scanner, scan_token, token_, mals = scan scanner in + let scanner, scan_token, token, mals = scan scanner in let errs = match mals with | [] -> errs | _ -> List.fold ~init:errs ~f:(fun errs mal -> Error.init_mal mal :: errs) mals in - let {status; _} as parser = next token_ parser in + let {status; _} as parser = next token parser in match status, errs with | Prefix, _ -> inner scanner errs parser | Accept (Hmhi hmhi), [] -> scanner, Ok hmhi @@ -732,7 +730,7 @@ let hmhi scanner = let hmh scanner = let rec inner scanner errs parser = begin - let scanner, scan_token, token_, mals = scan scanner in + let scanner, scan_token, token, mals = scan scanner in (* File.Fmt.stderr |> Fmt.fmt "XXX scan_token=" @@ -744,7 +742,7 @@ let hmh scanner = | [] -> 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 + let {stack=_XXX; status} as parser = next token parser in (* File.Fmt.stderr |> Fmt.fmt "XXX status=" @@ -775,238 +773,238 @@ let hmh scanner = (**************************************************************************************************) (* fmt_* functions. *) -let rec pp_token_hocc (HOCC {token_}) formatter = +let rec pp_token_hocc (HOCC {token}) formatter = formatter |> Fmt.fmt "HOCC {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_nonterm (NONTERM {token_}) formatter = + and pp_token_nonterm (NONTERM {token}) formatter = formatter |> Fmt.fmt "NONTERM {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_epsilon (EPSILON {token_}) formatter = + and pp_token_epsilon (EPSILON {token}) formatter = formatter |> Fmt.fmt "EPSILON {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_start (START {token_}) formatter = + and pp_token_start (START {token}) formatter = formatter |> Fmt.fmt "START {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_token (TOKEN {token_}) formatter = + and pp_token_token (TOKEN {token}) formatter = formatter |> Fmt.fmt "TOKEN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_neutral (NEUTRAL {token_}) formatter = + and pp_token_neutral (NEUTRAL {token}) formatter = formatter |> Fmt.fmt "NEUTRAL {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_left (LEFT {token_}) formatter = + and pp_token_left (LEFT {token}) formatter = formatter |> Fmt.fmt "LEFT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_right (RIGHT {token_}) formatter = + and pp_token_right (RIGHT {token}) formatter = formatter |> Fmt.fmt "RIGHT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_prec (PREC {token_}) formatter = + and pp_token_prec (PREC {token}) formatter = formatter |> Fmt.fmt "PREC {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_uident (UIDENT {token_}) formatter = + and pp_token_uident (UIDENT {token}) formatter = formatter |> Fmt.fmt "UIDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_cident (CIDENT {token_}) formatter = + and pp_token_cident (CIDENT {token}) formatter = formatter |> Fmt.fmt "CIDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_uscore (USCORE {token_}) formatter = + and pp_token_uscore (USCORE {token}) formatter = formatter |> Fmt.fmt "USCORE {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_istring (ISTRING {token_}) formatter = + and pp_token_istring (ISTRING {token}) formatter = formatter |> Fmt.fmt "ISTRING {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_colon_colon_eq (COLON_COLON_EQ {token_}) formatter = + and pp_token_colon_colon_eq (COLON_COLON_EQ {token}) formatter = formatter |> Fmt.fmt "COLON_COLON_EQ {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_of (OF {token_}) formatter = + and pp_token_of (OF {token}) formatter = formatter |> Fmt.fmt "OF {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_colon (COLON {token_}) formatter = + and pp_token_colon (COLON {token}) formatter = formatter |> Fmt.fmt "COLON {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_dot (DOT {token_}) formatter = + and pp_token_dot (DOT {token}) formatter = formatter |> Fmt.fmt "DOT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_arrow (ARROW {token_}) formatter = + and pp_token_arrow (ARROW {token}) formatter = formatter |> Fmt.fmt "ARROW {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_bar (BAR {token_}) formatter = + and pp_token_bar (BAR {token}) formatter = formatter |> Fmt.fmt "BAR {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lt (LT {token_}) formatter = + and pp_token_lt (LT {token}) formatter = formatter |> Fmt.fmt "LT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_eq (EQ {token_}) formatter = + and pp_token_eq (EQ {token}) formatter = formatter |> Fmt.fmt "EQ {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_comma (COMMA {token_}) formatter = + and pp_token_comma (COMMA {token}) formatter = formatter |> Fmt.fmt "COMMA {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_semi (SEMI {token_}) formatter = + and pp_token_semi (SEMI {token}) formatter = formatter |> Fmt.fmt "SEMI {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_as (AS {token_}) formatter = + and pp_token_as (AS {token}) formatter = formatter |> Fmt.fmt "AS {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_line_delim (LINE_DELIM {token_}) formatter = + and pp_token_line_delim (LINE_DELIM {token}) formatter = formatter |> Fmt.fmt "LINE_DELIM {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_indent (INDENT {token_}) formatter = + and pp_token_indent (INDENT {token}) formatter = formatter |> Fmt.fmt "INDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_dedent (DEDENT {token_}) formatter = + and pp_token_dedent (DEDENT {token}) formatter = formatter |> Fmt.fmt "DEDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lparen (LPAREN {token_}) formatter = + and pp_token_lparen (LPAREN {token}) formatter = formatter |> Fmt.fmt "LPAREN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rparen (RPAREN {token_}) formatter = + and pp_token_rparen (RPAREN {token}) formatter = formatter |> Fmt.fmt "RPAREN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lcapture (LCAPTURE {token_}) formatter = + and pp_token_lcapture (LCAPTURE {token}) formatter = formatter |> Fmt.fmt "LCAPTURE {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rcapture (RCAPTURE {token_}) formatter = + and pp_token_rcapture (RCAPTURE {token}) formatter = formatter |> Fmt.fmt "RCAPTURE {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lbrack (LBRACK {token_}) formatter = + and pp_token_lbrack (LBRACK {token}) formatter = formatter |> Fmt.fmt "LBRACK {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rbrack (RBRACK {token_}) formatter = + and pp_token_rbrack (RBRACK {token}) formatter = formatter |> Fmt.fmt "RBRACK {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_larray (LARRAY {token_}) formatter = + and pp_token_larray (LARRAY {token}) formatter = formatter |> Fmt.fmt "LARRAY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rarray (RARRAY {token_}) formatter = + and pp_token_rarray (RARRAY {token}) formatter = formatter |> Fmt.fmt "RARRAY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lcurly (LCURLY {token_}) formatter = + and pp_token_lcurly (LCURLY {token}) formatter = formatter |> Fmt.fmt "LCURLY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rcurly (RCURLY {token_}) formatter = + and pp_token_rcurly (RCURLY {token}) formatter = formatter |> Fmt.fmt "RCURLY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_other_token (OTHER_TOKEN {token_}) formatter = + and pp_token_other_token (OTHER_TOKEN {token}) formatter = formatter |> Fmt.fmt "OTHER_TOKEN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_eoi (EOI {token_}) formatter = + and pp_token_eoi (EOI {token}) formatter = formatter |> Fmt.fmt "EOI {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" and fmt_lcurly ~alt ~width formatter = @@ -1164,9 +1162,9 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and pp_token_alias token_alias formatter = fmt_token_alias token_alias formatter - and fmt_token ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) token_ formatter = + and fmt_token ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) token formatter = let width' = width + 4L in - match token_ with + match token with | Token {cident; token_alias; symbol_type0; prec_ref} -> formatter |> Fmt.fmt "Token " |> fmt_lcurly ~alt ~width @@ -1178,8 +1176,8 @@ let rec pp_token_hocc (HOCC {token_}) formatter = |> fmt_semi ~alt ~width |> Fmt.fmt "prec_ref=" |> fmt_prec_ref ~alt ~width:width' prec_ref |> fmt_rcurly ~alt ~width - and pp_token token_ formatter = - fmt_token token_ formatter + and pp_token token formatter = + fmt_token token formatter and fmt_sep ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) sep formatter = match sep with @@ -1305,7 +1303,7 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and pp_code_token code_token formatter = match code_token with - | CodeToken {token_} -> formatter |> Scan.Token.pp token_ + | CodeToken {token} -> formatter |> Scan.Token.pp token and fmt_code_tl ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) code_tl formatter = let width' = width + 4L in @@ -1351,10 +1349,10 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and fmt_binding ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) binding formatter = match binding with - | Binding {token_} -> + | Binding {token} -> formatter |> Fmt.fmt "Binding " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "token_=" |> Scan.Token.pp token_ + |> Fmt.fmt "token=" |> Scan.Token.pp token |> fmt_rcurly ~alt ~width and pp_binding binding formatter = fmt_binding binding formatter @@ -1665,10 +1663,10 @@ let rec pp_token_hocc (HOCC {token_}) formatter = |> fmt_lcurly ~alt ~width |> Fmt.fmt "prec=" |> fmt_prec ~alt ~width:width' prec |> fmt_rcurly ~alt ~width - | StmtToken {token_} -> + | StmtToken {token} -> formatter |> Fmt.fmt "StmtToken " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "token_=" |> fmt_token ~alt ~width:width' token_ + |> Fmt.fmt "token=" |> fmt_token ~alt ~width:width' token |> fmt_rcurly ~alt ~width | StmtNonterm {nonterm} -> formatter |> Fmt.fmt "StmtNonterm " @@ -1726,10 +1724,10 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and fmt_matter ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) matter formatter = let width' = width + 4L in match matter with - | Matter {token_; matter} -> + | Matter {token; matter} -> formatter |> Fmt.fmt "Matter " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "token_=" |> Scan.Token.pp token_ + |> Fmt.fmt "token=" |> Scan.Token.pp token |> fmt_semi ~alt ~width |> Fmt.fmt "matter=" |> fmt_matter ~alt ~width:width' matter |> fmt_rcurly ~alt ~width @@ -1799,35 +1797,35 @@ let join_sources source0_opt source1_opt = end (* Not to be confused with a token force. *) -let token_source token_ = - Some (Scan.Token.source token_) +let token_source token = + Some (Scan.Token.source token) let source_of_token_epsilon = function - | EPSILON {token_} -> token_source token_ + | EPSILON {token} -> token_source token let source_of_token_uident = function - | UIDENT {token_} -> token_source token_ + | UIDENT {token} -> token_source token let source_of_token_cident = function - | CIDENT {token_} -> token_source token_ + | CIDENT {token} -> token_source token let source_of_token_istring = function - | ISTRING {token_} -> token_source token_ + | ISTRING {token} -> token_source token let source_of_token_lparen = function - | LPAREN {token_} -> token_source token_ + | LPAREN {token} -> token_source token let source_of_token_rparen = function - | RPAREN {token_} -> token_source token_ + | RPAREN {token} -> token_source token let source_of_token_lcurly = function - | LCURLY {token_} -> token_source token_ + | LCURLY {token} -> token_source token let source_of_token_rcurly = function - | RCURLY {token_} -> token_source token_ + | RCURLY {token} -> token_source token let rec source_of_binding = function - | Binding {token_} -> token_source token_ + | Binding {token} -> token_source token and source_of_prod_param_symbol = function | ProdParamSymbolCident {cident} -> source_of_token_cident cident | ProdParamSymbolAlias {alias} -> source_of_token_istring alias @@ -1870,26 +1868,26 @@ let rec source_of_binding = function (* Miscellaneous helper functions. *) let min_comment_indentation_of_hocc_block = function - | Hocc {indent=INDENT {token_=indent}; _} -> + | Hocc {indent=INDENT {token=indent}; _} -> Scan.Token.source indent |> Hmc.Source.Slice.base |> Hmc.Source.Cursor.pos |> Text.Pos.col let base_of_code code = - let of_token token_ = - let source = Scan.Token.source token_ in + let of_token token = + let source = Scan.Token.source token in Hmc.Source.Slice.base source in let rec of_delimited = function - | DelimitedBlock {indent=INDENT {token_}; _} - | DelimitedParen {lparen=LPAREN {token_}; _} - | DelimitedCapture {lcapture=LCAPTURE {token_}; _} - | DelimitedList {lbrack=LBRACK {token_}; _} - | DelimitedArray {larray=LARRAY {token_}; _} - | DelimitedModule {lcurly=LCURLY {token_}; _} -> of_token token_ + | DelimitedBlock {indent=INDENT {token}; _} + | DelimitedParen {lparen=LPAREN {token}; _} + | DelimitedCapture {lcapture=LCAPTURE {token}; _} + | DelimitedList {lbrack=LBRACK {token}; _} + | DelimitedArray {larray=LARRAY {token}; _} + | DelimitedModule {lcurly=LCURLY {token}; _} -> of_token token and of_code_token = function - | CodeToken {token_} -> of_token token_ + | CodeToken {token} -> of_token token and of_code = function | CodeDelimited {delimited; _} -> of_delimited delimited | CodeCodeToken {code_token; _} -> of_code_token code_token @@ -1909,18 +1907,18 @@ let last_token_of_code code = |> Option.value_or_thunk ~f:(fun () -> of_code code) end and of_delimited = function - | DelimitedBlock {codes; dedent=DEDENT {token_=dedent}; _} -> begin + | DelimitedBlock {codes; dedent=DEDENT {token=dedent}; _} -> begin of_codes codes |> Option.some_or_thunk ~f:(fun () -> Some dedent) |> Option.value_hlt end - | DelimitedParen {rparen=RPAREN {token_}; _} - | DelimitedCapture {rcapture=RCAPTURE {token_}; _} - | DelimitedList {rbrack=RBRACK {token_}; _} - | DelimitedArray {rarray=RARRAY {token_}; _} - | DelimitedModule {rcurly=RCURLY {token_}; _} -> token_ + | DelimitedParen {rparen=RPAREN {token}; _} + | DelimitedCapture {rcapture=RCAPTURE {token}; _} + | DelimitedList {rbrack=RBRACK {token}; _} + | DelimitedArray {rarray=RARRAY {token}; _} + | DelimitedModule {rcurly=RCURLY {token}; _} -> token and of_code_token = function - | CodeToken {token_} -> token_ + | CodeToken {token} -> token and of_code_tl = function | CodeTlDelimited {delimited; code_tl} -> of_code_tl code_tl |> Option.some_or_thunk ~f:(fun () -> Some (of_delimited delimited)) @@ -1958,14 +1956,14 @@ let indentation_of_code hocc_block code = * `hocc` block. *) let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = let rec of_precs_tl = function - | PrecsTlUident {uident=UIDENT {token_=uident}; precs_tl} -> + | PrecsTlUident {uident=UIDENT {token=uident}; precs_tl} -> Some ( of_precs_tl precs_tl |> Option.value_or_thunk ~f:(fun () -> uident) ) | PrecsTlEpsilon -> None and of_precs = function - | Precs {uident=UIDENT {token_=uident}; precs_tl} -> begin + | Precs {uident=UIDENT {token=uident}; precs_tl} -> begin of_precs_tl precs_tl |> Option.value_or_thunk ~f:(fun () -> uident) end @@ -1973,19 +1971,19 @@ let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = | PrecRelsPrecs {precs} -> Some (of_precs precs) | PrecRelsEpsilon -> None and of_symbol_type = function - | SymbolType {symbol_type=UIDENT {token_}; _} -> token_ + | SymbolType {symbol_type=UIDENT {token}; _} -> token and of_symbol_type0 = function | SymbolType0SymbolType {symbol_type} -> Some (of_symbol_type symbol_type) | SymbolType0Epsilon -> None and of_prec_ref = function - | PrecRefUident {uident=UIDENT {token_}} -> Some token_ + | PrecRefUident {uident=UIDENT {token}} -> Some token | PrecRefEpsilon -> None and of_token_alias = function - | TokenAlias {alias=ISTRING {token_=alias}} -> Some alias + | TokenAlias {alias=ISTRING {token=alias}} -> Some alias | TokenAliasEpsilon -> None and of_prod_param_symbol = function - | ProdParamSymbolCident {cident=CIDENT {token_=cident}} -> cident - | ProdParamSymbolAlias {alias=ISTRING {token_=alias}} -> alias + | ProdParamSymbolCident {cident=CIDENT {token=cident}} -> cident + | ProdParamSymbolAlias {alias=ISTRING {token=alias}} -> alias and of_prod_param = function | ProdParamBinding {prod_param_symbol; _} | ProdParamPattern {prod_param_symbol; _} @@ -2004,7 +2002,7 @@ let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = end and of_prod_pattern = function | ProdPatternParams {prod_params} -> of_prod_params prod_params - | ProdPatternEpsilon {epsilon=EPSILON {token_=epsilon}; prec_ref} -> + | ProdPatternEpsilon {epsilon=EPSILON {token=epsilon}; prec_ref} -> of_prec_ref prec_ref |> Option.value_or_thunk ~f:(fun () -> epsilon) and of_prod = function @@ -2037,11 +2035,11 @@ let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = | NontermProds {prods; _} -> of_prods prods | NontermReductions {reductions; _} -> of_reductions reductions and of_stmt = function - | StmtPrec {prec=Prec {uident=UIDENT {token_=uident}; prec_rels; _}} -> begin + | StmtPrec {prec=Prec {uident=UIDENT {token=uident}; prec_rels; _}} -> begin of_prec_rels prec_rels |> Option.value_or_thunk ~f:(fun () -> uident) end - | StmtToken {token_=Token {cident=CIDENT {token_=cident}; token_alias; symbol_type0; + | StmtToken {token=Token {cident=CIDENT {token=cident}; token_alias; symbol_type0; prec_ref; _}} -> begin of_prec_ref prec_ref |> Option.some_or_thunk ~f:(fun () -> of_symbol_type0 symbol_type0) diff --git a/bootstrap/bin/hocc/Parse.ml b/bootstrap/bin/hocc/Parse.ml index fcd168bf..57a5e49a 100644 --- a/bootstrap/bin/hocc/Parse.ml +++ b/bootstrap/bin/hocc/Parse.ml @@ -47,83 +47,83 @@ module Error = struct end type token_hocc = - | HOCC of {token_: Scan.Token.t} + | HOCC of {token: Scan.Token.t} type token_nonterm = - | NONTERM of {token_: Scan.Token.t} + | NONTERM of {token: Scan.Token.t} type token_epsilon = - | EPSILON of {token_: Scan.Token.t} + | EPSILON of {token: Scan.Token.t} type token_start = - | START of {token_: Scan.Token.t} + | START of {token: Scan.Token.t} type token_token = - | TOKEN of {token_: Scan.Token.t} + | TOKEN of {token: Scan.Token.t} type token_neutral = - | NEUTRAL of {token_: Scan.Token.t} + | NEUTRAL of {token: Scan.Token.t} type token_left = - | LEFT of {token_: Scan.Token.t} + | LEFT of {token: Scan.Token.t} type token_right = - | RIGHT of {token_: Scan.Token.t} + | RIGHT of {token: Scan.Token.t} type token_prec = - | PREC of {token_: Scan.Token.t} + | PREC of {token: Scan.Token.t} type token_uident = - | UIDENT of {token_: Scan.Token.t} + | UIDENT of {token: Scan.Token.t} type token_cident = - | CIDENT of {token_: Scan.Token.t} + | CIDENT of {token: Scan.Token.t} type token_uscore = - | USCORE of {token_: Scan.Token.t} + | USCORE of {token: Scan.Token.t} type token_istring = - | ISTRING of {token_: Scan.Token.t} + | ISTRING of {token: Scan.Token.t} type token_colon_colon_eq = - | COLON_COLON_EQ of {token_: Scan.Token.t} + | COLON_COLON_EQ of {token: Scan.Token.t} type token_of = - | OF of {token_: Scan.Token.t} + | OF of {token: Scan.Token.t} type token_colon = - | COLON of {token_: Scan.Token.t} + | COLON of {token: Scan.Token.t} type token_dot = - | DOT of {token_: Scan.Token.t} + | DOT of {token: Scan.Token.t} type token_arrow = - | ARROW of {token_: Scan.Token.t} + | ARROW of {token: Scan.Token.t} type token_bar = - | BAR of {token_: Scan.Token.t} + | BAR of {token: Scan.Token.t} type token_lt = - | LT of {token_: Scan.Token.t} + | LT of {token: Scan.Token.t} type token_eq = - | EQ of {token_: Scan.Token.t} + | EQ of {token: Scan.Token.t} type token_comma = - | COMMA of {token_: Scan.Token.t} + | COMMA of {token: Scan.Token.t} type token_semi = - | SEMI of {token_: Scan.Token.t} + | SEMI of {token: Scan.Token.t} type token_as = - | AS of {token_: Scan.Token.t} + | AS of {token: Scan.Token.t} type token_line_delim = - | LINE_DELIM of {token_: Scan.Token.t} + | LINE_DELIM of {token: Scan.Token.t} type token_indent = - | INDENT of {token_: Scan.Token.t} + | INDENT of {token: Scan.Token.t} type token_dedent = - | DEDENT of {token_: Scan.Token.t} + | DEDENT of {token: Scan.Token.t} type token_lparen = - | LPAREN of {token_: Scan.Token.t} + | LPAREN of {token: Scan.Token.t} type token_rparen = - | RPAREN of {token_: Scan.Token.t} + | RPAREN of {token: Scan.Token.t} type token_lcapture = - | LCAPTURE of {token_: Scan.Token.t} + | LCAPTURE of {token: Scan.Token.t} type token_rcapture = - | RCAPTURE of {token_: Scan.Token.t} + | RCAPTURE of {token: Scan.Token.t} type token_lbrack = - | LBRACK of {token_: Scan.Token.t} + | LBRACK of {token: Scan.Token.t} type token_rbrack = - | RBRACK of {token_: Scan.Token.t} + | RBRACK of {token: Scan.Token.t} type token_larray = - | LARRAY of {token_: Scan.Token.t} + | LARRAY of {token: Scan.Token.t} type token_rarray = - | RARRAY of {token_: Scan.Token.t} + | RARRAY of {token: Scan.Token.t} type token_lcurly = - | LCURLY of {token_: Scan.Token.t} + | LCURLY of {token: Scan.Token.t} type token_rcurly = - | RCURLY of {token_: Scan.Token.t} + | RCURLY of {token: Scan.Token.t} type token_other_token = - | OTHER_TOKEN of {token_: Scan.Token.t} + | OTHER_TOKEN of {token: Scan.Token.t} type token_eoi = - | EOI of {token_: Scan.Token.t} + | EOI of {token: Scan.Token.t} type nonterm_precs_tl = | PrecsTlUident of {uident: token_uident; precs_tl: nonterm_precs_tl} @@ -178,7 +178,7 @@ type nonterm_precs_tl = | DelimitedArray of {larray: token_larray; codes0: nonterm_codes0; rarray: token_rarray} | DelimitedModule of {lcurly: token_lcurly; codes0: nonterm_codes0; rcurly: token_rcurly} and nonterm_code_token = - | CodeToken of {token_: Scan.Token.t} + | CodeToken of {token: Scan.Token.t} and nonterm_code_tl = | CodeTlDelimited of {delimited: nonterm_delimited; code_tl: nonterm_code_tl} | CodeTlCodeToken of {code_token: nonterm_code_token; code_tl: nonterm_code_tl} @@ -187,7 +187,7 @@ type nonterm_precs_tl = | CodeDelimited of {delimited: nonterm_delimited; code_tl: nonterm_code_tl} | CodeCodeToken of {code_token: nonterm_code_token; code_tl: nonterm_code_tl} and nonterm_binding = - | Binding of {token_: Scan.Token.t} + | Binding of {token: Scan.Token.t} and nonterm_pattern_field = | PatternFieldBinding of {binding: nonterm_binding} | PatternFieldPattern of {pattern: nonterm_pattern} @@ -247,7 +247,7 @@ type nonterm_precs_tl = symbol_type: nonterm_symbol_type; prec_ref: nonterm_prec_ref; reductions: nonterm_reductions} and nonterm_stmt = | StmtPrec of {prec: nonterm_prec} - | StmtToken of {token_: nonterm_token} + | StmtToken of {token: nonterm_token} | StmtNonterm of {nonterm: nonterm_nonterm} and nonterm_stmts_tl = | StmtsTl of {stmt: nonterm_stmt; stmts_tl: nonterm_stmts_tl} @@ -257,9 +257,9 @@ type nonterm_precs_tl = and nonterm_hocc = | Hocc of {hocc_: token_hocc; indent: token_indent; stmts: nonterm_stmts; dedent: token_dedent} and nonterm_matter_token = - | MatterToken of {token_: Scan.Token.t} + | MatterToken of {token: Scan.Token.t} and nonterm_matter = - | Matter of {token_: Scan.Token.t; matter: nonterm_matter} + | Matter of {token: Scan.Token.t; matter: nonterm_matter} | MatterEpsilon and nonterm_hmh = | Hmh of {prelude: nonterm_matter; hocc_: nonterm_hocc; postlude: nonterm_matter; eoi: token_eoi} @@ -23053,251 +23053,251 @@ DelimitedModule {lcurly; codes0; rcurly} | _ -> not_reached () ); (* 33 *) (function - | Elm.{symbol=Symbol.Token (HOCC (HOCC {token_})); _} + | Elm.{symbol=Symbol.Token (HOCC (HOCC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 34 *) (function - | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token_})); _} + | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 35 *) (function - | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token_})); _} + | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 36 *) (function - | Elm.{symbol=Symbol.Token (START (START {token_})); _} + | Elm.{symbol=Symbol.Token (START (START {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 37 *) (function - | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token_})); _} + | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 38 *) (function - | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token_})); _} + | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 39 *) (function - | Elm.{symbol=Symbol.Token (LEFT (LEFT {token_})); _} + | Elm.{symbol=Symbol.Token (LEFT (LEFT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 40 *) (function - | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token_})); _} + | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 41 *) (function - | Elm.{symbol=Symbol.Token (PREC (PREC {token_})); _} + | Elm.{symbol=Symbol.Token (PREC (PREC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 42 *) (function - | Elm.{symbol=Symbol.Token (OTHER_TOKEN (OTHER_TOKEN {token_})); _} + | Elm.{symbol=Symbol.Token (OTHER_TOKEN (OTHER_TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 43 *) (function - | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token_})); _} + | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 44 *) (function - | Elm.{symbol=Symbol.Token (CIDENT (CIDENT {token_})); _} + | Elm.{symbol=Symbol.Token (CIDENT (CIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 45 *) (function - | Elm.{symbol=Symbol.Token (USCORE (USCORE {token_})); _} + | Elm.{symbol=Symbol.Token (USCORE (USCORE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 46 *) (function - | Elm.{symbol=Symbol.Token (ISTRING (ISTRING {token_})); _} + | Elm.{symbol=Symbol.Token (ISTRING (ISTRING {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 47 *) (function - | Elm.{symbol=Symbol.Token (COLON_COLON_EQ (COLON_COLON_EQ {token_})); _} + | Elm.{symbol=Symbol.Token (COLON_COLON_EQ (COLON_COLON_EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 48 *) (function - | Elm.{symbol=Symbol.Token (AS (AS {token_})); _} + | Elm.{symbol=Symbol.Token (AS (AS {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 49 *) (function - | Elm.{symbol=Symbol.Token (OF (OF {token_})); _} + | Elm.{symbol=Symbol.Token (OF (OF {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 50 *) (function - | Elm.{symbol=Symbol.Token (COLON (COLON {token_})); _} + | Elm.{symbol=Symbol.Token (COLON (COLON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 51 *) (function - | Elm.{symbol=Symbol.Token (DOT (DOT {token_})); _} + | Elm.{symbol=Symbol.Token (DOT (DOT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 52 *) (function - | Elm.{symbol=Symbol.Token (ARROW (ARROW {token_})); _} + | Elm.{symbol=Symbol.Token (ARROW (ARROW {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 53 *) (function - | Elm.{symbol=Symbol.Token (BAR (BAR {token_})); _} + | Elm.{symbol=Symbol.Token (BAR (BAR {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 54 *) (function - | Elm.{symbol=Symbol.Token (LT (LT {token_})); _} + | Elm.{symbol=Symbol.Token (LT (LT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 55 *) (function - | Elm.{symbol=Symbol.Token (EQ (EQ {token_})); _} + | Elm.{symbol=Symbol.Token (EQ (EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 56 *) (function - | Elm.{symbol=Symbol.Token (COMMA (COMMA {token_})); _} + | Elm.{symbol=Symbol.Token (COMMA (COMMA {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 57 *) (function - | Elm.{symbol=Symbol.Token (SEMI (SEMI {token_})); _} + | Elm.{symbol=Symbol.Token (SEMI (SEMI {token})); _} :: tl__hocc__ -> Symbol.Nonterm (CodeToken ( (*______________________________________________________________________________*) #430 "./Parse.hmh" -CodeToken {token_} +CodeToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () @@ -23355,101 +23355,101 @@ CodeCodeToken {code_token; code_tl} | _ -> not_reached () ); (* 63 *) (function - | Elm.{symbol=Symbol.Token (HOCC (HOCC {token_})); _} + | Elm.{symbol=Symbol.Token (HOCC (HOCC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 64 *) (function - | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token_})); _} + | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 65 *) (function - | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token_})); _} + | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 66 *) (function - | Elm.{symbol=Symbol.Token (START (START {token_})); _} + | Elm.{symbol=Symbol.Token (START (START {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 67 *) (function - | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token_})); _} + | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 68 *) (function - | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token_})); _} + | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 69 *) (function - | Elm.{symbol=Symbol.Token (LEFT (LEFT {token_})); _} + | Elm.{symbol=Symbol.Token (LEFT (LEFT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 70 *) (function - | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token_})); _} + | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 71 *) (function - | Elm.{symbol=Symbol.Token (PREC (PREC {token_})); _} + | Elm.{symbol=Symbol.Token (PREC (PREC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 72 *) (function - | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token_})); _} + | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Binding ( (*______________________________________________________________________________*) #452 "./Parse.hmh" -Binding {token_} +Binding {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () @@ -23984,11 +23984,11 @@ StmtPrec {prec} | _ -> not_reached () ); (* 119 *) (function - | Elm.{symbol=Symbol.Nonterm (Token token_); _} + | Elm.{symbol=Symbol.Nonterm (Token token); _} :: tl__hocc__ -> Symbol.Nonterm (Stmt ( (*______________________________________________________________________________*) #558 "./Parse.hmh" -StmtToken {token_} +StmtToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () @@ -24052,365 +24052,364 @@ Hocc {hocc_; indent; stmts; dedent} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #574 "./Parse.hmh" -let token_ = match sep with - | SepLineDelim {line_delim=LINE_DELIM {token_}} - | SepSemi {semi=SEMI {token_}} - | SepBar {bar=BAR {token_}} - -> token_ +let token = match sep with + | SepLineDelim {line_delim=LINE_DELIM {token}} + | SepSemi {semi=SEMI {token}} + | SepBar {bar=BAR {token}} + -> token in - MatterToken {token_} + MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 126 *) (function - | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token_})); _} + | Elm.{symbol=Symbol.Token (NONTERM (NONTERM {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 127 *) (function - | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token_})); _} + | Elm.{symbol=Symbol.Token (EPSILON_ (EPSILON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 128 *) (function - | Elm.{symbol=Symbol.Token (START (START {token_})); _} + | Elm.{symbol=Symbol.Token (START (START {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 129 *) (function - | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token_})); _} + | Elm.{symbol=Symbol.Token (TOKEN (TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 130 *) (function - | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token_})); _} + | Elm.{symbol=Symbol.Token (NEUTRAL (NEUTRAL {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 131 *) (function - | Elm.{symbol=Symbol.Token (LEFT (LEFT {token_})); _} + | Elm.{symbol=Symbol.Token (LEFT (LEFT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 132 *) (function - | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token_})); _} + | Elm.{symbol=Symbol.Token (RIGHT (RIGHT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 133 *) (function - | Elm.{symbol=Symbol.Token (PREC (PREC {token_})); _} + | Elm.{symbol=Symbol.Token (PREC (PREC {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 134 *) (function - | Elm.{symbol=Symbol.Token (OTHER_TOKEN (OTHER_TOKEN {token_})); _} + | Elm.{symbol=Symbol.Token (OTHER_TOKEN (OTHER_TOKEN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 135 *) (function - | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token_})); _} + | Elm.{symbol=Symbol.Token (UIDENT (UIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 136 *) (function - | Elm.{symbol=Symbol.Token (CIDENT (CIDENT {token_})); _} + | Elm.{symbol=Symbol.Token (CIDENT (CIDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 137 *) (function - | Elm.{symbol=Symbol.Token (USCORE (USCORE {token_})); _} + | Elm.{symbol=Symbol.Token (USCORE (USCORE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 138 *) (function - | Elm.{symbol=Symbol.Token (ISTRING (ISTRING {token_})); _} + | Elm.{symbol=Symbol.Token (ISTRING (ISTRING {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 139 *) (function - | Elm.{symbol=Symbol.Token (COLON_COLON_EQ (COLON_COLON_EQ {token_})); _} + | Elm.{symbol=Symbol.Token (COLON_COLON_EQ (COLON_COLON_EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 140 *) (function - | Elm.{symbol=Symbol.Token (AS (AS {token_})); _} + | Elm.{symbol=Symbol.Token (AS (AS {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 141 *) (function - | Elm.{symbol=Symbol.Token (OF (OF {token_})); _} + | Elm.{symbol=Symbol.Token (OF (OF {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 142 *) (function - | Elm.{symbol=Symbol.Token (COLON (COLON {token_})); _} + | Elm.{symbol=Symbol.Token (COLON (COLON {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 143 *) (function - | Elm.{symbol=Symbol.Token (DOT (DOT {token_})); _} + | Elm.{symbol=Symbol.Token (DOT (DOT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 144 *) (function - | Elm.{symbol=Symbol.Token (ARROW (ARROW {token_})); _} + | Elm.{symbol=Symbol.Token (ARROW (ARROW {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 145 *) (function - | Elm.{symbol=Symbol.Token (LT (LT {token_})); _} + | Elm.{symbol=Symbol.Token (LT (LT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 146 *) (function - | Elm.{symbol=Symbol.Token (EQ (EQ {token_})); _} + | Elm.{symbol=Symbol.Token (EQ (EQ {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 147 *) (function - | Elm.{symbol=Symbol.Token (COMMA (COMMA {token_})); _} + | Elm.{symbol=Symbol.Token (COMMA (COMMA {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 148 *) (function - | Elm.{symbol=Symbol.Token (INDENT (INDENT {token_})); _} + | Elm.{symbol=Symbol.Token (INDENT (INDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 149 *) (function - | Elm.{symbol=Symbol.Token (DEDENT (DEDENT {token_})); _} + | Elm.{symbol=Symbol.Token (DEDENT (DEDENT {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 150 *) (function - | Elm.{symbol=Symbol.Token (LPAREN (LPAREN {token_})); _} + | Elm.{symbol=Symbol.Token (LPAREN (LPAREN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 151 *) (function - | Elm.{symbol=Symbol.Token (RPAREN (RPAREN {token_})); _} + | Elm.{symbol=Symbol.Token (RPAREN (RPAREN {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 152 *) (function - | Elm.{symbol=Symbol.Token (LCAPTURE (LCAPTURE {token_})); _} + | Elm.{symbol=Symbol.Token (LCAPTURE (LCAPTURE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 153 *) (function - | Elm.{symbol=Symbol.Token (RCAPTURE (RCAPTURE {token_})); _} + | Elm.{symbol=Symbol.Token (RCAPTURE (RCAPTURE {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 154 *) (function - | Elm.{symbol=Symbol.Token (LBRACK (LBRACK {token_})); _} + | Elm.{symbol=Symbol.Token (LBRACK (LBRACK {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 155 *) (function - | Elm.{symbol=Symbol.Token (RBRACK (RBRACK {token_})); _} + | Elm.{symbol=Symbol.Token (RBRACK (RBRACK {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 156 *) (function - | Elm.{symbol=Symbol.Token (LARRAY (LARRAY {token_})); _} + | Elm.{symbol=Symbol.Token (LARRAY (LARRAY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 157 *) (function - | Elm.{symbol=Symbol.Token (RARRAY (RARRAY {token_})); _} + | Elm.{symbol=Symbol.Token (RARRAY (RARRAY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 158 *) (function - | Elm.{symbol=Symbol.Token (LCURLY (LCURLY {token_})); _} + | Elm.{symbol=Symbol.Token (LCURLY (LCURLY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 159 *) (function - | Elm.{symbol=Symbol.Token (RCURLY (RCURLY {token_})); _} + | Elm.{symbol=Symbol.Token (RCURLY (RCURLY {token})); _} :: tl__hocc__ -> Symbol.Nonterm (MatterToken ( (*______________________________________________________________________________*) #615 "./Parse.hmh" -MatterToken {token_} +MatterToken {token} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () ); (* 160 *) (function | Elm.{symbol=Symbol.Nonterm (Matter matter); _} - :: Elm.{symbol=Symbol.Nonterm (MatterToken matter_token); _} + :: Elm.{symbol=Symbol.Nonterm (MatterToken (MatterToken {token})); _} :: tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#619 "./Parse.hmh" -let MatterToken {token_} = matter_token in - Matter {token_; matter} +#618 "./Parse.hmh" +Matter {token; matter} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ | _ -> not_reached () @@ -24418,7 +24417,7 @@ let MatterToken {token_} = matter_token in (* 161 *) (function tl__hocc__ -> Symbol.Nonterm (Matter ( (*______________________________________________________________________________*) -#621 "./Parse.hmh" +#619 "./Parse.hmh" MatterEpsilon (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24430,7 +24429,7 @@ MatterEpsilon :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmh ( (*______________________________________________________________________________*) -#624 "./Parse.hmh" +#622 "./Parse.hmh" Hmh {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24444,7 +24443,7 @@ Hmh {prelude; hocc_; postlude; eoi} :: Elm.{symbol=Symbol.Nonterm (Matter prelude); _} :: tl__hocc__ -> Symbol.Nonterm (Hmhi ( (*______________________________________________________________________________*) -#627 "./Parse.hmh" +#625 "./Parse.hmh" Hmhi {prelude; hocc_; postlude; eoi} (*‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾‾*) )), tl__hocc__ @@ -24657,7 +24656,7 @@ Hmhi {prelude; hocc_; postlude; eoi} | Status.Prefix -> t |> feed token |> walk | _ -> not_reached () end -#628 "./Parse.hmh" +#626 "./Parse.hmh" let rec scan scanner = let scanner, scan_token = Scan.next scanner in @@ -24669,49 +24668,49 @@ let rec scan scanner = | Tok_whitespace _ | Tok_hash_comment _ | Tok_paren_comment _ -> None (* Swallow. *) - | Tok_uident _ -> Some (Token.UIDENT (UIDENT {token_=scan_token})) - | Tok_cident _ -> Some (Token.CIDENT (CIDENT {token_=scan_token})) - | Tok_uscore _ -> Some (Token.USCORE (USCORE {token_=scan_token})) - | Tok_istring _ -> Some (Token.ISTRING (ISTRING {token_=scan_token})) - | Tok_as _ -> Some (Token.AS (AS {token_=scan_token})) - | Tok_of _ -> Some (Token.OF (OF {token_=scan_token})) - | Tok_colon _ -> Some (Token.COLON (COLON {token_=scan_token})) - | Tok_dot _ -> Some (Token.DOT (DOT {token_=scan_token})) - | Tok_arrow _ -> Some (Token.ARROW (ARROW {token_=scan_token})) - | Tok_bar _ -> Some (Token.BAR (BAR {token_=scan_token})) - | Tok_lt _ -> Some (Token.LT (LT {token_=scan_token})) - | Tok_eq _ -> Some (Token.EQ (EQ {token_=scan_token})) - | Tok_comma _ -> Some (Token.COMMA (COMMA {token_=scan_token})) - | Tok_semi _ -> Some (Token.SEMI (SEMI {token_=scan_token})) - | Tok_line_delim _ -> Some (Token.LINE_DELIM (LINE_DELIM {token_=scan_token})) - | Tok_indent _ -> Some (Token.INDENT (INDENT {token_=scan_token})) - | Tok_dedent _ -> Some (Token.DEDENT (DEDENT {token_=scan_token})) - | Tok_lparen _ -> Some (Token.LPAREN (LPAREN {token_=scan_token})) - | Tok_rparen _ -> Some (Token.RPAREN (RPAREN {token_=scan_token})) - | Tok_lcapture _ -> Some (Token.LCAPTURE (LCAPTURE {token_=scan_token})) - | Tok_rcapture _ -> Some (Token.RCAPTURE (RCAPTURE {token_=scan_token})) - | Tok_lbrack _ -> Some (Token.LBRACK (LBRACK {token_=scan_token})) - | Tok_rbrack _ -> Some (Token.RBRACK (RBRACK {token_=scan_token})) - | Tok_larray _ -> Some (Token.LARRAY (LARRAY {token_=scan_token})) - | Tok_rarray _ -> Some (Token.RARRAY (RARRAY {token_=scan_token})) - | Tok_lcurly _ -> Some (Token.LCURLY (LCURLY {token_=scan_token})) - | Tok_rcurly _ -> Some (Token.RCURLY (RCURLY {token_=scan_token})) - | Tok_end_of_input _ -> Some (Token.EOI (EOI {token_=scan_token})) - | _ -> Some (Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token})) + | Tok_uident _ -> Some (Token.UIDENT (UIDENT {token=scan_token})) + | Tok_cident _ -> Some (Token.CIDENT (CIDENT {token=scan_token})) + | Tok_uscore _ -> Some (Token.USCORE (USCORE {token=scan_token})) + | Tok_istring _ -> Some (Token.ISTRING (ISTRING {token=scan_token})) + | Tok_as _ -> Some (Token.AS (AS {token=scan_token})) + | Tok_of _ -> Some (Token.OF (OF {token=scan_token})) + | Tok_colon _ -> Some (Token.COLON (COLON {token=scan_token})) + | Tok_dot _ -> Some (Token.DOT (DOT {token=scan_token})) + | Tok_arrow _ -> Some (Token.ARROW (ARROW {token=scan_token})) + | Tok_bar _ -> Some (Token.BAR (BAR {token=scan_token})) + | Tok_lt _ -> Some (Token.LT (LT {token=scan_token})) + | Tok_eq _ -> Some (Token.EQ (EQ {token=scan_token})) + | Tok_comma _ -> Some (Token.COMMA (COMMA {token=scan_token})) + | Tok_semi _ -> Some (Token.SEMI (SEMI {token=scan_token})) + | Tok_line_delim _ -> Some (Token.LINE_DELIM (LINE_DELIM {token=scan_token})) + | Tok_indent _ -> Some (Token.INDENT (INDENT {token=scan_token})) + | Tok_dedent _ -> Some (Token.DEDENT (DEDENT {token=scan_token})) + | Tok_lparen _ -> Some (Token.LPAREN (LPAREN {token=scan_token})) + | Tok_rparen _ -> Some (Token.RPAREN (RPAREN {token=scan_token})) + | Tok_lcapture _ -> Some (Token.LCAPTURE (LCAPTURE {token=scan_token})) + | Tok_rcapture _ -> Some (Token.RCAPTURE (RCAPTURE {token=scan_token})) + | Tok_lbrack _ -> Some (Token.LBRACK (LBRACK {token=scan_token})) + | Tok_rbrack _ -> Some (Token.RBRACK (RBRACK {token=scan_token})) + | Tok_larray _ -> Some (Token.LARRAY (LARRAY {token=scan_token})) + | Tok_rarray _ -> Some (Token.RARRAY (RARRAY {token=scan_token})) + | Tok_lcurly _ -> Some (Token.LCURLY (LCURLY {token=scan_token})) + | Tok_rcurly _ -> Some (Token.RCURLY (RCURLY {token=scan_token})) + | Tok_end_of_input _ -> Some (Token.EOI (EOI {token=scan_token})) + | _ -> Some (Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token})) end - | Tok_hocc _ -> Some (Token.HOCC (HOCC {token_=scan_token})) - | Tok_token _ -> Some (Token.TOKEN (TOKEN {token_=scan_token})) - | Tok_nonterm _ -> Some (Token.NONTERM (NONTERM {token_=scan_token})) - | Tok_start _ -> Some (Token.START (START {token_=scan_token})) - | Tok_epsilon _ -> Some (Token.EPSILON_ (EPSILON {token_=scan_token})) - | Tok_neutral _ -> Some (Token.NEUTRAL (NEUTRAL {token_=scan_token})) - | Tok_left _ -> Some (Token.LEFT (LEFT {token_=scan_token})) - | Tok_right _ -> Some (Token.RIGHT (RIGHT {token_=scan_token})) - | Tok_prec _ -> Some (Token.PREC (PREC {token_=scan_token})) - | Tok_colon_colon_eq _ -> Some (Token.COLON_COLON_EQ (COLON_COLON_EQ {token_=scan_token})) + | Tok_hocc _ -> Some (Token.HOCC (HOCC {token=scan_token})) + | Tok_token _ -> Some (Token.TOKEN (TOKEN {token=scan_token})) + | Tok_nonterm _ -> Some (Token.NONTERM (NONTERM {token=scan_token})) + | Tok_start _ -> Some (Token.START (START {token=scan_token})) + | Tok_epsilon _ -> Some (Token.EPSILON_ (EPSILON {token=scan_token})) + | Tok_neutral _ -> Some (Token.NEUTRAL (NEUTRAL {token=scan_token})) + | Tok_left _ -> Some (Token.LEFT (LEFT {token=scan_token})) + | Tok_right _ -> Some (Token.RIGHT (RIGHT {token=scan_token})) + | Tok_prec _ -> Some (Token.PREC (PREC {token=scan_token})) + | Tok_colon_colon_eq _ -> Some (Token.COLON_COLON_EQ (COLON_COLON_EQ {token=scan_token})) in match token_opt with - | Some token_ -> scanner, scan_token, token_, [] + | Some token -> scanner, scan_token, token, [] | None -> scan scanner end | mal :: [] -> begin @@ -24737,20 +24736,20 @@ let rec scan scanner = u64=rendition } in let scan_token = Scan.Token.HmcToken tok in - scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token}), [] + scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), [] end - | None -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token}), [mal] + | None -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), [mal] end - | mals -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token_=scan_token}), mals + | mals -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), mals let hmhi scanner = let rec inner scanner errs parser = begin - let scanner, scan_token, token_, mals = scan scanner in + let scanner, scan_token, token, mals = scan scanner in let errs = match mals with | [] -> errs | _ -> List.fold ~init:errs ~f:(fun errs mal -> Error.init_mal mal :: errs) mals in - let {status; _} as parser = next token_ parser in + let {status; _} as parser = next token parser in match status, errs with | Prefix, _ -> inner scanner errs parser | Accept (Hmhi hmhi), [] -> scanner, Ok hmhi @@ -24765,7 +24764,7 @@ let hmhi scanner = let hmh scanner = let rec inner scanner errs parser = begin - let scanner, scan_token, token_, mals = scan scanner in + let scanner, scan_token, token, mals = scan scanner in (* File.Fmt.stderr |> Fmt.fmt "XXX scan_token=" @@ -24777,7 +24776,7 @@ let hmh scanner = | [] -> 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 + let {stack=_XXX; status} as parser = next token parser in (* File.Fmt.stderr |> Fmt.fmt "XXX status=" @@ -24808,238 +24807,238 @@ let hmh scanner = (**************************************************************************************************) (* fmt_* functions. *) -let rec pp_token_hocc (HOCC {token_}) formatter = +let rec pp_token_hocc (HOCC {token}) formatter = formatter |> Fmt.fmt "HOCC {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_nonterm (NONTERM {token_}) formatter = + and pp_token_nonterm (NONTERM {token}) formatter = formatter |> Fmt.fmt "NONTERM {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_epsilon (EPSILON {token_}) formatter = + and pp_token_epsilon (EPSILON {token}) formatter = formatter |> Fmt.fmt "EPSILON {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_start (START {token_}) formatter = + and pp_token_start (START {token}) formatter = formatter |> Fmt.fmt "START {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_token (TOKEN {token_}) formatter = + and pp_token_token (TOKEN {token}) formatter = formatter |> Fmt.fmt "TOKEN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_neutral (NEUTRAL {token_}) formatter = + and pp_token_neutral (NEUTRAL {token}) formatter = formatter |> Fmt.fmt "NEUTRAL {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_left (LEFT {token_}) formatter = + and pp_token_left (LEFT {token}) formatter = formatter |> Fmt.fmt "LEFT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_right (RIGHT {token_}) formatter = + and pp_token_right (RIGHT {token}) formatter = formatter |> Fmt.fmt "RIGHT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_prec (PREC {token_}) formatter = + and pp_token_prec (PREC {token}) formatter = formatter |> Fmt.fmt "PREC {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_uident (UIDENT {token_}) formatter = + and pp_token_uident (UIDENT {token}) formatter = formatter |> Fmt.fmt "UIDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_cident (CIDENT {token_}) formatter = + and pp_token_cident (CIDENT {token}) formatter = formatter |> Fmt.fmt "CIDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_uscore (USCORE {token_}) formatter = + and pp_token_uscore (USCORE {token}) formatter = formatter |> Fmt.fmt "USCORE {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_istring (ISTRING {token_}) formatter = + and pp_token_istring (ISTRING {token}) formatter = formatter |> Fmt.fmt "ISTRING {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_colon_colon_eq (COLON_COLON_EQ {token_}) formatter = + and pp_token_colon_colon_eq (COLON_COLON_EQ {token}) formatter = formatter |> Fmt.fmt "COLON_COLON_EQ {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_of (OF {token_}) formatter = + and pp_token_of (OF {token}) formatter = formatter |> Fmt.fmt "OF {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_colon (COLON {token_}) formatter = + and pp_token_colon (COLON {token}) formatter = formatter |> Fmt.fmt "COLON {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_dot (DOT {token_}) formatter = + and pp_token_dot (DOT {token}) formatter = formatter |> Fmt.fmt "DOT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_arrow (ARROW {token_}) formatter = + and pp_token_arrow (ARROW {token}) formatter = formatter |> Fmt.fmt "ARROW {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_bar (BAR {token_}) formatter = + and pp_token_bar (BAR {token}) formatter = formatter |> Fmt.fmt "BAR {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lt (LT {token_}) formatter = + and pp_token_lt (LT {token}) formatter = formatter |> Fmt.fmt "LT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_eq (EQ {token_}) formatter = + and pp_token_eq (EQ {token}) formatter = formatter |> Fmt.fmt "EQ {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_comma (COMMA {token_}) formatter = + and pp_token_comma (COMMA {token}) formatter = formatter |> Fmt.fmt "COMMA {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_semi (SEMI {token_}) formatter = + and pp_token_semi (SEMI {token}) formatter = formatter |> Fmt.fmt "SEMI {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_as (AS {token_}) formatter = + and pp_token_as (AS {token}) formatter = formatter |> Fmt.fmt "AS {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_line_delim (LINE_DELIM {token_}) formatter = + and pp_token_line_delim (LINE_DELIM {token}) formatter = formatter |> Fmt.fmt "LINE_DELIM {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_indent (INDENT {token_}) formatter = + and pp_token_indent (INDENT {token}) formatter = formatter |> Fmt.fmt "INDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_dedent (DEDENT {token_}) formatter = + and pp_token_dedent (DEDENT {token}) formatter = formatter |> Fmt.fmt "DEDENT {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lparen (LPAREN {token_}) formatter = + and pp_token_lparen (LPAREN {token}) formatter = formatter |> Fmt.fmt "LPAREN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rparen (RPAREN {token_}) formatter = + and pp_token_rparen (RPAREN {token}) formatter = formatter |> Fmt.fmt "RPAREN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lcapture (LCAPTURE {token_}) formatter = + and pp_token_lcapture (LCAPTURE {token}) formatter = formatter |> Fmt.fmt "LCAPTURE {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rcapture (RCAPTURE {token_}) formatter = + and pp_token_rcapture (RCAPTURE {token}) formatter = formatter |> Fmt.fmt "RCAPTURE {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lbrack (LBRACK {token_}) formatter = + and pp_token_lbrack (LBRACK {token}) formatter = formatter |> Fmt.fmt "LBRACK {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rbrack (RBRACK {token_}) formatter = + and pp_token_rbrack (RBRACK {token}) formatter = formatter |> Fmt.fmt "RBRACK {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_larray (LARRAY {token_}) formatter = + and pp_token_larray (LARRAY {token}) formatter = formatter |> Fmt.fmt "LARRAY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rarray (RARRAY {token_}) formatter = + and pp_token_rarray (RARRAY {token}) formatter = formatter |> Fmt.fmt "RARRAY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_lcurly (LCURLY {token_}) formatter = + and pp_token_lcurly (LCURLY {token}) formatter = formatter |> Fmt.fmt "LCURLY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_rcurly (RCURLY {token_}) formatter = + and pp_token_rcurly (RCURLY {token}) formatter = formatter |> Fmt.fmt "RCURLY {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_other_token (OTHER_TOKEN {token_}) formatter = + and pp_token_other_token (OTHER_TOKEN {token}) formatter = formatter |> Fmt.fmt "OTHER_TOKEN {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" - and pp_token_eoi (EOI {token_}) formatter = + and pp_token_eoi (EOI {token}) formatter = formatter |> Fmt.fmt "EOI {" - |> Scan.Token.pp token_ + |> Scan.Token.pp token |> Fmt.fmt "}" and fmt_lcurly ~alt ~width formatter = @@ -25197,9 +25196,9 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and pp_token_alias token_alias formatter = fmt_token_alias token_alias formatter - and fmt_token ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) token_ formatter = + and fmt_token ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) token formatter = let width' = width + 4L in - match token_ with + match token with | Token {cident; token_alias; symbol_type0; prec_ref} -> formatter |> Fmt.fmt "Token " |> fmt_lcurly ~alt ~width @@ -25211,8 +25210,8 @@ let rec pp_token_hocc (HOCC {token_}) formatter = |> fmt_semi ~alt ~width |> Fmt.fmt "prec_ref=" |> fmt_prec_ref ~alt ~width:width' prec_ref |> fmt_rcurly ~alt ~width - and pp_token token_ formatter = - fmt_token token_ formatter + and pp_token token formatter = + fmt_token token formatter and fmt_sep ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) sep formatter = match sep with @@ -25338,7 +25337,7 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and pp_code_token code_token formatter = match code_token with - | CodeToken {token_} -> formatter |> Scan.Token.pp token_ + | CodeToken {token} -> formatter |> Scan.Token.pp token and fmt_code_tl ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) code_tl formatter = let width' = width + 4L in @@ -25384,10 +25383,10 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and fmt_binding ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) binding formatter = match binding with - | Binding {token_} -> + | Binding {token} -> formatter |> Fmt.fmt "Binding " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "token_=" |> Scan.Token.pp token_ + |> Fmt.fmt "token=" |> Scan.Token.pp token |> fmt_rcurly ~alt ~width and pp_binding binding formatter = fmt_binding binding formatter @@ -25698,10 +25697,10 @@ let rec pp_token_hocc (HOCC {token_}) formatter = |> fmt_lcurly ~alt ~width |> Fmt.fmt "prec=" |> fmt_prec ~alt ~width:width' prec |> fmt_rcurly ~alt ~width - | StmtToken {token_} -> + | StmtToken {token} -> formatter |> Fmt.fmt "StmtToken " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "token_=" |> fmt_token ~alt ~width:width' token_ + |> Fmt.fmt "token=" |> fmt_token ~alt ~width:width' token |> fmt_rcurly ~alt ~width | StmtNonterm {nonterm} -> formatter |> Fmt.fmt "StmtNonterm " @@ -25759,10 +25758,10 @@ let rec pp_token_hocc (HOCC {token_}) formatter = and fmt_matter ?(alt=Fmt.alt_default) ?(width=Fmt.width_default) matter formatter = let width' = width + 4L in match matter with - | Matter {token_; matter} -> + | Matter {token; matter} -> formatter |> Fmt.fmt "Matter " |> fmt_lcurly ~alt ~width - |> Fmt.fmt "token_=" |> Scan.Token.pp token_ + |> Fmt.fmt "token=" |> Scan.Token.pp token |> fmt_semi ~alt ~width |> Fmt.fmt "matter=" |> fmt_matter ~alt ~width:width' matter |> fmt_rcurly ~alt ~width @@ -25832,35 +25831,35 @@ let join_sources source0_opt source1_opt = end (* Not to be confused with a token force. *) -let token_source token_ = - Some (Scan.Token.source token_) +let token_source token = + Some (Scan.Token.source token) let source_of_token_epsilon = function - | EPSILON {token_} -> token_source token_ + | EPSILON {token} -> token_source token let source_of_token_uident = function - | UIDENT {token_} -> token_source token_ + | UIDENT {token} -> token_source token let source_of_token_cident = function - | CIDENT {token_} -> token_source token_ + | CIDENT {token} -> token_source token let source_of_token_istring = function - | ISTRING {token_} -> token_source token_ + | ISTRING {token} -> token_source token let source_of_token_lparen = function - | LPAREN {token_} -> token_source token_ + | LPAREN {token} -> token_source token let source_of_token_rparen = function - | RPAREN {token_} -> token_source token_ + | RPAREN {token} -> token_source token let source_of_token_lcurly = function - | LCURLY {token_} -> token_source token_ + | LCURLY {token} -> token_source token let source_of_token_rcurly = function - | RCURLY {token_} -> token_source token_ + | RCURLY {token} -> token_source token let rec source_of_binding = function - | Binding {token_} -> token_source token_ + | Binding {token} -> token_source token and source_of_prod_param_symbol = function | ProdParamSymbolCident {cident} -> source_of_token_cident cident | ProdParamSymbolAlias {alias} -> source_of_token_istring alias @@ -25903,26 +25902,26 @@ let rec source_of_binding = function (* Miscellaneous helper functions. *) let min_comment_indentation_of_hocc_block = function - | Hocc {indent=INDENT {token_=indent}; _} -> + | Hocc {indent=INDENT {token=indent}; _} -> Scan.Token.source indent |> Hmc.Source.Slice.base |> Hmc.Source.Cursor.pos |> Text.Pos.col let base_of_code code = - let of_token token_ = - let source = Scan.Token.source token_ in + let of_token token = + let source = Scan.Token.source token in Hmc.Source.Slice.base source in let rec of_delimited = function - | DelimitedBlock {indent=INDENT {token_}; _} - | DelimitedParen {lparen=LPAREN {token_}; _} - | DelimitedCapture {lcapture=LCAPTURE {token_}; _} - | DelimitedList {lbrack=LBRACK {token_}; _} - | DelimitedArray {larray=LARRAY {token_}; _} - | DelimitedModule {lcurly=LCURLY {token_}; _} -> of_token token_ + | DelimitedBlock {indent=INDENT {token}; _} + | DelimitedParen {lparen=LPAREN {token}; _} + | DelimitedCapture {lcapture=LCAPTURE {token}; _} + | DelimitedList {lbrack=LBRACK {token}; _} + | DelimitedArray {larray=LARRAY {token}; _} + | DelimitedModule {lcurly=LCURLY {token}; _} -> of_token token and of_code_token = function - | CodeToken {token_} -> of_token token_ + | CodeToken {token} -> of_token token and of_code = function | CodeDelimited {delimited; _} -> of_delimited delimited | CodeCodeToken {code_token; _} -> of_code_token code_token @@ -25942,18 +25941,18 @@ let last_token_of_code code = |> Option.value_or_thunk ~f:(fun () -> of_code code) end and of_delimited = function - | DelimitedBlock {codes; dedent=DEDENT {token_=dedent}; _} -> begin + | DelimitedBlock {codes; dedent=DEDENT {token=dedent}; _} -> begin of_codes codes |> Option.some_or_thunk ~f:(fun () -> Some dedent) |> Option.value_hlt end - | DelimitedParen {rparen=RPAREN {token_}; _} - | DelimitedCapture {rcapture=RCAPTURE {token_}; _} - | DelimitedList {rbrack=RBRACK {token_}; _} - | DelimitedArray {rarray=RARRAY {token_}; _} - | DelimitedModule {rcurly=RCURLY {token_}; _} -> token_ + | DelimitedParen {rparen=RPAREN {token}; _} + | DelimitedCapture {rcapture=RCAPTURE {token}; _} + | DelimitedList {rbrack=RBRACK {token}; _} + | DelimitedArray {rarray=RARRAY {token}; _} + | DelimitedModule {rcurly=RCURLY {token}; _} -> token and of_code_token = function - | CodeToken {token_} -> token_ + | CodeToken {token} -> token and of_code_tl = function | CodeTlDelimited {delimited; code_tl} -> of_code_tl code_tl |> Option.some_or_thunk ~f:(fun () -> Some (of_delimited delimited)) @@ -25991,14 +25990,14 @@ let indentation_of_code hocc_block code = * `hocc` block. *) let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = let rec of_precs_tl = function - | PrecsTlUident {uident=UIDENT {token_=uident}; precs_tl} -> + | PrecsTlUident {uident=UIDENT {token=uident}; precs_tl} -> Some ( of_precs_tl precs_tl |> Option.value_or_thunk ~f:(fun () -> uident) ) | PrecsTlEpsilon -> None and of_precs = function - | Precs {uident=UIDENT {token_=uident}; precs_tl} -> begin + | Precs {uident=UIDENT {token=uident}; precs_tl} -> begin of_precs_tl precs_tl |> Option.value_or_thunk ~f:(fun () -> uident) end @@ -26006,19 +26005,19 @@ let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = | PrecRelsPrecs {precs} -> Some (of_precs precs) | PrecRelsEpsilon -> None and of_symbol_type = function - | SymbolType {symbol_type=UIDENT {token_}; _} -> token_ + | SymbolType {symbol_type=UIDENT {token}; _} -> token and of_symbol_type0 = function | SymbolType0SymbolType {symbol_type} -> Some (of_symbol_type symbol_type) | SymbolType0Epsilon -> None and of_prec_ref = function - | PrecRefUident {uident=UIDENT {token_}} -> Some token_ + | PrecRefUident {uident=UIDENT {token}} -> Some token | PrecRefEpsilon -> None and of_token_alias = function - | TokenAlias {alias=ISTRING {token_=alias}} -> Some alias + | TokenAlias {alias=ISTRING {token=alias}} -> Some alias | TokenAliasEpsilon -> None and of_prod_param_symbol = function - | ProdParamSymbolCident {cident=CIDENT {token_=cident}} -> cident - | ProdParamSymbolAlias {alias=ISTRING {token_=alias}} -> alias + | ProdParamSymbolCident {cident=CIDENT {token=cident}} -> cident + | ProdParamSymbolAlias {alias=ISTRING {token=alias}} -> alias and of_prod_param = function | ProdParamBinding {prod_param_symbol; _} | ProdParamPattern {prod_param_symbol; _} @@ -26037,7 +26036,7 @@ let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = end and of_prod_pattern = function | ProdPatternParams {prod_params} -> of_prod_params prod_params - | ProdPatternEpsilon {epsilon=EPSILON {token_=epsilon}; prec_ref} -> + | ProdPatternEpsilon {epsilon=EPSILON {token=epsilon}; prec_ref} -> of_prec_ref prec_ref |> Option.value_or_thunk ~f:(fun () -> epsilon) and of_prod = function @@ -26070,11 +26069,11 @@ let postlude_base_of_hocc (Hocc {stmts=Stmts {stmt; stmts_tl}; _}) = | NontermProds {prods; _} -> of_prods prods | NontermReductions {reductions; _} -> of_reductions reductions and of_stmt = function - | StmtPrec {prec=Prec {uident=UIDENT {token_=uident}; prec_rels; _}} -> begin + | StmtPrec {prec=Prec {uident=UIDENT {token=uident}; prec_rels; _}} -> begin of_prec_rels prec_rels |> Option.value_or_thunk ~f:(fun () -> uident) end - | StmtToken {token_=Token {cident=CIDENT {token_=cident}; token_alias; symbol_type0; + | StmtToken {token=Token {cident=CIDENT {token=cident}; token_alias; symbol_type0; prec_ref; _}} -> begin of_prec_ref prec_ref |> Option.some_or_thunk ~f:(fun () -> of_symbol_type0 symbol_type0) diff --git a/bootstrap/bin/hocc/callback.ml b/bootstrap/bin/hocc/callback.ml index d18367c5..767b0285 100644 --- a/bootstrap/bin/hocc/callback.ml +++ b/bootstrap/bin/hocc/callback.ml @@ -38,8 +38,8 @@ module T = struct {pattern; symbol_name; stype; prod_param} let fold_bindings ~init ~f {prod_param; _} = - let rec fold_binding ~init ~f (Parse.Binding {token_}) = begin - f init token_ + let rec fold_binding ~init ~f (Parse.Binding {token}) = begin + f init token end and fold_field ~init ~f field = begin match field with | Parse.PatternFieldBinding {binding} -> fold_binding ~init ~f binding diff --git a/bootstrap/bin/hocc/code.ml b/bootstrap/bin/hocc/code.ml index 9fbf3287..4f134e50 100644 --- a/bootstrap/bin/hocc/code.ml +++ b/bootstrap/bin/hocc/code.ml @@ -434,8 +434,8 @@ let expand_hmi_template template_indentation template Spec.{symbols; _} formatte ] in formatter |> expand ~template_indentation template expanders -let generate_hmi conf Parse.(Hmhi {prelude; hocc_=HOCC {token_=hocc_}; postlude; - eoi=EOI {token_=eoi}}) io spec = +let generate_hmi conf Parse.(Hmhi {prelude; hocc_=HOCC {token=hocc_}; postlude; + eoi=EOI {token=eoi}}) io spec = assert (Spec.conflicts spec = 0L); let indentation = indentation_of_hocc hocc_ in let module_name = module_name conf in @@ -450,8 +450,8 @@ let generate_hmi conf Parse.(Hmhi {prelude; hocc_=HOCC {token_=hocc_}; postlude; |> Fmt.fmt "[:" |> Fmt.fmt directive_pathstr |> Fmt.fmt ":1]" |> (fun formatter -> match prelude with - | Parse.Matter {token_; _} -> begin - let base = Scan.Token.source token_ |> Hmc.Source.Slice.base in + | Parse.Matter {token; _} -> begin + let base = Scan.Token.source token |> Hmc.Source.Slice.base in let past = Scan.Token.source hocc_ |> Hmc.Source.Slice.base in let source = Hmc.Source.Slice.of_cursors ~base ~past in formatter |> Fmt.fmt (Hmc.Source.Slice.to_string source) @@ -1772,8 +1772,8 @@ let expand_hm_template template_indentation template hocc_block formatter |> expand ~template_indentation template expanders let generate_hm conf - Parse.(Hmh {prelude; hocc_=(Hocc {hocc_=HOCC {token_=hocc_}; _} as hocc_block); postlude; - eoi=EOI {token_=eoi}}) io spec = + Parse.(Hmh {prelude; hocc_=(Hocc {hocc_=HOCC {token=hocc_}; _} as hocc_block); postlude; + eoi=EOI {token=eoi}}) io spec = assert (Spec.conflicts spec = 0L); let indentation = indentation_of_hocc hocc_ in let module_name = module_name conf in @@ -1788,8 +1788,8 @@ let generate_hm conf |> Fmt.fmt "[:" |> Fmt.fmt directive_pathstr |> Fmt.fmt ":1]" |> (fun formatter -> match prelude with - | Parse.Matter {token_; _} -> begin - let base = Scan.Token.source token_ |> Hmc.Source.Slice.base in + | Parse.Matter {token; _} -> begin + let base = Scan.Token.source token |> Hmc.Source.Slice.base in let past = Scan.Token.source hocc_ |> Hmc.Source.Slice.base in let source = Hmc.Source.Slice.of_cursors ~base ~past in formatter |> Fmt.fmt (Hmc.Source.Slice.to_string source) @@ -2187,8 +2187,8 @@ let expand_mli_template template_indentation template Spec.{symbols; _} formatte ] in formatter |> expand ~template_indentation template expanders -let generate_mli conf Parse.(Hmhi {prelude; hocc_=HOCC {token_=hocc_}; postlude; - eoi=EOI {token_=eoi}}) io spec = +let generate_mli conf Parse.(Hmhi {prelude; hocc_=HOCC {token=hocc_}; postlude; + eoi=EOI {token=eoi}}) io spec = assert (Spec.conflicts spec = 0L); let indentation = indentation_of_hocc hocc_ in let module_name = module_name conf in @@ -2200,8 +2200,8 @@ let generate_mli conf Parse.(Hmhi {prelude; hocc_=HOCC {token_=hocc_}; postlude; |> Fmt.fmt " *)\n" |> (fun formatter -> match prelude with - | Parse.Matter {token_; _} -> begin - let base = Scan.Token.source token_ |> Hmc.Source.Slice.base in + | Parse.Matter {token; _} -> begin + let base = Scan.Token.source token |> Hmc.Source.Slice.base in let past = Scan.Token.source hocc_ |> Hmc.Source.Slice.base in let source = Hmc.Source.Slice.of_cursors ~base ~past in formatter |> Fmt.fmt (Hmc.Source.Slice.to_string source) @@ -3562,8 +3562,8 @@ let expand_ml_template template_indentation template formatter |> expand ~template_indentation template expanders let generate_ml conf - Parse.(Hmh {prelude; hocc_=(Hocc {hocc_=HOCC {token_=hocc_}; _} as hocc_block); postlude; - eoi=EOI {token_=eoi}}) io spec = + Parse.(Hmh {prelude; hocc_=(Hocc {hocc_=HOCC {token=hocc_}; _} as hocc_block); postlude; + eoi=EOI {token=eoi}}) io spec = assert (Spec.conflicts spec = 0L); let indentation = indentation_of_hocc hocc_ in let module_name = module_name conf in @@ -3576,8 +3576,8 @@ let generate_ml conf |> (fun formatter -> match prelude with - | Parse.Matter {token_; _} -> begin - let base = Scan.Token.source token_ |> Hmc.Source.Slice.base in + | Parse.Matter {token; _} -> begin + let base = Scan.Token.source token |> Hmc.Source.Slice.base in let past = Scan.Token.source hocc_ |> Hmc.Source.Slice.base in let source = Hmc.Source.Slice.of_cursors ~base ~past in formatter |> Fmt.fmt (Hmc.Source.Slice.to_string source) diff --git a/bootstrap/bin/hocc/prec.ml b/bootstrap/bin/hocc/prec.ml index dea9348a..d7336f70 100644 --- a/bootstrap/bin/hocc/prec.ml +++ b/bootstrap/bin/hocc/prec.ml @@ -37,12 +37,12 @@ let src_fmt {name; assoc; stmt; _} formatter = |> Fmt.fmt name |> (fun formatter -> match stmt with - | Prec {prec_rels=PrecRelsPrecs {precs=Precs {uident=UIDENT {token_=uident}; precs_tl}}; _} + | Prec {prec_rels=PrecRelsPrecs {precs=Precs {uident=UIDENT {token=uident}; precs_tl}}; _} -> begin let rec fmt_precs_tl precs_tl formatter = begin match precs_tl with - | Parse.PrecsTlUident {uident=UIDENT {token_=uident}; precs_tl} -> begin + | Parse.PrecsTlUident {uident=UIDENT {token=uident}; precs_tl} -> begin formatter |> Fmt.fmt ", " |> Fmt.fmt (string_of_token uident) |> fmt_precs_tl precs_tl diff --git a/bootstrap/bin/hocc/spec.ml b/bootstrap/bin/hocc/spec.ml index 10b505de..29127d97 100644 --- a/bootstrap/bin/hocc/spec.ml +++ b/bootstrap/bin/hocc/spec.ml @@ -24,7 +24,7 @@ let synthetic_name_of_start_name start_name = let precs_init io hmh = let rec fold_precs_tl io precs rels doms precs_tl = begin match precs_tl with - | Parse.PrecsTlUident {uident=UIDENT {token_=uident}; precs_tl} -> begin + | Parse.PrecsTlUident {uident=UIDENT {token=uident}; precs_tl} -> begin let name = string_of_token uident in let rels = match Set.mem name rels with | true -> begin @@ -56,7 +56,7 @@ let precs_init io hmh = end in let fold_precs io precs parse_precs = begin match parse_precs with - | Parse.Precs {uident=UIDENT {token_=uident}; precs_tl} -> begin + | Parse.Precs {uident=UIDENT {token=uident}; precs_tl} -> begin let name = string_of_token uident in let rels = Set.singleton (module String) name in let doms = match Precs.prec_of_name name precs with @@ -76,7 +76,7 @@ let precs_init io hmh = end in let fold_prec io precs parse_prec = begin match parse_prec with - | Parse.Prec {prec_type; uident=UIDENT {token_=uident}; prec_rels} -> begin + | Parse.Prec {prec_type; uident=UIDENT {token=uident}; prec_rels} -> begin let name = string_of_token uident in let assoc = match prec_type with | PrecTypeNeutral -> None @@ -129,7 +129,7 @@ let precs_init io hmh = let rec qualify_symbol_type symbol_type_qualifier symbol_type = match symbol_type_qualifier with - | Parse.SymbolTypeQualifier {cident=CIDENT {token_=cident}; symbol_type_qualifier_tl; _} -> begin + | Parse.SymbolTypeQualifier {cident=CIDENT {token=cident}; symbol_type_qualifier_tl; _} -> begin qualify_symbol_type symbol_type_qualifier_tl (SymbolType.qualify (string_of_token cident) symbol_type) end @@ -138,19 +138,19 @@ let rec qualify_symbol_type symbol_type_qualifier symbol_type = let tokens_init io precs hmh = let fold_token io precs symbols token = begin match token with - | Parse.Token {cident=CIDENT {token_=cident}; token_alias; symbol_type0; prec_ref; _} + | Parse.Token {cident=CIDENT {token=cident}; token_alias; symbol_type0; prec_ref; _} -> begin let name = string_of_token cident in let stype = match symbol_type0 with | SymbolType0SymbolType {symbol_type=SymbolType { - symbol_type_qualifier; symbol_type=UIDENT {token_=type_}; _}} -> begin + symbol_type_qualifier; symbol_type=UIDENT {token=type_}; _}} -> begin SymbolType.explicit (string_of_token type_) |> qualify_symbol_type symbol_type_qualifier end | SymbolType0Epsilon -> SymbolType.implicit in let prec = match prec_ref with - | PrecRefUident {uident=UIDENT {token_=uident}} -> begin + | PrecRefUident {uident=UIDENT {token=uident}} -> begin let prec_name = string_of_token uident in match Precs.prec_of_name prec_name precs with | None -> begin @@ -179,7 +179,7 @@ let tokens_init io precs hmh = end in let alias = match token_alias with - | TokenAlias {alias=ISTRING {token_=a}} -> begin + | TokenAlias {alias=ISTRING {token=a}} -> begin let alias_name = string_of_alias_token a in let () = match Symbols.symbol_index_of_alias alias_name symbols with | None -> () @@ -203,7 +203,7 @@ let tokens_init io precs hmh = end in let fold_stmt io precs symbols stmt = begin match stmt with - | Parse.StmtToken {token_} -> fold_token io precs symbols token_ + | Parse.StmtToken {token} -> fold_token io precs symbols token | _ -> io, symbols end in let rec fold_stmts_tl io precs symbols stmts_tl = begin @@ -242,10 +242,10 @@ let symbol_infos_init io symbols hmh = end in let fold_nonterm io symbols nonterm = begin let name, stype = match nonterm with - | Parse.NontermProds {cident=CIDENT {token_=nonterm_cident}; _} -> + | Parse.NontermProds {cident=CIDENT {token=nonterm_cident}; _} -> string_of_token nonterm_cident, SymbolType.implicit - | NontermReductions {cident=CIDENT {token_=nonterm_cident}; symbol_type=SymbolType { - symbol_type_qualifier; symbol_type=UIDENT {token_=type_}; _}; _} -> begin + | NontermReductions {cident=CIDENT {token=nonterm_cident}; symbol_type=SymbolType { + symbol_type_qualifier; symbol_type=UIDENT {token=type_}; _}; _} -> begin let name = string_of_token nonterm_cident in let stype = SymbolType.explicit (string_of_token type_) |> qualify_symbol_type symbol_type_qualifier in @@ -253,8 +253,8 @@ let symbol_infos_init io symbols hmh = end in match nonterm with - | NontermProds {nonterm_type; cident=CIDENT {token_=cident}; _} - | NontermReductions {nonterm_type; cident=CIDENT {token_=cident}; _} -> begin + | NontermProds {nonterm_type; cident=CIDENT {token=cident}; _} + | NontermReductions {nonterm_type; cident=CIDENT {token=cident}; _} -> begin let symbols = insert_symbol_info name stype cident symbols in let io, symbols = match nonterm_type with | NontermTypeNonterm -> io, symbols @@ -302,7 +302,7 @@ let symbols_init io precs symbols hmh = | ProdParamFields {prod_param_symbol; _} | ProdParam {prod_param_symbol} -> begin let io, symbol_name, stype = match prod_param_symbol with - | ProdParamSymbolCident {cident=CIDENT {token_=cident}} -> begin + | ProdParamSymbolCident {cident=CIDENT {token=cident}} -> begin let symbol_name = string_of_token cident in match Symbols.info_of_name symbol_name symbols with | None -> begin @@ -329,7 +329,7 @@ let symbols_init io precs symbols hmh = io, name, stype end end - | ProdParamSymbolAlias {alias=ISTRING {token_=alias}} -> begin + | ProdParamSymbolAlias {alias=ISTRING {token=alias}} -> begin let alias_name = string_of_alias_token alias in match Symbols.info_of_alias alias_name symbols with | None -> begin @@ -432,7 +432,7 @@ let symbols_init io precs symbols hmh = match Symbols.info_of_name_hlt symbol_name symbols with Symbols.{index; _} -> index ) rhs in let prec = match prec_ref with - | PrecRefUident {uident=UIDENT {token_=uident}} -> begin + | PrecRefUident {uident=UIDENT {token=uident}} -> begin let prec_name = string_of_token uident in match Precs.prec_of_name prec_name precs with | None -> begin @@ -558,15 +558,15 @@ let symbols_init io precs symbols hmh = end in let fold_nonterm io precs symbols prods callbacks nonterm = begin let start, name, prec = match nonterm with - | Parse.NontermProds {nonterm_type; cident=CIDENT {token_=cident}; prec_ref; _} - | NontermReductions {nonterm_type; cident=CIDENT {token_=cident}; prec_ref; _} -> begin + | Parse.NontermProds {nonterm_type; cident=CIDENT {token=cident}; prec_ref; _} + | NontermReductions {nonterm_type; cident=CIDENT {token=cident}; prec_ref; _} -> begin let start = match nonterm_type with | NontermTypeNonterm -> false | NontermTypeStart -> true in let name = string_of_token cident in let prec = match prec_ref with - | PrecRefUident {uident=UIDENT {token_=uident}} -> begin + | PrecRefUident {uident=UIDENT {token=uident}} -> begin let prec_name = string_of_token uident in match Precs.prec_of_name prec_name precs with | None -> begin