From 26f0187b3e9c87cd3aa7ce49f84ae783fe75e2b4 Mon Sep 17 00:00:00 2001 From: Jason Evans Date: Mon, 16 Sep 2024 20:16:20 -0700 Subject: [PATCH] Remove long integer hack from hocc The Hemlock scanner now directly supports long integer syntax, which made this code dead. --- bootstrap/bin/hocc/Parse.hmh | 27 --------------------------- bootstrap/bin/hocc/Parse.ml | 27 --------------------------- 2 files changed, 54 deletions(-) diff --git a/bootstrap/bin/hocc/Parse.hmh b/bootstrap/bin/hocc/Parse.hmh index faf6e10e2..8fc59657f 100644 --- a/bootstrap/bin/hocc/Parse.hmh +++ b/bootstrap/bin/hocc/Parse.hmh @@ -680,33 +680,6 @@ let rec scan scanner = | Some token -> scanner, scan_token, token, [] | None -> scan scanner end - | mal :: [] -> begin - (* Try to pass e.g. 42L through as a u64 token to support OCaml syntax. *) - let u64_opt = match Hmc.Scan.Token.Rendition.Malformation.description mal with - | "Invalid numerical constant" -> begin - let source = Scan.Token.source scan_token in - Hmc.Source.Slice.to_string source - |> String.chop_suffix ~suffix:"L" - |> (fun s_opt -> - match s_opt with - | None -> None - | Some s -> Stdlib.Int64.of_string_opt s - ) - end - | _ -> None - in - match u64_opt with - | Some x -> begin - let rendition = Hmc.Scan.Token.Rendition.Constant x in - let tok = Hmc.Scan.Token.Tok_u64 { - source=Scan.Token.source scan_token; - u64=rendition - } in - let scan_token = Scan.Token.HmcToken tok in - 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] - end | mals -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), mals let hmhi scanner = diff --git a/bootstrap/bin/hocc/Parse.ml b/bootstrap/bin/hocc/Parse.ml index 43c4d24ec..a691c49d1 100644 --- a/bootstrap/bin/hocc/Parse.ml +++ b/bootstrap/bin/hocc/Parse.ml @@ -24713,33 +24713,6 @@ let rec scan scanner = | Some token -> scanner, scan_token, token, [] | None -> scan scanner end - | mal :: [] -> begin - (* Try to pass e.g. 42L through as a u64 token to support OCaml syntax. *) - let u64_opt = match Hmc.Scan.Token.Rendition.Malformation.description mal with - | "Invalid numerical constant" -> begin - let source = Scan.Token.source scan_token in - Hmc.Source.Slice.to_string source - |> String.chop_suffix ~suffix:"L" - |> (fun s_opt -> - match s_opt with - | None -> None - | Some s -> Stdlib.Int64.of_string_opt s - ) - end - | _ -> None - in - match u64_opt with - | Some x -> begin - let rendition = Hmc.Scan.Token.Rendition.Constant x in - let tok = Hmc.Scan.Token.Tok_u64 { - source=Scan.Token.source scan_token; - u64=rendition - } in - let scan_token = Scan.Token.HmcToken tok in - 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] - end | mals -> scanner, scan_token, Token.OTHER_TOKEN (OTHER_TOKEN {token=scan_token}), mals let hmhi scanner =