From 396ebf0c76153e5e1e9dc77371bdd02b4d3d85d1 Mon Sep 17 00:00:00 2001 From: Vladimir Azarov Date: Mon, 4 Aug 2025 15:12:55 +0200 Subject: Flattening of initializers --- tokenizer.fun | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'tokenizer.fun') diff --git a/tokenizer.fun b/tokenizer.fun index cce6bea..80200d5 100644 --- a/tokenizer.fun +++ b/tokenizer.fun @@ -253,6 +253,9 @@ struct fun clKw tk (ppc, NONE) = (ppc, SOME tk) | clKw _ _ = raise Unreachable + + val res = ST.getId symtab "0" + val () = if res <> 0 then raise Unreachable else () in app (fn (tk, repr) => if ?repr = ppcPrefix then @@ -576,6 +579,24 @@ struct | _ => (c, stream) end + fun strlit2charList (s: string) = + let + val s = String.substring (s, 1, size s - 2) + val stream = S.createFromString s + + fun collect acc stream = + let + val (c, stream) = getMaybeBackslashed stream + in + case c of + Reg #"\000" => rev $ #"\000" :: acc + | Reg c | EscSeqed c => collect (c :: acc) stream + | NoChar => raise Unreachable + end + in + collect [] stream + end + fun parseCharConst symtab stream = let val startOff = S.getOffset stream - 1 -- cgit v1.2.3