Files
Doug Kearns 85fc83f849 runtime(sml): Update syntax, improve special constant matching
- Match \dE\d real literal form
- Match all string escape sequences
- Add related tests

closes: #18723

Signed-off-by: Doug Kearns <dougkearns@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
2025-12-03 20:21:49 +00:00

72 lines
1.3 KiB
Standard ML

(* Integer constants *)
val _ = 0;
val _ = 42;
val _ = 0x2A;
val _ = ~42; (* single token *)
val _ = ~0x2A; (* single token *)
(* Word constants *)
val _ = 0w0;
val _ = 0w42;
val _ = 0wx2A;
val _ = ~0w42; (* nonfix ~ *)
val _ = ~0wx2A; (* nonfix ~ *)
(* Real constants *)
val _ = 0.0;
val _ = 42.42;
val _ = 42E42;
val _ = 42E~42;
val _ = 42.42E42;
val _ = 42.42E~42;
val _ = ~42.42; (* single token *)
val _ = ~42.42; (* single token *)
val _ = ~42E42; (* single token *)
val _ = ~42E~42; (* single token *)
val _ = ~42.42E42; (* single token *)
val _ = ~42.42E~42; (* single token *)
(* Character constants *)
val _ = #"a";
val _ = #"\a";
val _ = #"\b";
val _ = #"\t";
val _ = #"\n";
val _ = #"\v";
val _ = #"\f";
val _ = #"\r";
val _ = #"\"";
val _ = #"\\";
val _ = #"\^@";
val _ = #"\^A";
val _ = #"\^K";
val _ = #"\^Z";
val _ = #"\^[";
val _ = #"\^\";
val _ = #"\^]";
val _ = #"\^^";
val _ = #"\^_";
val _ = #"\000";
val _ = #"\999";
val _ = #"\u0000";
val _ = #"\uFFFF";
(* String constants *)
val _ = "";
val _ = "abc";
val _ = "...\a...\b...\t...\n...\v...\f...\r...\"...\\...";
val _ = "...\^@...\^A...\^K...\^Z...\^[...\^\...\^]...\^^...\^_...";
val _ = "\000...\999...\u0000...\uFFFF...";
val _ = "...\
\...";