summaryrefslogtreecommitdiff
path: root/tests/lexers/sml/example3.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lexers/sml/example3.txt')
-rw-r--r--tests/lexers/sml/example3.txt2141
1 files changed, 2141 insertions, 0 deletions
diff --git a/tests/lexers/sml/example3.txt b/tests/lexers/sml/example3.txt
new file mode 100644
index 00000000..e58b18d0
--- /dev/null
+++ b/tests/lexers/sml/example3.txt
@@ -0,0 +1,2141 @@
+---input---
+structure C = struct
+ val a = 12
+ fun f x = x + 5
+end
+
+(*(*(*(*(* This file is all pretty strange Standard ML *)*)*)*) (**)*)
+(* Robert J. Simmons *)
+
+(* Comments (* can be nested *) *)
+structure S = struct
+ val x = (1, 2, "three")
+end
+
+structure Sv = struct
+ (* These look good *)
+ val x = (1, 2, "three")
+ val z = #2 x
+
+ (* Although these look bad (not all the numbers are constants), *
+ * they never occur in practice, as they are equivalent to the above. *)
+ val x = {1 = 1, 3 = "three", 2 = 2}
+ val z = #
+ 2 x
+
+ val || = 12
+end
+
+signature S = sig end
+
+structure S = struct
+ val x = (1, 2, "three")
+ datatype 'a t = T of 'a
+ and u = U of v * v
+ withtype v = {left: int t, right: int t}
+ exception E1 of int and E2
+ fun 'a id (x: 'a) : 'a = x
+
+ val
+ 'a id = fn (x : 'a) => x
+end
+
+signature R = sig
+ type t
+ val x : t
+ val f : t * int -> int
+end
+structure R : R = struct
+ datatype t = T of int
+ val x : t = T 0
+ fun f (T x, i : int) : int = x + i
+ fun 'a id (x: 'a) : 'a = x
+end
+
+signature BA_Z = sig
+ val s: int
+ include S R
+end
+
+structure b______ = struct (* What (* A * strange * name *) for ) a ( struct *)
+
+val !%&$#+-/:<=>?@\~`^|* = 3
+
+type struct' = int list
+and 'a sig' = 'a list
+and ('a, 'b) end' = 'b option * 'a list
+
+structure baz = struct
+ structure Bar = struct
+ val foo = !%&$#+-/:<=>?@\~`^|*
+ end
+end
+
+infixr +!+
+fun (a +!+ b) = (op +) (a, b)
+
+open baz S R
+
+val$$$ = fn x => fn y => fn z => fn w => w
+val (foo, ++, bar, ||) = (4, baz.Bar.foo, !%&$#+-/:<=>?@\~`^|*, Bar.foo)
+val _ = $$$foo++bar||
+
+val val'ue : ' list = []
+val struct3 : (' -> ') = fn x => x
+val end_struct_' : ('a -> 'a) = fn x => x
+val x : (''a -> ''a) = fn x => x
+val x : ('''' -> '''') = fn x => x
+val x : unit = print "Weird, huh?\n"
+val w = {x=1,y=2,##= =3,4=3}
+val {##=, x, 4=a,...} = w
+val z = #4 w
+val z = # ##= w
+
+fun f x y 0 = 4
+ | f x y z = 4 + Sv.||
+
+exception Foo of int
+datatype ('0, 'b, '_, ') f'o'o = Bar | baZ12' | dsfa_fad | #@$ | Bug
+and (', ''', '''', ''''') bar =
+ Bee of unit
+ | Ben of (', ''', '''', ''''') f'o'o * int
+ | X of ''' list
+
+fun q x = raise Foo x
+and h x = raise Foo (~x)
+
+val x = 4
+and y = 5
+
+fun q 0 = 4
+ | q 1 = (case 1 of 1 => 2 | 3 => 4 | x => y)
+ | q y = case y of 1 => 2 | 3 => 4 | x => y
+
+val x = ref true
+fun q 0 = 4
+ | q 1 = if false then case 1 of 1 => 2 | 3 => 4 | x => y else 19
+ | q 2 = (while !x handle Match => !x | Fail _ => !x do () ; 2)
+ | q x = (raise Match) handle Domain => 9 | Match => 3
+
+fun p 0 = 12
+ | p 1 = 8
+ | p 2 = r false
+ | p x = r true
+and r true = 19
+ | r false = 12
+
+val _ = 123
+val _ = 0001
+val _ = ~123
+val _ = ~0001
+val _ = 0w12412
+val _ = 0w12412
+val _ = 0xfA0
+val _ = ~0xfA0
+val _ = 0wxfA0
+val _ = 1.4
+val _ = ~1.4
+val _ = 1e~2
+val _ = 1E~2
+val _ = 1e2
+val _ = 1E2
+val _ = 1.4e~2
+val _ = 1.4E~2
+val _ = 1.4e2
+val _ = 1.4E2
+
+val c = #"\000"
+val st = "foo \
+ \ bar" ^ "baz \
+ \ and \
+ \ such\n"
+
+val () = print st
+
+val _ = foo::bar::4::[++]
+
+end
+
+---tokens---
+'structure' Keyword.Reserved
+' ' Text
+'C' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'a' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'12' Literal.Number.Integer
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'f' Name.Function
+' ' Text
+'x' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'x' Name
+' ' Text
+'+' Name
+' ' Text
+'5' Literal.Number.Integer
+'\n' Text
+
+'end' Keyword.Reserved
+'\n\n' Text
+
+'(*' Comment.Multiline
+'(*' Comment.Multiline
+'(*' Comment.Multiline
+'(*' Comment.Multiline
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+'L' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'*)' Comment.Multiline
+'*)' Comment.Multiline
+'*)' Comment.Multiline
+' ' Comment.Multiline
+'(*' Comment.Multiline
+'*)' Comment.Multiline
+'*)' Comment.Multiline
+'\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'J' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'m' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n' Text
+
+'structure' Keyword.Reserved
+' ' Text
+'S' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'t' Literal.String.Double
+'h' Literal.String.Double
+'r' Literal.String.Double
+'e' Literal.String.Double
+'e' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+'\n' Text
+
+'end' Keyword.Reserved
+'\n\n' Text
+
+'structure' Keyword.Reserved
+' ' Text
+'Sv' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'g' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'t' Literal.String.Double
+'h' Literal.String.Double
+'r' Literal.String.Double
+'e' Literal.String.Double
+'e' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'z' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'#2' Name.Label
+' ' Text
+'x' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'l' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'u' Comment.Multiline
+'m' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'c' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'q' Comment.Multiline
+'u' Comment.Multiline
+'i' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'o' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'{' Punctuation
+'1' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'3' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'"' Literal.String.Double
+'t' Literal.String.Double
+'h' Literal.String.Double
+'r' Literal.String.Double
+'e' Literal.String.Double
+'e' Literal.String.Double
+'"' Literal.String.Double
+',' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+'}' Punctuation
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'z' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'#\n 2' Name.Label
+' ' Text
+'x' Name
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'||' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'12' Literal.Number.Integer
+'\n' Text
+
+'end' Keyword.Reserved
+'\n\n' Text
+
+'signature' Keyword.Reserved
+' ' Text
+'S' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'sig' Keyword.Reserved
+' ' Text
+'end' Keyword.Reserved
+'\n\n' Text
+
+'structure' Keyword.Reserved
+' ' Text
+'S' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'t' Literal.String.Double
+'h' Literal.String.Double
+'r' Literal.String.Double
+'e' Literal.String.Double
+'e' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+'\n ' Text
+'datatype' Keyword.Reserved
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'t' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'T' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+"'a" Name.Decorator
+'\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'u' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'U' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'v' Name
+' ' Text
+'*' Name
+' ' Text
+'v' Name
+'\n ' Text
+'withtype' Keyword.Reserved
+' ' Text
+'v' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'{' Punctuation
+'left' Name
+':' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'t' Name
+',' Punctuation
+' ' Text
+'right' Name
+':' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'t' Name
+'}' Punctuation
+'\n ' Text
+'' Text
+'exception' Keyword.Reserved
+' ' Text
+'E1' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name.Class
+' ' Text
+'and' Keyword.Reserved
+' ' Text
+'E2' Name.Class
+'\n ' Text
+'fun' Name.Class
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'id' Name
+' ' Text
+'(' Punctuation
+'x' Name
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+')' Punctuation
+' ' Text
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'=' Punctuation
+' ' Text
+'x' Name
+'\n\n ' Text
+'val' Keyword.Reserved
+' \n ' Text
+"'a" Name.Decorator
+' ' Text
+'id' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'x' Name
+' ' Text
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'x' Name
+'\n' Text
+
+'end' Keyword.Reserved
+'\n\n' Text
+
+'signature' Keyword.Reserved
+' ' Text
+'R' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'sig' Keyword.Reserved
+'\n ' Text
+'type' Keyword.Reserved
+' ' Text
+'t' Keyword.Type
+'\n ' Text
+'' Text
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'t' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'f' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'t' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'int' Name
+'\n' Text
+
+'end' Keyword.Reserved
+'\n' Text
+
+'structure' Keyword.Reserved
+' ' Text
+'R' Name.Namespace
+' ' Text
+':' Punctuation
+' ' Text
+'R' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n ' Text
+'datatype' Keyword.Reserved
+' ' Text
+'t' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'T' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\n ' Text
+'' Text
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'t' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'T' Name
+' ' Text
+'0' Literal.Number.Integer
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'f' Name.Function
+' ' Text
+'(' Punctuation
+'T' Name
+' ' Text
+'x' Name
+',' Punctuation
+' ' Text
+'i' Name
+' ' Text
+':' Punctuation
+' ' Text
+'int' Name
+')' Punctuation
+' ' Text
+':' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'x' Name
+' ' Text
+'+' Name
+' ' Text
+'i' Name
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'id' Name.Function
+' ' Text
+'(' Punctuation
+'x' Name
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+')' Punctuation
+' ' Text
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'=' Punctuation
+' ' Text
+'x' Name
+'\n' Text
+
+'end' Keyword.Reserved
+'\n\n' Text
+
+'signature' Keyword.Reserved
+' ' Text
+'BA_Z' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'sig' Keyword.Reserved
+' \n ' Text
+'val' Keyword.Reserved
+' ' Text
+'s' Name.Variable
+':' Punctuation
+' ' Text
+'int' Name
+'\n ' Text
+'include' Keyword.Reserved
+' ' Text
+'S' Name.Namespace
+' ' Text
+'R' Name.Namespace
+'\n' Text
+
+'' Text
+'end' Keyword.Reserved
+' \n\n' Text
+
+'structure' Keyword.Reserved
+' ' Text
+'b______' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'W' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+'*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'*' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'!%&$#+-/:<=>?@\\~`^|*' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'3' Literal.Number.Integer
+'\n\n' Text
+
+'type' Keyword.Reserved
+' ' Text
+"struct'" Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'list' Name
+'\n' Text
+
+'and' Keyword.Reserved
+' ' Text
+"'a" Name.Decorator
+' ' Text
+"sig'" Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'list' Name
+'\n' Text
+
+'and' Keyword.Reserved
+' ' Text
+'(' Punctuation
+"'a" Name.Decorator
+',' Punctuation
+' ' Text
+"'b" Name.Decorator
+')' Punctuation
+' ' Text
+"end'" Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+"'b" Name.Decorator
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'list' Name
+'\n\n' Text
+
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'baz' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n ' Text
+'structure' Keyword.Reserved
+' ' Text
+'Bar' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+' \n ' Text
+'val' Keyword.Reserved
+' ' Text
+'foo' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'!%&$#+-/:<=>?@\\~`^|*' Name
+'\n ' Text
+'end' Keyword.Reserved
+' \n' Text
+
+'end' Keyword.Reserved
+'\n\n' Text
+
+'infixr' Keyword.Reserved
+' ' Text
+'+!+' Name
+' \n' Text
+
+'fun' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'a' Name
+' ' Text
+'+!+' Name
+' ' Text
+'b' Name
+')' Punctuation
+' ' Text
+'=' Name.Function
+' ' Text
+'(' Punctuation
+'op' Keyword.Reserved
+' ' Text
+'+' Name
+')' Punctuation
+' ' Text
+'(' Punctuation
+'a' Name
+',' Punctuation
+' ' Text
+'b' Name
+')' Punctuation
+'\n\n' Text
+
+'open' Keyword.Reserved
+' ' Text
+'baz' Name.Namespace
+' ' Text
+'S' Name.Namespace
+' ' Text
+'R' Name.Namespace
+'\n\n' Text
+
+'' Text
+'val' Keyword.Reserved
+'$$$' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'y' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'z' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'w' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'w' Name
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'foo' Name
+',' Punctuation
+' ' Text
+'++' Name
+',' Punctuation
+' ' Text
+'bar' Name
+',' Punctuation
+' ' Text
+'||' Name
+')' Punctuation
+' ' Text
+'=' Name.Variable
+' ' Text
+'(' Punctuation
+'4' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'baz' Name.Namespace
+'.' Punctuation
+'Bar' Name.Namespace
+'.' Punctuation
+'foo' Name
+',' Punctuation
+' ' Text
+'!%&$#+-/:<=>?@\\~`^|*' Name
+',' Punctuation
+' ' Text
+'Bar' Name.Namespace
+'.' Punctuation
+'foo' Name
+')' Punctuation
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'$$$' Name
+'foo' Name
+'++' Name
+'bar' Name
+'||' Name
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+"val'ue" Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+"'" Name.Decorator
+' ' Text
+'list' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'[' Punctuation
+']' Punctuation
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'struct3' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+"'" Name.Decorator
+' ' Text
+'->' Punctuation
+' ' Text
+"'" Name.Decorator
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'x' Name
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+"end_struct_'" Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+"'a" Name.Decorator
+' ' Text
+'->' Punctuation
+' ' Text
+"'a" Name.Decorator
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'x' Name
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+"''a" Name.Decorator
+' ' Text
+'->' Punctuation
+' ' Text
+"''a" Name.Decorator
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'x' Name
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+"''''" Name.Decorator
+' ' Text
+'->' Punctuation
+' ' Text
+"''''" Name.Decorator
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'fn' Keyword.Reserved
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'x' Name
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'unit' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'print' Name
+' ' Text
+'"' Literal.String.Double
+'W' Literal.String.Double
+'e' Literal.String.Double
+'i' Literal.String.Double
+'r' Literal.String.Double
+'d' Literal.String.Double
+',' Literal.String.Double
+' ' Literal.String.Double
+'h' Literal.String.Double
+'u' Literal.String.Double
+'h' Literal.String.Double
+'?' Literal.String.Double
+'\\n' Literal.String.Escape
+'"' Literal.String.Double
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'w' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'{' Punctuation
+'x' Name
+'=' Punctuation
+'1' Literal.Number.Integer
+',' Punctuation
+'y' Name
+'=' Punctuation
+'2' Literal.Number.Integer
+',' Punctuation
+'##=' Name
+' ' Text
+'=' Punctuation
+'3' Literal.Number.Integer
+',' Punctuation
+'4' Literal.Number.Integer
+'=' Punctuation
+'3' Literal.Number.Integer
+'}' Punctuation
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'{' Punctuation
+'##=' Name
+',' Punctuation
+' ' Text
+'x' Name
+',' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+'=' Punctuation
+'a' Name
+',' Punctuation
+'...' Punctuation
+'}' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'w' Name
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'z' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'#4' Name.Label
+' ' Text
+'w' Name
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'z' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'# ##=' Name.Label
+' ' Text
+'w' Name
+'\n\n' Text
+
+'fun' Keyword.Reserved
+' ' Text
+'f' Name.Function
+' ' Text
+'x' Name
+' ' Text
+'y' Name
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+' \n ' Text
+'|' Punctuation
+' ' Text
+'f' Name.Function
+' ' Text
+'x' Name
+' ' Text
+'y' Name
+' ' Text
+'z' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+' ' Text
+'+' Name
+' ' Text
+'Sv' Name.Namespace
+'.' Punctuation
+'||' Name
+'\n\n' Text
+
+'exception' Keyword.Reserved
+' ' Text
+'Foo' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name.Class
+'\n' Text
+
+'datatype' Name.Class
+' ' Text
+'(' Punctuation
+"'0" Name.Decorator
+',' Punctuation
+' ' Text
+"'b" Name.Decorator
+',' Punctuation
+' ' Text
+"'_" Name.Decorator
+',' Punctuation
+' ' Text
+"'" Name.Decorator
+')' Punctuation
+' ' Text
+"f'o'o" Name
+' ' Text
+'=' Punctuation
+' ' Text
+'Bar' Name
+' ' Text
+'|' Punctuation
+' ' Text
+"baZ12'" Name.Function
+' ' Text
+'|' Punctuation
+' ' Text
+'dsfa_fad' Name.Function
+' ' Text
+'|' Punctuation
+' ' Text
+'#@$' Name.Function
+' ' Text
+'|' Punctuation
+' ' Text
+'Bug' Name.Function
+'\n' Text
+
+'and' Keyword.Reserved
+' ' Text
+'(' Punctuation
+"'" Name.Decorator
+',' Punctuation
+' ' Text
+"'''" Name.Decorator
+',' Punctuation
+' ' Text
+"''''" Name.Decorator
+',' Punctuation
+' ' Text
+"'''''" Name.Decorator
+')' Punctuation
+' ' Text
+'bar' Name.Function
+' ' Text
+'=' Punctuation
+' \n ' Text
+'Bee' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'unit' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Ben' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'(' Punctuation
+"'" Name.Decorator
+',' Punctuation
+' ' Text
+"'''" Name.Decorator
+',' Punctuation
+' ' Text
+"''''" Name.Decorator
+',' Punctuation
+' ' Text
+"'''''" Name.Decorator
+')' Punctuation
+' ' Text
+"f'o'o" Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'X' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+"'''" Name.Decorator
+' ' Text
+'list' Name
+'\n\n' Text
+
+'fun' Keyword.Reserved
+' ' Text
+'q' Name.Function
+' ' Text
+'x' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'raise' Keyword.Reserved
+' ' Text
+'Foo' Name
+' ' Text
+'x' Name
+'\n' Text
+
+'and' Keyword.Reserved
+' ' Text
+'h' Name.Function
+' ' Text
+'x' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'raise' Keyword.Reserved
+' ' Text
+'Foo' Name
+' ' Text
+'(' Punctuation
+'~' Name
+'x' Name
+')' Punctuation
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+'\n' Text
+
+'and' Keyword.Reserved
+' ' Text
+'y' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'5' Literal.Number.Integer
+'\n\n' Text
+
+'fun' Keyword.Reserved
+' ' Text
+'q' Name.Function
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+'\n ' Text
+'|' Punctuation
+' ' Text
+'q' Name.Function
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'case' Keyword.Reserved
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'=>' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+' ' Text
+'|' Name
+' ' Text
+'3' Literal.Number.Integer
+' ' Text
+'=>' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+' ' Text
+'|' Name
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'y' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'q' Name.Function
+' ' Text
+'y' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'case' Keyword.Reserved
+' ' Text
+'y' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'=>' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+' ' Text
+'|' Name
+' ' Text
+'3' Literal.Number.Integer
+' ' Text
+'=>' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+' ' Text
+'|' Name
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'y' Name
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'x' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'ref' Name
+' ' Text
+'true' Name
+'\n' Text
+
+'fun' Keyword.Reserved
+' ' Text
+'q' Name.Function
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+'\n ' Text
+'|' Punctuation
+' ' Text
+'q' Name.Function
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'if' Keyword.Reserved
+' ' Text
+'false' Name
+' ' Text
+'then' Keyword.Reserved
+' ' Text
+'case' Keyword.Reserved
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'=>' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+' ' Text
+'|' Name
+' ' Text
+'3' Literal.Number.Integer
+' ' Text
+'=>' Punctuation
+' ' Text
+'4' Literal.Number.Integer
+' ' Text
+'|' Name
+' ' Text
+'x' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'y' Name
+' ' Text
+'else' Keyword.Reserved
+' ' Text
+'19' Literal.Number.Integer
+'\n ' Text
+'|' Punctuation
+' ' Text
+'q' Name.Function
+' ' Text
+'2' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'while' Keyword.Reserved
+' ' Text
+'!' Name
+'x' Name
+' ' Text
+'handle' Keyword.Reserved
+' ' Text
+'Match' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'!' Name
+'x' Name
+' ' Text
+'|' Name
+' ' Text
+'Fail' Name
+' ' Text
+'_' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'!' Name
+'x' Name
+' ' Text
+'do' Keyword.Reserved
+' ' Text
+'(' Punctuation
+')' Punctuation
+' ' Text
+';' Punctuation
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'q' Name.Function
+' ' Text
+'x' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'raise' Keyword.Reserved
+' ' Text
+'Match' Name
+')' Punctuation
+' ' Text
+'handle' Keyword.Reserved
+' ' Text
+'Domain' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'9' Literal.Number.Integer
+' ' Text
+'|' Name
+' ' Text
+'Match' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'3' Literal.Number.Integer
+'\n\n' Text
+
+'fun' Keyword.Reserved
+' ' Text
+'p' Name.Function
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'12' Literal.Number.Integer
+'\n ' Text
+'|' Punctuation
+' ' Text
+'p' Name.Function
+' ' Text
+'1' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'8' Literal.Number.Integer
+'\n ' Text
+'|' Punctuation
+' ' Text
+'p' Name.Function
+' ' Text
+'2' Literal.Number.Integer
+' ' Text
+'=' Punctuation
+' ' Text
+'r' Name
+' ' Text
+'false' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'p' Name.Function
+' ' Text
+'x' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'r' Name
+' ' Text
+'true' Name
+'\n' Text
+
+'and' Keyword.Reserved
+' ' Text
+'r' Name.Function
+' ' Text
+'true' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'19' Literal.Number.Integer
+'\n ' Text
+'|' Punctuation
+' ' Text
+'r' Name.Function
+' ' Text
+'false' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'12' Literal.Number.Integer
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'123' Literal.Number.Integer
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'0001' Literal.Number.Integer
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'~123' Literal.Number.Integer
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'~0001' Literal.Number.Integer
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'0w12412' Literal.Number.Integer
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'0w12412' Literal.Number.Integer
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'0xfA0' Literal.Number.Hex
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'~0xfA0' Literal.Number.Hex
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'0wxfA0' Literal.Number.Hex
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1.4' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'~1.4' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1e~2' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1E~2' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1e2' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1E2' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1.4e~2' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1.4E~2' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1.4e2' Literal.Number.Float
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'1.4E2' Literal.Number.Float
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'c' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'#"' Literal.String.Char
+'\\000' Literal.String.Escape
+'"' Literal.String.Char
+'\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'st' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'"' Literal.String.Double
+'f' Literal.String.Double
+'o' Literal.String.Double
+'o' Literal.String.Double
+' ' Literal.String.Double
+'\\\n \t \\' Literal.String.Interpol
+' ' Literal.String.Double
+'b' Literal.String.Double
+'a' Literal.String.Double
+'r' Literal.String.Double
+'"' Literal.String.Double
+' ' Text
+'^' Name
+' ' Text
+'"' Literal.String.Double
+'b' Literal.String.Double
+'a' Literal.String.Double
+'z' Literal.String.Double
+' ' Literal.String.Double
+'\\ \n \t \\' Literal.String.Interpol
+' ' Literal.String.Double
+'a' Literal.String.Double
+'n' Literal.String.Double
+'d' Literal.String.Double
+' ' Literal.String.Double
+'\\ \n \t \\' Literal.String.Interpol
+' ' Literal.String.Double
+'s' Literal.String.Double
+'u' Literal.String.Double
+'c' Literal.String.Double
+'h' Literal.String.Double
+'\\n' Literal.String.Escape
+'"' Literal.String.Double
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'(' Punctuation
+')' Punctuation
+' ' Text
+'=' Name.Variable
+' ' Text
+'print' Name
+' ' Text
+'st' Name
+'\n\n' Text
+
+'val' Keyword.Reserved
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'foo' Name
+'::' Name
+'bar' Name
+'::' Name
+'4' Literal.Number.Integer
+'::' Name
+'[' Punctuation
+'++' Name
+']' Punctuation
+'\n\n' Text
+
+'end' Keyword.Reserved
+'\n' Text