summaryrefslogtreecommitdiff
path: root/tests/lexers/sml
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2021-01-18 21:24:00 +0100
committerGeorg Brandl <georg@python.org>2021-01-18 22:08:36 +0100
commit2a3d3a7d5b9c60dedf6638d876161d9563faebcf (patch)
tree809c0b4a686db98f5954afa1944404cd9652c6b2 /tests/lexers/sml
parentf0445be718da83541ea3401aad882f3937147263 (diff)
downloadpygments-git-examplefiles.tar.gz
Move test_examplefiles to new tests/lexers scheme.examplefiles
Diffstat (limited to 'tests/lexers/sml')
-rw-r--r--tests/lexers/sml/example.txt7265
-rw-r--r--tests/lexers/sml/example2.txt15617
-rw-r--r--tests/lexers/sml/example3.txt2141
3 files changed, 25023 insertions, 0 deletions
diff --git a/tests/lexers/sml/example.txt b/tests/lexers/sml/example.txt
new file mode 100644
index 00000000..f2b6f7e7
--- /dev/null
+++ b/tests/lexers/sml/example.txt
@@ -0,0 +1,7265 @@
+---input---
+(* Internal Syntax *)
+(* Author: Frank Pfenning, Carsten Schuermann *)
+(* Modified: Roberto Virga *)
+
+signature INTSYN =
+sig
+
+ type cid = int (* Constant identifier *)
+ type mid = int (* Structure identifier *)
+ type csid = int (* CS module identifier *)
+
+
+ type FgnExp = exn (* foreign expression representation *)
+ exception UnexpectedFgnExp of FgnExp
+ (* raised by a constraint solver
+ if passed an incorrect arg *)
+ type FgnCnstr = exn (* foreign constraint representation *)
+ exception UnexpectedFgnCnstr of FgnCnstr
+ (* raised by a constraint solver
+ if passed an incorrect arg *)
+
+ (* Contexts *)
+
+ datatype 'a Ctx = (* Contexts *)
+ Null (* G ::= . *)
+ | Decl of 'a Ctx * 'a (* | G, D *)
+
+ val ctxPop : 'a Ctx -> 'a Ctx
+ val ctxLookup: 'a Ctx * int -> 'a
+ val ctxLength: 'a Ctx -> int
+
+ datatype Depend = (* Dependency information *)
+ No (* P ::= No *)
+ | Maybe (* | Maybe *)
+ | Meta (* | Meta *)
+
+ (* expressions *)
+
+ datatype Uni = (* Universes: *)
+ Kind (* L ::= Kind *)
+ | Type (* | Type *)
+
+ datatype Exp = (* Expressions: *)
+ Uni of Uni (* U ::= L *)
+ | Pi of (Dec * Depend) * Exp (* | Pi (D, P). V *)
+ | Root of Head * Spine (* | H @ S *)
+ | Redex of Exp * Spine (* | U @ S *)
+ | Lam of Dec * Exp (* | lam D. U *)
+ | EVar of Exp option ref * Dec Ctx * Exp * (Cnstr ref) list ref
+ (* | X<I> : G|-V, Cnstr *)
+ | EClo of Exp * Sub (* | U[s] *)
+ | AVar of Exp option ref (* | A<I> *)
+
+ | FgnExp of csid * FgnExp (* | (foreign expression) *)
+
+ | NVar of int (* | n (linear,
+ fully applied variable
+ used in indexing *)
+
+ and Head = (* Head: *)
+ BVar of int (* H ::= k *)
+ | Const of cid (* | c *)
+ | Proj of Block * int (* | #k(b) *)
+ | Skonst of cid (* | c# *)
+ | Def of cid (* | d (strict) *)
+ | NSDef of cid (* | d (non strict) *)
+ | FVar of string * Exp * Sub (* | F[s] *)
+ | FgnConst of csid * ConDec (* | (foreign constant) *)
+
+ and Spine = (* Spines: *)
+ Nil (* S ::= Nil *)
+ | App of Exp * Spine (* | U ; S *)
+ | SClo of Spine * Sub (* | S[s] *)
+
+ and Sub = (* Explicit substitutions: *)
+ Shift of int (* s ::= ^n *)
+ | Dot of Front * Sub (* | Ft.s *)
+
+ and Front = (* Fronts: *)
+ Idx of int (* Ft ::= k *)
+ | Exp of Exp (* | U *)
+ | Axp of Exp (* | U *)
+ | Block of Block (* | _x *)
+ | Undef (* | _ *)
+
+ and Dec = (* Declarations: *)
+ Dec of string option * Exp (* D ::= x:V *)
+ | BDec of string option * (cid * Sub) (* | v:l[s] *)
+ | ADec of string option * int (* | v[^-d] *)
+ | NDec of string option
+
+ and Block = (* Blocks: *)
+ Bidx of int (* b ::= v *)
+ | LVar of Block option ref * Sub * (cid * Sub)
+ (* | L(l[^k],t) *)
+ | Inst of Exp list (* | U1, ..., Un *)
+ (* It would be better to consider having projections count
+ like substitutions, then we could have Inst of Sub here,
+ which would simplify a lot of things.
+
+ I suggest however to wait until the next big overhaul
+ of the system -- cs *)
+
+
+(* | BClo of Block * Sub (* | b[s] *) *)
+
+ (* constraints *)
+
+ and Cnstr = (* Constraint: *)
+ Solved (* Cnstr ::= solved *)
+ | Eqn of Dec Ctx * Exp * Exp (* | G|-(U1 == U2) *)
+ | FgnCnstr of csid * FgnCnstr (* | (foreign) *)
+
+ and Status = (* Status of a constant: *)
+ Normal (* inert *)
+ | Constraint of csid * (Dec Ctx * Spine * int -> Exp option)
+ (* acts as constraint *)
+ | Foreign of csid * (Spine -> Exp) (* is converted to foreign *)
+
+ and FgnUnify = (* Result of foreign unify *)
+ Succeed of FgnUnifyResidual list
+ (* succeed with a list of residual operations *)
+ | Fail
+
+ and FgnUnifyResidual =
+ Assign of Dec Ctx * Exp * Exp * Sub
+ (* perform the assignment G |- X = U [ss] *)
+ | Delay of Exp * Cnstr ref
+ (* delay cnstr, associating it with all the rigid EVars in U *)
+
+ (* Global signature *)
+
+ and ConDec = (* Constant declaration *)
+ ConDec of string * mid option * int * Status
+ (* a : K : kind or *)
+ * Exp * Uni (* c : A : type *)
+ | ConDef of string * mid option * int (* a = A : K : kind or *)
+ * Exp * Exp * Uni (* d = M : A : type *)
+ * Ancestor (* Ancestor info for d or a *)
+ | AbbrevDef of string * mid option * int
+ (* a = A : K : kind or *)
+ * Exp * Exp * Uni (* d = M : A : type *)
+ | BlockDec of string * mid option (* %block l : SOME G1 PI G2 *)
+ * Dec Ctx * Dec list
+ | BlockDef of string * mid option * cid list
+ (* %block l = (l1 | ... | ln) *)
+ | SkoDec of string * mid option * int (* sa: K : kind or *)
+ * Exp * Uni (* sc: A : type *)
+
+ and Ancestor = (* Ancestor of d or a *)
+ Anc of cid option * int * cid option (* head(expand(d)), height, head(expand[height](d)) *)
+ (* NONE means expands to {x:A}B *)
+
+ datatype StrDec = (* Structure declaration *)
+ StrDec of string * mid option
+
+ (* Form of constant declaration *)
+ datatype ConDecForm =
+ FromCS (* from constraint domain *)
+ | Ordinary (* ordinary declaration *)
+ | Clause (* %clause declaration *)
+
+ (* Type abbreviations *)
+ type dctx = Dec Ctx (* G = . | G,D *)
+ type eclo = Exp * Sub (* Us = U[s] *)
+ type bclo = Block * Sub (* Bs = B[s] *)
+ type cnstr = Cnstr ref
+
+ exception Error of string (* raised if out of space *)
+
+ (* standard operations on foreign expressions *)
+ structure FgnExpStd : sig
+ (* convert to internal syntax *)
+ structure ToInternal : FGN_OPN where type arg = unit
+ where type result = Exp
+
+ (* apply function to subterms *)
+ structure Map : FGN_OPN where type arg = Exp -> Exp
+ where type result = Exp
+
+ (* apply function to subterms, for effect *)
+ structure App : FGN_OPN where type arg = Exp -> unit
+ where type result = unit
+
+ (* test for equality *)
+ structure EqualTo : FGN_OPN where type arg = Exp
+ where type result = bool
+
+ (* unify with another term *)
+ structure UnifyWith : FGN_OPN where type arg = Dec Ctx * Exp
+ where type result = FgnUnify
+
+ (* fold a function over the subterms *)
+ val fold : (csid * FgnExp) -> (Exp * 'a -> 'a) -> 'a -> 'a
+ end
+
+ (* standard operations on foreign constraints *)
+ structure FgnCnstrStd : sig
+ (* convert to internal syntax *)
+ structure ToInternal : FGN_OPN where type arg = unit
+ where type result = (Dec Ctx * Exp) list
+
+ (* awake *)
+ structure Awake : FGN_OPN where type arg = unit
+ where type result = bool
+
+ (* simplify *)
+ structure Simplify : FGN_OPN where type arg = unit
+ where type result = bool
+ end
+
+ val conDecName : ConDec -> string
+ val conDecParent : ConDec -> mid option
+ val conDecImp : ConDec -> int
+ val conDecStatus : ConDec -> Status
+ val conDecType : ConDec -> Exp
+ val conDecBlock : ConDec -> dctx * Dec list
+ val conDecUni : ConDec -> Uni
+
+ val strDecName : StrDec -> string
+ val strDecParent : StrDec -> mid option
+
+ val sgnReset : unit -> unit
+ val sgnSize : unit -> cid * mid
+
+ val sgnAdd : ConDec -> cid
+ val sgnLookup: cid -> ConDec
+ val sgnApp : (cid -> unit) -> unit
+
+ val sgnStructAdd : StrDec -> mid
+ val sgnStructLookup : mid -> StrDec
+
+ val constType : cid -> Exp (* type of c or d *)
+ val constDef : cid -> Exp (* definition of d *)
+ val constImp : cid -> int
+ val constStatus : cid -> Status
+ val constUni : cid -> Uni
+ val constBlock : cid -> dctx * Dec list
+
+ (* Declaration Contexts *)
+
+ val ctxDec : dctx * int -> Dec (* get variable declaration *)
+ val blockDec : dctx * Block * int -> Dec
+
+ (* Explicit substitutions *)
+
+ val id : Sub (* id *)
+ val shift : Sub (* ^ *)
+ val invShift : Sub (* ^-1 *)
+
+ val bvarSub : int * Sub -> Front (* k[s] *)
+ val frontSub : Front * Sub -> Front (* H[s] *)
+ val decSub : Dec * Sub -> Dec (* x:V[s] *)
+ val blockSub : Block * Sub -> Block (* B[s] *)
+
+ val comp : Sub * Sub -> Sub (* s o s' *)
+ val dot1 : Sub -> Sub (* 1 . (s o ^) *)
+ val invDot1 : Sub -> Sub (* (^ o s) o ^-1) *)
+
+ (* EVar related functions *)
+
+ val newEVar : dctx * Exp -> Exp (* creates X:G|-V, [] *)
+ val newAVar : unit -> Exp (* creates A (bare) *)
+ val newTypeVar : dctx -> Exp (* creates X:G|-type, [] *)
+ val newLVar : Sub * (cid * Sub) -> Block
+ (* creates B:(l[^k],t) *)
+
+ (* Definition related functions *)
+ val headOpt : Exp -> Head option
+ val ancestor : Exp -> Ancestor
+ val defAncestor : cid -> Ancestor
+
+ (* Type related functions *)
+
+ (* Not expanding type definitions *)
+ val targetHeadOpt : Exp -> Head option (* target type family or NONE *)
+ val targetHead : Exp -> Head (* target type family *)
+
+ (* Expanding type definitions *)
+ val targetFamOpt : Exp -> cid option (* target type family or NONE *)
+ val targetFam : Exp -> cid (* target type family *)
+
+ (* Used in Flit *)
+ val rename : cid * string -> unit
+
+end; (* signature INTSYN *)
+
+---tokens---
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'y' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'x' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' \n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+'f' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'c' Comment.Multiline
+'h' Comment.Multiline
+'u' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+'o' Comment.Multiline
+'d' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n' Text
+
+'signature' Keyword.Reserved
+' ' Text
+'INTSYN' Name.Namespace
+' ' Text
+'=' Punctuation
+'\n' Text
+
+'sig' Keyword.Reserved
+'\n\n ' Text
+'type' Keyword.Reserved
+' ' Text
+'cid' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' 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
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'mid' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'csid' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'S' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'o' Comment.Multiline
+'d' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'FgnExp' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'exn' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'exception' Keyword.Reserved
+' ' Text
+'UnexpectedFgnExp' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'FgnExp' Name.Class
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'\n' Comment.Multiline
+
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'type' Name.Class
+' ' Text
+'FgnCnstr' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'exn' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'exception' Name.Class
+' ' Text
+'UnexpectedFgnCnstr' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'FgnCnstr' Name.Class
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'datatype' Name.Class
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Name
+' ' Text
+'=' Punctuation
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'x' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Null' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Name
+' ' Text
+'Decl' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+"'a" Name.Decorator
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n \n ' Text
+'val' Keyword.Reserved
+' ' Text
+'ctxPop' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Name
+' ' Text
+'->' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'ctxLookup' Name.Variable
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'->' Punctuation
+' ' Text
+"'a" Name.Decorator
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'ctxLength' Name.Variable
+':' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'int' Name
+'\n\n ' Text
+'datatype' Keyword.Reserved
+' ' Text
+'Depend' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'No' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Maybe' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+'a' Comment.Multiline
+'y' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Meta' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'' Text
+'datatype' Keyword.Reserved
+' ' Text
+'Uni' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'e' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Kind' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Type' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'' Text
+'datatype' Keyword.Reserved
+' ' Text
+'Exp' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Uni' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Uni' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Pi' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'Dec' Name
+' ' Text
+'*' Name
+' ' Text
+'Depend' Name
+')' Punctuation
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+'i' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'D' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+')' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Root' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Head' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'H' Comment.Multiline
+' ' Comment.Multiline
+'@' Comment.Multiline
+' ' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Redex' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+'@' Comment.Multiline
+' ' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Lam' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Dec' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'EVar' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'option' Name
+' ' Text
+'ref' Name
+' ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'Cnstr' Name
+' ' Text
+'ref' Name
+')' Punctuation
+' ' Text
+'list' Name
+' ' Text
+'ref' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+'<' Comment.Multiline
+'I' Comment.Multiline
+'>' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'EClo' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'AVar' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'option' Name
+' ' Text
+'ref' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'<' Comment.Multiline
+'I' Comment.Multiline
+'>' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'|' Punctuation
+' ' Text
+'FgnExp' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'FgnExp' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'|' Punctuation
+' ' Text
+'NVar' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'p' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Head' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'H' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'BVar' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'H' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Const' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Proj' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Block' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'#' Comment.Multiline
+'k' Comment.Multiline
+'(' Comment.Multiline
+'b' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Skonst' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'#' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Def' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'NSDef' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'FVar' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'FgnConst' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'ConDec' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' 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
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Spine' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'p' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Nil' Name.Class
+'\t\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'App' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+';' Comment.Multiline
+' ' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'SClo' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Spine' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Sub' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Shift' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Dot' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Front' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+'.' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Front' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'r' Comment.Multiline
+'o' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Idx' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Exp' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Axp' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Block' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Block' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+'x' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Undef' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Dec' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Dec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'BDec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'cid' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+')' Punctuation
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+':' Comment.Multiline
+'l' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'ADec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'[' Comment.Multiline
+'^' Comment.Multiline
+'-' Comment.Multiline
+'d' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'NDec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'option' Name
+' \n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Block' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Bidx' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'LVar' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Block' Name
+' ' Text
+'option' Name
+' ' Text
+'ref' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'cid' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'[' Comment.Multiline
+'^' Comment.Multiline
+'k' Comment.Multiline
+']' Comment.Multiline
+',' Comment.Multiline
+'t' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Inst' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'list' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'1' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' 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
+'I' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'v' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'j' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'k' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+'s' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'g' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'w' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'y' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'C' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Cnstr' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Solved' Name.Class
+' \t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Eqn' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+'(' Comment.Multiline
+'U' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'2' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'FgnCnstr' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'FgnCnstr' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Status' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'a' 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
+':' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Normal' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Constraint' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'option' Name
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Foreign' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'Spine' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+')' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'FgnUnify' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Succeed' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'FgnUnifyResidual' Name
+' ' Text
+'list' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'u' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Fail' Name.Class
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'FgnUnifyResidual' Keyword.Type
+' ' Text
+'=' Punctuation
+'\n ' Text
+'Assign' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Delay' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Cnstr' Name
+' ' Text
+'ref' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' 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
+'r' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'b' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'ConDec' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t ' Text
+'(*' 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
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'ConDec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'*' Name
+' ' Text
+'Status' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'ConDef' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Ancestor' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'AbbrevDef' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'BlockDec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'%' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'O' Comment.Multiline
+'M' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+'I' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'list' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'BlockDef' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'cid' Name
+' ' Text
+'list' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'%' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'n' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'SkoDec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'a' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'c' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Ancestor' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Anc' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'*' Name
+' ' Text
+'cid' Name
+' ' Text
+'option' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+'(' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'(' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'t' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+'(' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'[' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'t' Comment.Multiline
+']' Comment.Multiline
+'(' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'{' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'A' Comment.Multiline
+'}' Comment.Multiline
+'B' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'' Text
+'datatype' Keyword.Reserved
+' ' Text
+'StrDec' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'StrDec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' 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
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'datatype' Keyword.Reserved
+' ' Text
+'ConDecForm' Keyword.Type
+' ' Text
+'=' Punctuation
+'\n ' Text
+'FromCS' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Ordinary' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'d' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Clause' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'%' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'b' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'dctx' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'eclo' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' \t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'bclo' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Block' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' \t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'cnstr' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Cnstr' Name
+' ' Text
+'ref' Name
+'\n\n ' Text
+'' Text
+'exception' Keyword.Reserved
+' ' Text
+'Error' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name.Class
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' 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
+'o' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Name.Class
+' ' Text
+'FgnExpStd' Name.Class
+' ' Text
+':' Name.Class
+' ' Text
+'sig' Name.Class
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'y' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'x' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Name.Class
+' ' Text
+'ToInternal' Name.Class
+' ' Text
+':' Name.Class
+' ' Text
+'FGN_OPN' Name.Class
+' ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'arg' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'unit' Name.Class
+'\n ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'result' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'Exp' Name.Class
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'p' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Name.Class
+' ' Text
+'Map' Name.Class
+' ' Text
+':' Name.Class
+' ' Text
+'FGN_OPN' Name.Class
+' ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'arg' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'Exp' Name.Class
+' ' Text
+'->' Name.Class
+' ' Text
+'Exp' Name.Class
+'\n\t\t\t ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'result' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'Exp' Name.Class
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'p' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'s' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'f' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Name.Class
+' ' Text
+'App' Name.Class
+' ' Text
+':' Name.Class
+' ' Text
+'FGN_OPN' Name.Class
+' ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'arg' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'Exp' Name.Class
+' ' Text
+'->' Name.Class
+' ' Text
+'unit' Name.Class
+'\n\t\t\t ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'result' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'unit' Name.Class
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'q' Comment.Multiline
+'u' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Name.Class
+' ' Text
+'EqualTo' Name.Class
+' ' Text
+':' Name.Class
+' ' Text
+'FGN_OPN' Name.Class
+' ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'arg' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'Exp' Name.Class
+'\n ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'result' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'bool' Name.Class
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Name.Class
+' ' Text
+'UnifyWith' Name.Class
+' ' Text
+':' Name.Class
+' ' Text
+'FGN_OPN' Name.Class
+' ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'arg' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'Dec' Name.Class
+' ' Text
+'Ctx' Name.Class
+' ' Text
+'*' Name.Class
+' ' Text
+'Exp' Name.Class
+'\n ' Text
+'where' Name.Class
+' ' Text
+'type' Name.Class
+' ' Text
+'result' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'FgnUnify' Name.Class
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Name.Class
+' ' Text
+'fold' Name.Class
+' ' Text
+':' Name.Class
+' ' Text
+'(' Punctuation
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'FgnExp' Name
+')' Punctuation
+' ' Text
+'->' Punctuation
+' ' Text
+'(' Punctuation
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'->' Punctuation
+' ' Text
+"'a" Name.Decorator
+')' Punctuation
+' ' Text
+'->' Punctuation
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'->' Punctuation
+' ' Text
+"'a" Name.Decorator
+'\n ' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'(*' 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
+'o' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Keyword.Reserved
+' ' Text
+'FgnCnstrStd' Name.Namespace
+' ' Text
+':' Punctuation
+' ' Text
+'sig' Keyword.Reserved
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'y' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'x' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'structure' Keyword.Reserved
+' ' Text
+'ToInternal' Name.Namespace
+' ' Text
+':' Punctuation
+' ' Text
+'FGN_OPN' Name
+' ' Text
+'where' Keyword.Reserved
+' ' Text
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+'\n ' Text
+'' Text
+'where' Keyword.Reserved
+' ' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+')' Punctuation
+' ' Text
+'list' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'w' Comment.Multiline
+'a' Comment.Multiline
+'k' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'Awake' Name.Namespace
+' ' Text
+':' Punctuation
+' ' Text
+'FGN_OPN' Name
+' ' Text
+'where' Keyword.Reserved
+' ' Text
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+'\n ' Text
+'' Text
+'where' Keyword.Reserved
+' ' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'bool' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'Simplify' Name.Namespace
+' ' Text
+':' Punctuation
+' ' Text
+'FGN_OPN' Name
+' ' Text
+'where' Keyword.Reserved
+' ' Text
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+'\n ' Text
+'' Text
+'where' Keyword.Reserved
+' ' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'bool' Name
+'\n ' Text
+'' Text
+'end' Keyword.Reserved
+'\n \n ' Text
+'val' Keyword.Reserved
+' ' Text
+'conDecName' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'string' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'conDecParent' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'conDecImp' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'int' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'conDecStatus' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Status' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'conDecType' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'conDecBlock' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'dctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'list' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'conDecUni' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Uni' Name
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'strDecName' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'StrDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'string' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'strDecParent' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'StrDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnReset' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'unit' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'unit' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnSize' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'unit' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnAdd' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'cid' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnLookup' Name.Variable
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'ConDec' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnApp' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'unit' Name
+')' Punctuation
+' ' Text
+'->' Punctuation
+' ' Text
+'unit' Name
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnStructAdd' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'StrDec' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'mid' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnStructLookup' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'mid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'StrDec' Name
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'constType' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'constDef' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'constImp' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'int' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'constStatus' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Status' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'constUni' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Uni' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'constBlock' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'dctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'list' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'ctxDec' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'dctx' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Dec' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'blockDec' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'dctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Block' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Dec' Name
+' \n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'id' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Sub' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'shift' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Sub' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'invShift' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Sub' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'-' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'bvarSub' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Front' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'frontSub' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Front' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Front' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'H' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'decSub' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Dec' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Dec' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'V' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'blockSub' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Block' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Block' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'comp' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Sub' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Sub' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'dot1' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Sub' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'invDot1' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Sub' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'^' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'-' Comment.Multiline
+'1' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'newEVar' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'dctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+':' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' \n ' Text
+'val' Keyword.Reserved
+' ' Text
+'newAVar' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'unit' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+'\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'b' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' \n ' Text
+'val' Keyword.Reserved
+' ' Text
+'newTypeVar' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'dctx' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+':' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'newLVar' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Sub' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'cid' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+')' Punctuation
+' ' Text
+'->' Punctuation
+' ' Text
+'Block' Name
+'\t\n\t\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+':' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'[' Comment.Multiline
+'^' Comment.Multiline
+'k' Comment.Multiline
+']' Comment.Multiline
+',' Comment.Multiline
+'t' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' \n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'headOpt' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Head' Name
+' ' Text
+'option' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'ancestor' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Ancestor' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'defAncestor' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Ancestor' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'targetHeadOpt' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Head' Name
+' ' Text
+'option' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'targetHead' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Head' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'targetFamOpt' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'option' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'targetFam' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'rename' Name.Variable
+' ' Text
+':' Punctuation
+' ' Text
+'cid' Name
+' ' Text
+'*' Name
+' ' Text
+'string' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'unit' Name
+'\n\n' Text
+
+'end' Keyword.Reserved
+';' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'N' Comment.Multiline
+'T' Comment.Multiline
+'S' Comment.Multiline
+'Y' Comment.Multiline
+'N' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n' Text
diff --git a/tests/lexers/sml/example2.txt b/tests/lexers/sml/example2.txt
new file mode 100644
index 00000000..6a93cc55
--- /dev/null
+++ b/tests/lexers/sml/example2.txt
@@ -0,0 +1,15617 @@
+---input---
+(* Internal Syntax *)
+(* Author: Frank Pfenning, Carsten Schuermann *)
+(* Modified: Roberto Virga *)
+
+functor IntSyn (structure Global : GLOBAL) :> INTSYN =
+struct
+
+ type cid = int (* Constant identifier *)
+ type name = string (* Variable name *)
+ type mid = int (* Structure identifier *)
+ type csid = int (* CS module identifier *)
+
+
+ (* Contexts *)
+ datatype 'a Ctx = (* Contexts *)
+ Null (* G ::= . *)
+ | Decl of 'a Ctx * 'a (* | G, D *)
+
+ (* ctxPop (G) => G'
+ Invariant: G = G',D
+ *)
+ fun ctxPop (Decl (G, D)) = G
+
+ exception Error of string (* raised if out of space *)
+ (* ctxLookup (G, k) = D, kth declaration in G from right to left
+ Invariant: 1 <= k <= |G|, where |G| is length of G
+ *)
+
+ fun ctxLookup (Decl (G', D), 1) = D
+ | ctxLookup (Decl (G', _), k') = ctxLookup (G', k'-1)
+(* | ctxLookup (Null, k') = (print ("Looking up k' = " ^ Int.toString k' ^ "\n"); raise Error "Out of Bounce\n")*)
+ (* ctxLookup (Null, k') should not occur by invariant *)
+
+ (* ctxLength G = |G|, the number of declarations in G *)
+ fun ctxLength G =
+ let
+ fun ctxLength' (Null, n) = n
+ | ctxLength' (Decl(G, _), n)= ctxLength' (G, n+1)
+ in
+ ctxLength' (G, 0)
+ end
+
+ type FgnExp = exn (* foreign expression representation *)
+ exception UnexpectedFgnExp of FgnExp
+ (* raised by a constraint solver
+ if passed an incorrect arg *)
+
+ type FgnCnstr = exn (* foreign unification constraint
+ representation *)
+ exception UnexpectedFgnCnstr of FgnCnstr
+ (* raised by a constraint solver
+ if passed an incorrect arg *)
+
+ datatype Depend = (* Dependency information *)
+ No (* P ::= No *)
+ | Maybe (* | Maybe *)
+ | Meta (* | Meta *)
+
+ (* Expressions *)
+
+ datatype Uni = (* Universes: *)
+ Kind (* L ::= Kind *)
+ | Type (* | Type *)
+
+ datatype Exp = (* Expressions: *)
+ Uni of Uni (* U ::= L *)
+ | Pi of (Dec * Depend) * Exp (* | bPi (D, P). V *)
+ | Root of Head * Spine (* | C @ S *)
+ | Redex of Exp * Spine (* | U @ S *)
+ | Lam of Dec * Exp (* | lam D. U *)
+ | EVar of Exp option ref * Dec Ctx * Exp * (Cnstr ref) list ref
+ (* | X<I> : G|-V, Cnstr *)
+
+ | EClo of Exp * Sub (* | U[s] *)
+ | AVar of Exp option ref (* | A<I> *)
+ | NVar of int (* | n (linear, fully applied) *)
+ (* grafting variable *)
+
+ | FgnExp of csid * FgnExp
+ (* | (foreign expression) *)
+
+ and Head = (* Heads: *)
+ BVar of int (* H ::= k *)
+ | Const of cid (* | c *)
+ | Proj of Block * int (* | #k(b) *)
+ | Skonst of cid (* | c# *)
+ | Def of cid (* | d *)
+ | NSDef of cid (* | d (non strict) *)
+ | FVar of name * Exp * Sub (* | F[s] *)
+ | FgnConst of csid * ConDec (* | (foreign constant) *)
+
+ and Spine = (* Spines: *)
+ Nil (* S ::= Nil *)
+ | App of Exp * Spine (* | U ; S *)
+ | SClo of Spine * Sub (* | S[s] *)
+
+ and Sub = (* Explicit substitutions: *)
+ Shift of int (* s ::= ^n *)
+ | Dot of Front * Sub (* | Ft.s *)
+
+ and Front = (* Fronts: *)
+ Idx of int (* Ft ::= k *)
+ | Exp of Exp (* | U *)
+ | Axp of Exp (* | U (assignable) *)
+ | Block of Block (* | _x *)
+ | Undef (* | _ *)
+
+ and Dec = (* Declarations: *)
+ Dec of name option * Exp (* D ::= x:V *)
+ | BDec of name option * (cid * Sub) (* | v:l[s] *)
+ | ADec of name option * int (* | v[^-d] *)
+ | NDec of name option
+
+ and Block = (* Blocks: *)
+ Bidx of int (* b ::= v *)
+ | LVar of Block option ref * Sub * (cid * Sub)
+ (* | L(l[^k],t) *)
+ | Inst of Exp list (* | u1, ..., Un *)
+
+
+ (* Constraints *)
+
+ and Cnstr = (* Constraint: *)
+ Solved (* Cnstr ::= solved *)
+ | Eqn of Dec Ctx * Exp * Exp (* | G|-(U1 == U2) *)
+ | FgnCnstr of csid * FgnCnstr (* | (foreign) *)
+
+ and Status = (* Status of a constant: *)
+ Normal (* inert *)
+ | Constraint of csid * (Dec Ctx * Spine * int -> Exp option)
+ (* acts as constraint *)
+ | Foreign of csid * (Spine -> Exp) (* is converted to foreign *)
+
+ and FgnUnify = (* Result of foreign unify *)
+ Succeed of FgnUnifyResidual list
+ (* succeed with a list of residual operations *)
+ | Fail
+
+ and FgnUnifyResidual = (* Residual of foreign unify *)
+ Assign of Dec Ctx * Exp * Exp * Sub
+ (* perform the assignment G |- X = U [ss] *)
+ | Delay of Exp * Cnstr ref
+ (* delay cnstr, associating it with all the rigid EVars in U *)
+
+ (* Global signature *)
+
+ and ConDec = (* Constant declaration *)
+ ConDec of string * mid option * int * Status
+ (* a : K : kind or *)
+ * Exp * Uni (* c : A : type *)
+ | ConDef of string * mid option * int (* a = A : K : kind or *)
+ * Exp * Exp * Uni (* d = M : A : type *)
+ * Ancestor (* Ancestor info for d or a *)
+ | AbbrevDef of string * mid option * int
+ (* a = A : K : kind or *)
+ * Exp * Exp * Uni (* d = M : A : type *)
+ | BlockDec of string * mid option (* %block l : SOME G1 PI G2 *)
+ * Dec Ctx * Dec list
+
+ | BlockDef of string * mid option * cid list
+ (* %block l = (l1 | ... | ln) *)
+
+ | SkoDec of string * mid option * int (* sa: K : kind or *)
+ * Exp * Uni (* sc: A : type *)
+
+ and Ancestor = (* Ancestor of d or a *)
+ Anc of cid option * int * cid option (* head(expand(d)), height, head(expand[height](d)) *)
+ (* NONE means expands to {x:A}B *)
+
+ datatype StrDec = (* Structure declaration *)
+ StrDec of string * mid option
+
+ (* Form of constant declaration *)
+ datatype ConDecForm =
+ FromCS (* from constraint domain *)
+ | Ordinary (* ordinary declaration *)
+ | Clause (* %clause declaration *)
+
+ (* Type abbreviations *)
+ type dctx = Dec Ctx (* G = . | G,D *)
+ type eclo = Exp * Sub (* Us = U[s] *)
+ type bclo = Block * Sub (* Bs = B[s] *)
+ type cnstr = Cnstr ref
+
+(* exception Error of string (* raised if out of space *) *)
+
+
+ structure FgnExpStd = struct
+
+ structure ToInternal = FgnOpnTable (type arg = unit
+ type result = Exp)
+
+ structure Map = FgnOpnTable (type arg = Exp -> Exp
+ type result = Exp)
+
+ structure App = FgnOpnTable (type arg = Exp -> unit
+ type result = unit)
+
+ structure EqualTo = FgnOpnTable (type arg = Exp
+ type result = bool)
+
+ structure UnifyWith = FgnOpnTable (type arg = Dec Ctx * Exp
+ type result = FgnUnify)
+
+
+
+ fun fold csfe f b = let
+ val r = ref b
+ fun g U = r := f (U,!r)
+ in
+ App.apply csfe g ; !r
+ end
+
+ end
+
+ structure FgnCnstrStd = struct
+
+ structure ToInternal = FgnOpnTable (type arg = unit
+ type result = (Dec Ctx * Exp) list)
+
+ structure Awake = FgnOpnTable (type arg = unit
+ type result = bool)
+
+ structure Simplify = FgnOpnTable (type arg = unit
+ type result = bool)
+
+ end
+
+ fun conDecName (ConDec (name, _, _, _, _, _)) = name
+ | conDecName (ConDef (name, _, _, _, _, _, _)) = name
+ | conDecName (AbbrevDef (name, _, _, _, _, _)) = name
+ | conDecName (SkoDec (name, _, _, _, _)) = name
+ | conDecName (BlockDec (name, _, _, _)) = name
+ | conDecName (BlockDef (name, _, _)) = name
+
+ fun conDecParent (ConDec (_, parent, _, _, _, _)) = parent
+ | conDecParent (ConDef (_, parent, _, _, _, _, _)) = parent
+ | conDecParent (AbbrevDef (_, parent, _, _, _, _)) = parent
+ | conDecParent (SkoDec (_, parent, _, _, _)) = parent
+ | conDecParent (BlockDec (_, parent, _, _)) = parent
+ | conDecParent (BlockDef (_, parent, _)) = parent
+
+
+ (* conDecImp (CD) = k
+
+ Invariant:
+ If CD is either a declaration, definition, abbreviation, or
+ a Skolem constant
+ then k stands for the number of implicit elements.
+ *)
+ fun conDecImp (ConDec (_, _, i, _, _, _)) = i
+ | conDecImp (ConDef (_, _, i, _, _, _, _)) = i
+ | conDecImp (AbbrevDef (_, _, i, _, _, _)) = i
+ | conDecImp (SkoDec (_, _, i, _, _)) = i
+ | conDecImp (BlockDec (_, _, _, _)) = 0 (* watch out -- carsten *)
+
+ fun conDecStatus (ConDec (_, _, _, status, _, _)) = status
+ | conDecStatus _ = Normal
+
+ (* conDecType (CD) = V
+
+ Invariant:
+ If CD is either a declaration, definition, abbreviation, or
+ a Skolem constant
+ then V is the respective type
+ *)
+ fun conDecType (ConDec (_, _, _, _, V, _)) = V
+ | conDecType (ConDef (_, _, _, _, V, _, _)) = V
+ | conDecType (AbbrevDef (_, _, _, _, V, _)) = V
+ | conDecType (SkoDec (_, _, _, V, _)) = V
+
+
+ (* conDecBlock (CD) = (Gsome, Lpi)
+
+ Invariant:
+ If CD is block definition
+ then Gsome is the context of some variables
+ and Lpi is the list of pi variables
+ *)
+ fun conDecBlock (BlockDec (_, _, Gsome, Lpi)) = (Gsome, Lpi)
+
+ (* conDecUni (CD) = L
+
+ Invariant:
+ If CD is either a declaration, definition, abbreviation, or
+ a Skolem constant
+ then L is the respective universe
+ *)
+ fun conDecUni (ConDec (_, _, _, _, _, L)) = L
+ | conDecUni (ConDef (_, _, _, _, _, L, _)) = L
+ | conDecUni (AbbrevDef (_, _, _, _, _, L)) = L
+ | conDecUni (SkoDec (_, _, _, _, L)) = L
+
+
+ fun strDecName (StrDec (name, _)) = name
+
+ fun strDecParent (StrDec (_, parent)) = parent
+
+ local
+ val maxCid = Global.maxCid
+ val dummyEntry = ConDec("", NONE, 0, Normal, Uni (Kind), Kind)
+ val sgnArray = Array.array (maxCid+1, dummyEntry)
+ : ConDec Array.array
+ val nextCid = ref(0)
+
+ val maxMid = Global.maxMid
+ val sgnStructArray = Array.array (maxMid+1, StrDec("", NONE))
+ : StrDec Array.array
+ val nextMid = ref (0)
+
+ in
+ (* Invariants *)
+ (* Constant declarations are all well-typed *)
+ (* Constant declarations are stored in beta-normal form *)
+ (* All definitions are strict in all their arguments *)
+ (* If Const(cid) is valid, then sgnArray(cid) = ConDec _ *)
+ (* If Def(cid) is valid, then sgnArray(cid) = ConDef _ *)
+
+ fun sgnClean (i) = if i >= !nextCid then ()
+ else (Array.update (sgnArray, i, dummyEntry);
+ sgnClean (i+1))
+
+ fun sgnReset () = ((* Fri Dec 20 12:04:24 2002 -fp *)
+ (* this circumvents a space leak *)
+ sgnClean (0);
+ nextCid := 0; nextMid := 0)
+ fun sgnSize () = (!nextCid, !nextMid)
+
+ fun sgnAdd (conDec) =
+ let
+ val cid = !nextCid
+ in
+ if cid > maxCid
+ then raise Error ("Global signature size " ^ Int.toString (maxCid+1) ^ " exceeded")
+ else (Array.update (sgnArray, cid, conDec) ;
+ nextCid := cid + 1;
+ cid)
+ end
+
+ (* 0 <= cid < !nextCid *)
+ fun sgnLookup (cid) = Array.sub (sgnArray, cid)
+
+ fun sgnApp (f) =
+ let
+ fun sgnApp' (cid) =
+ if cid = !nextCid then () else (f cid; sgnApp' (cid+1))
+ in
+ sgnApp' (0)
+ end
+
+ fun sgnStructAdd (strDec) =
+ let
+ val mid = !nextMid
+ in
+ if mid > maxMid
+ then raise Error ("Global signature size " ^ Int.toString (maxMid+1) ^ " exceeded")
+ else (Array.update (sgnStructArray, mid, strDec) ;
+ nextMid := mid + 1;
+ mid)
+ end
+
+ (* 0 <= mid < !nextMid *)
+ fun sgnStructLookup (mid) = Array.sub (sgnStructArray, mid)
+
+ (* A hack used in Flit - jcreed 6/05 *)
+ fun rename (cid, new) =
+ let
+ val newConDec = case sgnLookup cid of
+ ConDec (n,m,i,s,e,u) => ConDec(new,m,i,s,e,u)
+ | ConDef (n,m,i,e,e',u,a) => ConDef(new,m,i,e,e',u,a)
+ | AbbrevDef (n,m,i,e,e',u) => AbbrevDef (new,m,i,e,e',u)
+ | BlockDec (n,m,d,d') => BlockDec (new,m,d,d')
+ | SkoDec (n,m,i,e,u) => SkoDec (new,m,i,e,u)
+ in
+ Array.update (sgnArray, cid, newConDec)
+ end
+
+ end
+
+ fun constDef (d) =
+ (case sgnLookup (d)
+ of ConDef(_, _, _, U,_, _, _) => U
+ | AbbrevDef (_, _, _, U,_, _) => U)
+
+ fun constType (c) = conDecType (sgnLookup c)
+ fun constImp (c) = conDecImp (sgnLookup c)
+ fun constUni (c) = conDecUni (sgnLookup c)
+ fun constBlock (c) = conDecBlock (sgnLookup c)
+
+ fun constStatus (c) =
+ (case sgnLookup (c)
+ of ConDec (_, _, _, status, _, _) => status
+ | _ => Normal)
+
+
+ (* Explicit Substitutions *)
+
+ (* id = ^0
+
+ Invariant:
+ G |- id : G id is patsub
+ *)
+ val id = Shift(0)
+
+ (* shift = ^1
+
+ Invariant:
+ G, V |- ^ : G ^ is patsub
+ *)
+ val shift = Shift(1)
+
+ (* invShift = ^-1 = _.^0
+ Invariant:
+ G |- ^-1 : G, V ^-1 is patsub
+ *)
+ val invShift = Dot(Undef, id)
+
+
+ (* comp (s1, s2) = s'
+
+ Invariant:
+ If G' |- s1 : G
+ and G'' |- s2 : G'
+ then s' = s1 o s2
+ and G'' |- s1 o s2 : G
+
+ If s1, s2 patsub
+ then s' patsub
+ *)
+ fun comp (Shift (0), s) = s
+ (* next line is an optimization *)
+ (* roughly 15% on standard suite for Twelf 1.1 *)
+ (* Sat Feb 14 10:15:16 1998 -fp *)
+ | comp (s, Shift (0)) = s
+ | comp (Shift (n), Dot (Ft, s)) = comp (Shift (n-1), s)
+ | comp (Shift (n), Shift (m)) = Shift (n+m)
+ | comp (Dot (Ft, s), s') = Dot (frontSub (Ft, s'), comp (s, s'))
+
+ (* bvarSub (n, s) = Ft'
+
+ Invariant:
+ If G |- s : G' G' |- n : V
+ then Ft' = Ftn if s = Ft1 .. Ftn .. ^k
+ or Ft' = ^(n+k) if s = Ft1 .. Ftm ^k and m<n
+ and G |- Ft' : V [s]
+ *)
+ and bvarSub (1, Dot(Ft, s)) = Ft
+ | bvarSub (n, Dot(Ft, s)) = bvarSub (n-1, s)
+ | bvarSub (n, Shift(k)) = Idx (n+k)
+
+ (* blockSub (B, s) = B'
+
+ Invariant:
+ If G |- s : G'
+ and G' |- B block
+ then G |- B' block
+ and B [s] == B'
+ *)
+ (* in front of substitutions, first case is irrelevant *)
+ (* Sun Dec 2 11:56:41 2001 -fp *)
+ and blockSub (Bidx k, s) =
+ (case bvarSub (k, s)
+ of Idx k' => Bidx k'
+ | Block B => B)
+ | blockSub (LVar (ref (SOME B), sk, _), s) =
+ blockSub (B, comp (sk, s))
+ (* -fp Sun Dec 1 21:18:30 2002 *)
+ (* --cs Sun Dec 1 11:25:41 2002 *)
+ (* Since always . |- t : Gsome, discard s *)
+ (* where is this needed? *)
+ (* Thu Dec 6 20:30:26 2001 -fp !!! *)
+ | blockSub (LVar (r as ref NONE, sk, (l, t)), s) =
+ LVar(r, comp(sk, s), (l, t))
+ (* was:
+ LVar (r, comp(sk, s), (l, comp (t, s)))
+ July 22, 2010 -fp -cs
+ *)
+ (* comp(^k, s) = ^k' for some k' by invariant *)
+ | blockSub (L as Inst ULs, s') = Inst (map (fn U => EClo (U, s')) ULs)
+ (* this should be right but somebody should verify *)
+
+ (* frontSub (Ft, s) = Ft'
+
+ Invariant:
+ If G |- s : G' G' |- Ft : V
+ then Ft' = Ft [s]
+ and G |- Ft' : V [s]
+
+ NOTE: EClo (U, s) might be undefined, so if this is ever
+ computed eagerly, we must introduce an "Undefined" exception,
+ raise it in whnf and handle it here so Exp (EClo (U, s)) => Undef
+ *)
+ and frontSub (Idx (n), s) = bvarSub (n, s)
+ | frontSub (Exp (U), s) = Exp (EClo (U, s))
+ | frontSub (Undef, s) = Undef
+ | frontSub (Block (B), s) = Block (blockSub (B, s))
+
+ (* decSub (x:V, s) = D'
+
+ Invariant:
+ If G |- s : G' G' |- V : L
+ then D' = x:V[s]
+ and G |- V[s] : L
+ *)
+ (* First line is an optimization suggested by cs *)
+ (* D[id] = D *)
+ (* Sat Feb 14 18:37:44 1998 -fp *)
+ (* seems to have no statistically significant effect *)
+ (* undo for now Sat Feb 14 20:22:29 1998 -fp *)
+ (*
+ fun decSub (D, Shift(0)) = D
+ | decSub (Dec (x, V), s) = Dec (x, EClo (V, s))
+ *)
+ fun decSub (Dec (x, V), s) = Dec (x, EClo (V, s))
+ | decSub (NDec x, s) = NDec x
+ | decSub (BDec (n, (l, t)), s) = BDec (n, (l, comp (t, s)))
+
+ (* dot1 (s) = s'
+
+ Invariant:
+ If G |- s : G'
+ then s' = 1. (s o ^)
+ and for all V s.t. G' |- V : L
+ G, V[s] |- s' : G', V
+
+ If s patsub then s' patsub
+ *)
+ (* first line is an optimization *)
+ (* roughly 15% on standard suite for Twelf 1.1 *)
+ (* Sat Feb 14 10:16:16 1998 -fp *)
+ fun dot1 (s as Shift (0)) = s
+ | dot1 s = Dot (Idx(1), comp(s, shift))
+
+ (* invDot1 (s) = s'
+ invDot1 (1. s' o ^) = s'
+
+ Invariant:
+ s = 1 . s' o ^
+ If G' |- s' : G
+ (so G',V[s] |- s : G,V)
+ *)
+ fun invDot1 (s) = comp (comp(shift, s), invShift)
+
+
+ (* Declaration Contexts *)
+
+ (* ctxDec (G, k) = x:V
+ Invariant:
+ If |G| >= k, where |G| is size of G,
+ then G |- k : V and G |- V : L
+ *)
+ fun ctxDec (G, k) =
+ let (* ctxDec' (G'', k') = x:V
+ where G |- ^(k-k') : G'', 1 <= k' <= k
+ *)
+ fun ctxDec' (Decl (G', Dec (x, V')), 1) = Dec (x, EClo (V', Shift (k)))
+ | ctxDec' (Decl (G', BDec (n, (l, s))), 1) = BDec (n, (l, comp (s, Shift (k))))
+ | ctxDec' (Decl (G', _), k') = ctxDec' (G', k'-1)
+ (* ctxDec' (Null, k') should not occur by invariant *)
+ in
+ ctxDec' (G, k)
+ end
+
+ (* blockDec (G, v, i) = V
+
+ Invariant:
+ If G (v) = l[s]
+ and Sigma (l) = SOME Gsome BLOCK Lblock
+ and G |- s : Gsome
+ then G |- pi (v, i) : V
+ *)
+
+ fun blockDec (G, v as (Bidx k), i) =
+ let
+ val BDec (_, (l, s)) = ctxDec (G, k)
+ (* G |- s : Gsome *)
+ val (Gsome, Lblock) = conDecBlock (sgnLookup l)
+ fun blockDec' (t, D :: L, 1, j) = decSub (D, t)
+ | blockDec' (t, _ :: L, n, j) =
+ blockDec' (Dot (Exp (Root (Proj (v, j), Nil)), t),
+ L, n-1, j+1)
+ in
+ blockDec' (s, Lblock, i, 1)
+ end
+
+
+ (* EVar related functions *)
+
+ (* newEVar (G, V) = newEVarCnstr (G, V, nil) *)
+ fun newEVar (G, V) = EVar(ref NONE, G, V, ref nil)
+
+ (* newAVar G = new AVar (assignable variable) *)
+ (* AVars carry no type, ctx, or cnstr *)
+ fun newAVar () = AVar(ref NONE)
+
+ (* newTypeVar (G) = X, X new
+ where G |- X : type
+ *)
+ fun newTypeVar (G) = EVar(ref NONE, G, Uni(Type), ref nil)
+
+ (* newLVar (l, s) = (l[s]) *)
+ fun newLVar (sk, (cid, t)) = LVar (ref NONE, sk, (cid, t))
+
+ (* Definition related functions *)
+ (* headOpt (U) = SOME(H) or NONE, U should be strict, normal *)
+ fun headOpt (Root (H, _)) = SOME(H)
+ | headOpt (Lam (_, U)) = headOpt U
+ | headOpt _ = NONE
+
+ fun ancestor' (NONE) = Anc(NONE, 0, NONE)
+ | ancestor' (SOME(Const(c))) = Anc(SOME(c), 1, SOME(c))
+ | ancestor' (SOME(Def(d))) =
+ (case sgnLookup(d)
+ of ConDef(_, _, _, _, _, _, Anc(_, height, cOpt))
+ => Anc(SOME(d), height+1, cOpt))
+ | ancestor' (SOME _) = (* FgnConst possible, BVar impossible by strictness *)
+ Anc(NONE, 0, NONE)
+ (* ancestor(U) = ancestor info for d = U *)
+ fun ancestor (U) = ancestor' (headOpt U)
+
+ (* defAncestor(d) = ancestor of d, d must be defined *)
+ fun defAncestor (d) =
+ (case sgnLookup(d)
+ of ConDef(_, _, _, _, _, _, anc) => anc)
+
+ (* Type related functions *)
+
+ (* targetHeadOpt (V) = SOME(H) or NONE
+ where H is the head of the atomic target type of V,
+ NONE if V is a kind or object or have variable type.
+ Does not expand type definitions.
+ *)
+ (* should there possibly be a FgnConst case? also targetFamOpt -kw *)
+ fun targetHeadOpt (Root (H, _)) = SOME(H)
+ | targetHeadOpt (Pi(_, V)) = targetHeadOpt V
+ | targetHeadOpt (Redex (V, S)) = targetHeadOpt V
+ | targetHeadOpt (Lam (_, V)) = targetHeadOpt V
+ | targetHeadOpt (EVar (ref (SOME(V)),_,_,_)) = targetHeadOpt V
+ | targetHeadOpt (EClo (V, s)) = targetHeadOpt V
+ | targetHeadOpt _ = NONE
+ (* Root(Bvar _, _), Root(FVar _, _), Root(FgnConst _, _),
+ EVar(ref NONE,..), Uni, FgnExp _
+ *)
+ (* Root(Skonst _, _) can't occur *)
+ (* targetHead (A) = a
+ as in targetHeadOpt, except V must be a valid type
+ *)
+ fun targetHead (A) = valOf (targetHeadOpt A)
+
+ (* targetFamOpt (V) = SOME(cid) or NONE
+ where cid is the type family of the atomic target type of V,
+ NONE if V is a kind or object or have variable type.
+ Does expand type definitions.
+ *)
+ fun targetFamOpt (Root (Const(cid), _)) = SOME(cid)
+ | targetFamOpt (Pi(_, V)) = targetFamOpt V
+ | targetFamOpt (Root (Def(cid), _)) = targetFamOpt (constDef cid)
+ | targetFamOpt (Redex (V, S)) = targetFamOpt V
+ | targetFamOpt (Lam (_, V)) = targetFamOpt V
+ | targetFamOpt (EVar (ref (SOME(V)),_,_,_)) = targetFamOpt V
+ | targetFamOpt (EClo (V, s)) = targetFamOpt V
+ | targetFamOpt _ = NONE
+ (* Root(Bvar _, _), Root(FVar _, _), Root(FgnConst _, _),
+ EVar(ref NONE,..), Uni, FgnExp _
+ *)
+ (* Root(Skonst _, _) can't occur *)
+ (* targetFam (A) = a
+ as in targetFamOpt, except V must be a valid type
+ *)
+ fun targetFam (A) = valOf (targetFamOpt A)
+
+end; (* functor IntSyn *)
+
+structure IntSyn :> INTSYN =
+ IntSyn (structure Global = Global);
+
+---tokens---
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'y' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'x' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+'f' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'c' Comment.Multiline
+'h' Comment.Multiline
+'u' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+'o' Comment.Multiline
+'d' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n' Text
+
+'functor' Keyword.Reserved
+' ' Text
+'IntSyn' Name.Namespace
+' ' Text
+'(' Punctuation
+'structure' Keyword.Reserved
+' ' Text
+'Global' Name.Namespace
+' ' Text
+':' Punctuation
+' ' Text
+'GLOBAL' Name
+')' Punctuation
+' ' Text
+':>' Punctuation
+' ' Text
+'INTSYN' Name
+' ' Text
+'=' Punctuation
+'\n' Text
+
+'struct' Keyword.Reserved
+'\n\n ' Text
+'type' Keyword.Reserved
+' ' Text
+'cid' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' 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
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'name' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'string' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'mid' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'csid' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'int' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'S' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'o' Comment.Multiline
+'d' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'datatype' Keyword.Reserved
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Keyword.Type
+' ' Text
+'=' Punctuation
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'x' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Null' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Decl' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+"'a" Name.Decorator
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+"'a" Name.Decorator
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'P' Comment.Multiline
+'o' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+'>' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+',' Comment.Multiline
+'D' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'fun' Keyword.Reserved
+' ' Text
+'ctxPop' Name.Function
+' ' Text
+'(' Punctuation
+'Decl' Name
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'D' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'G' Name
+'\n\n ' Text
+'exception' Keyword.Reserved
+' ' Text
+'Error' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' \n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'L' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'k' Comment.Multiline
+'u' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'t' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'fun' Name.Class
+' ' Text
+'ctxLookup' Name.Class
+' ' Text
+'(' Punctuation
+'Decl' Name
+' ' Text
+'(' Punctuation
+"G'" Name
+',' Punctuation
+' ' Text
+'D' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'D' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'ctxLookup' Name.Function
+' ' Text
+'(' Punctuation
+'Decl' Name
+' ' Text
+'(' Punctuation
+"G'" Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+"k'" Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'ctxLookup' Name
+' ' Text
+'(' Punctuation
+"G'" Name
+',' Punctuation
+' ' Text
+"k'" Name
+'-' Name
+'1' Literal.Number.Integer
+')' Punctuation
+'\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'L' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'k' Comment.Multiline
+'u' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'N' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'"' Comment.Multiline
+'L' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'"' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'.' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'k' 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
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'"' Comment.Multiline
+'O' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'\\' Comment.Multiline
+'n' Comment.Multiline
+'"' Comment.Multiline
+')' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'L' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'k' Comment.Multiline
+'u' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'N' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'c' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'L' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+',' 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
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'ctxLength' Name.Function
+' ' Text
+'G' Name
+' ' Text
+'=' Punctuation
+'\n ' Text
+'let' Keyword.Reserved
+' \n\t' Text
+'fun' Keyword.Reserved
+' ' Text
+"ctxLength'" Name.Function
+' ' Text
+'(' Punctuation
+'Null' Name
+',' Punctuation
+' ' Text
+'n' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'n' Name
+'\n\t ' Text
+'|' Punctuation
+' ' Text
+"ctxLength'" Name.Function
+' ' Text
+'(' Punctuation
+'Decl' Name
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+'n' Name
+')' Punctuation
+'=' Punctuation
+' ' Text
+"ctxLength'" Name
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'n' Name
+'+' Name
+'1' Literal.Number.Integer
+')' Punctuation
+'\n ' Text
+'in' Keyword.Reserved
+'\n\t' Text
+"ctxLength'" Name
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+')' Punctuation
+'\n ' Text
+'end' Keyword.Reserved
+'\n \n ' Text
+'type' Keyword.Reserved
+' ' Text
+'FgnExp' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'exn' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'exception' Keyword.Reserved
+' ' Text
+'UnexpectedFgnExp' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'FgnExp' Name.Class
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'\n' Comment.Multiline
+
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+'\t' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'type' Name.Class
+' ' Text
+'FgnCnstr' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'exn' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'exception' Name.Class
+' ' Text
+'UnexpectedFgnCnstr' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'FgnCnstr' Name.Class
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'datatype' Name.Class
+' ' Text
+'Depend' Name.Class
+' ' Text
+'=' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'No' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Name.Class
+' ' Text
+'Maybe' Name.Class
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+'a' Comment.Multiline
+'y' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Name.Class
+' ' Text
+'Meta' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'datatype' Name.Class
+' ' Text
+'Uni' Name.Class
+' ' Text
+'=' Name.Class
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'e' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Kind' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Name.Class
+' ' Text
+'Type' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'datatype' Name.Class
+' ' Text
+'Exp' Name.Class
+' ' Text
+'=' Name.Class
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Uni' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Uni' Name.Class
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Name.Class
+' ' Text
+'Pi' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'Dec' Name
+' ' Text
+'*' Name
+' ' Text
+'Depend' Name
+')' Punctuation
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'P' Comment.Multiline
+'i' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'D' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+')' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Root' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Head' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+' ' Comment.Multiline
+'@' Comment.Multiline
+' ' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Redex' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+'@' Comment.Multiline
+' ' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Lam' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Dec' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'EVar' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'option' Name
+' ' Text
+'ref' Name
+' ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'Cnstr' Name
+' ' Text
+'ref' Name
+')' Punctuation
+' ' Text
+'list' Name
+' ' Text
+'ref' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+'<' Comment.Multiline
+'I' Comment.Multiline
+'>' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'|' Punctuation
+' ' Text
+'EClo' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'AVar' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'option' Name
+' ' Text
+'ref' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'<' Comment.Multiline
+'I' Comment.Multiline
+'>' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' \n ' Text
+'|' Punctuation
+' ' Text
+'NVar' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'p' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'g' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'f' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'|' Punctuation
+' ' Text
+'FgnExp' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'FgnExp' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n \n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Head' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'H' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'BVar' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'H' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Const' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Proj' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Block' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'#' Comment.Multiline
+'k' Comment.Multiline
+'(' Comment.Multiline
+'b' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Skonst' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'#' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Def' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'NSDef' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'FVar' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'name' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'FgnConst' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'ConDec' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' 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
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n \n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Spine' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'p' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Nil' Name
+'\t\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'App' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+';' Comment.Multiline
+' ' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'SClo' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Spine' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Sub' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Shift' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Dot' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Front' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+'.' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Front' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'r' Comment.Multiline
+'o' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Idx' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Exp' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Axp' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Block' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Block' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+'x' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Undef' Name.Function
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Dec' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Dec' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'name' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'BDec' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'name' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'cid' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+')' Punctuation
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+':' Comment.Multiline
+'l' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'ADec' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'name' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' \t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'[' Comment.Multiline
+'^' Comment.Multiline
+'-' Comment.Multiline
+'d' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'NDec' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'name' Name
+' ' Text
+'option' Name
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Block' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Bidx' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'int' Name
+' \t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'LVar' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Block' Name
+' ' Text
+'option' Name
+' ' Text
+'ref' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'cid' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'[' Comment.Multiline
+'^' Comment.Multiline
+'k' Comment.Multiline
+']' Comment.Multiline
+',' Comment.Multiline
+'t' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Inst' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'list' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'1' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Cnstr' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Solved' Name
+' \t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+':' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Eqn' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+'(' Comment.Multiline
+'U' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'2' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'FgnCnstr' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'FgnCnstr' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Status' Name.Function
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'a' 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
+':' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Normal' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Constraint' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Spine' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'option' Name
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Foreign' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'csid' Name
+' ' Text
+'*' Name
+' ' Text
+'(' Punctuation
+'Spine' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+')' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'FgnUnify' Name.Function
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Succeed' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'FgnUnifyResidual' Name
+' ' Text
+'list' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'u' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Fail' Name.Function
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'FgnUnifyResidual' Name.Function
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+'u' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Assign' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Delay' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Cnstr' Name
+' ' Text
+'ref' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' 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
+'r' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'b' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'ConDec' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t ' Text
+'(*' 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
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'ConDec' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'*' Name
+' ' Text
+'Status' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'ConDef' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Ancestor' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'AbbrevDef' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'M' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'BlockDec' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'%' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'O' Comment.Multiline
+'M' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'P' Comment.Multiline
+'I' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Dec' Name
+' ' Text
+'list' Name
+'\n\n ' Text
+'|' Punctuation
+' ' Text
+'BlockDef' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'cid' Name
+' ' Text
+'list' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'%' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'n' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'|' Punctuation
+' ' Text
+'SkoDec' Name.Function
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+'\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'a' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'*' Name
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Uni' Name
+'\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'c' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'Ancestor' Name.Function
+' ' Text
+'=' Punctuation
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Anc' Name
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'cid' Name
+' ' Text
+'option' Name
+' ' Text
+'*' Name
+' ' Text
+'int' Name
+' ' Text
+'*' Name
+' ' Text
+'cid' Name
+' ' Text
+'option' Name
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+'(' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'(' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'t' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+'(' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'[' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'t' Comment.Multiline
+']' Comment.Multiline
+'(' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'{' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'A' Comment.Multiline
+'}' Comment.Multiline
+'B' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'datatype' Keyword.Reserved
+' ' Text
+'StrDec' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'StrDec' Name.Class
+' ' Text
+'of' Keyword.Reserved
+' ' Text
+'string' Name
+' ' Text
+'*' Name
+' ' Text
+'mid' Name
+' ' Text
+'option' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' 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
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'datatype' Keyword.Reserved
+' ' Text
+'ConDecForm' Keyword.Type
+' ' Text
+'=' Punctuation
+'\n ' Text
+'FromCS' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Ordinary' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'d' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'Clause' Name.Class
+'\t\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'%' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'b' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'dctx' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+'\t\t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'eclo' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' \t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'bclo' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Block' Name
+' ' Text
+'*' Name
+' ' Text
+'Sub' Name
+' \t\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'[' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'cnstr' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Cnstr' Name
+' ' Text
+'ref' Name
+'\n\n' Text
+
+'(*' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'g' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'FgnExpStd' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n\n ' Text
+'structure' Keyword.Reserved
+' ' Text
+'ToInternal' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+'\n\t\t\t\t\t' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+')' Punctuation
+'\n\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'Map' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Exp' Name
+'\n\t\t\t\t ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+')' Punctuation
+'\n\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'App' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'unit' Name
+'\n\t\t\t\t ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+')' Punctuation
+'\n\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'EqualTo' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+'\n\t\t\t\t ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'bool' Name
+')' Punctuation
+'\n\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'UnifyWith' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+'\n\t\t\t\t ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnUnify' Name
+')' Punctuation
+'\n\n\t\t\t \n\n ' Text
+'' Text
+'fun' Keyword.Reserved
+' ' Text
+'fold' Name.Function
+' ' Text
+'csfe' Name
+' ' Text
+'f' Name
+' ' Text
+'b' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'let' Keyword.Reserved
+'\n\t' Text
+'val' Keyword.Reserved
+' ' Text
+'r' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'ref' Name
+' ' Text
+'b' Name
+'\n\t' Text
+'fun' Keyword.Reserved
+' ' Text
+'g' Name.Function
+' ' Text
+'U' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'r' Name
+' ' Text
+':=' Name
+' ' Text
+'f' Name
+' ' Text
+'(' Punctuation
+'U' Name
+',' Punctuation
+'!' Name
+'r' Name
+')' Punctuation
+'\n ' Text
+'in' Keyword.Reserved
+'\n\t' Text
+'App' Name.Namespace
+'.' Punctuation
+'apply' Name
+' ' Text
+'csfe' Name
+' ' Text
+'g' Name
+' ' Text
+';' Punctuation
+' ' Text
+'!' Name
+'r' Name
+'\n ' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'structure' Keyword.Reserved
+' ' Text
+'FgnCnstrStd' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'struct' Keyword.Reserved
+'\n\n ' Text
+'structure' Keyword.Reserved
+' ' Text
+'ToInternal' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+'\n\t\t\t\t\t' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'Dec' Name
+' ' Text
+'Ctx' Name
+' ' Text
+'*' Name
+' ' Text
+'Exp' Name
+')' Punctuation
+' ' Text
+'list' Name
+')' Punctuation
+'\n\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'Awake' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+'\n\t\t\t\t ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'bool' Name
+')' Punctuation
+'\n\n ' Text
+'' Text
+'structure' Keyword.Reserved
+' ' Text
+'Simplify' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'FgnOpnTable' Name
+' ' Text
+'(' Punctuation
+'type' Keyword.Reserved
+' ' Text
+'arg' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'unit' Name
+'\n\t\t\t\t ' Text
+'' Text
+'type' Keyword.Reserved
+' ' Text
+'result' Keyword.Type
+' ' Text
+'=' Punctuation
+' ' Text
+'bool' Name
+')' Punctuation
+'\n\n ' Text
+'' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'conDecName' Name.Function
+' ' Text
+'(' Punctuation
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'name' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'name' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecName' Name.Function
+' ' Text
+'(' Punctuation
+'ConDef' Name
+' ' Text
+'(' Punctuation
+'name' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'name' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecName' Name.Function
+' ' Text
+'(' Punctuation
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'name' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'name' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecName' Name.Function
+' ' Text
+'(' Punctuation
+'SkoDec' Name
+' ' Text
+'(' Punctuation
+'name' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'name' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecName' Name.Function
+' ' Text
+'(' Punctuation
+'BlockDec' Name
+' ' Text
+'(' Punctuation
+'name' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'name' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecName' Name.Function
+' ' Text
+'(' Punctuation
+'BlockDef' Name
+' ' Text
+'(' Punctuation
+'name' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'name' Name
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'conDecParent' Name.Function
+' ' Text
+'(' Punctuation
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'parent' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'parent' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecParent' Name.Function
+' ' Text
+'(' Punctuation
+'ConDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'parent' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'parent' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecParent' Name.Function
+' ' Text
+'(' Punctuation
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'parent' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'parent' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecParent' Name.Function
+' ' Text
+'(' Punctuation
+'SkoDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'parent' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'parent' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecParent' Name.Function
+' ' Text
+'(' Punctuation
+'BlockDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'parent' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'parent' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecParent' Name.Function
+' ' Text
+'(' Punctuation
+'BlockDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'parent' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'parent' Name
+'\n \n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'I' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'b' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'k' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'m' 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
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' 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
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'.' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'conDecImp' Name.Function
+' ' Text
+'(' Punctuation
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'i' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'i' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecImp' Name.Function
+' ' Text
+'(' Punctuation
+'ConDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'i' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'i' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecImp' Name.Function
+' ' Text
+'(' Punctuation
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'i' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'i' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecImp' Name.Function
+' ' Text
+'(' Punctuation
+'SkoDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'i' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'i' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecImp' Name.Function
+' ' Text
+'(' Punctuation
+'BlockDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'c' Comment.Multiline
+'h' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'conDecStatus' Name.Function
+' ' Text
+'(' Punctuation
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'status' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'status' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecStatus' Name.Function
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Normal' Name
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'b' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'k' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'m' 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
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'conDecType' Name.Function
+' ' Text
+'(' Punctuation
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecType' Name.Function
+' ' Text
+'(' Punctuation
+'ConDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecType' Name.Function
+' ' Text
+'(' Punctuation
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecType' Name.Function
+' ' Text
+'(' Punctuation
+'SkoDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'V' Name
+'\n\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'B' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'p' Comment.Multiline
+'i' Comment.Multiline
+')' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'p' Comment.Multiline
+'i' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'i' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'conDecBlock' Name.Function
+' ' Text
+'(' Punctuation
+'BlockDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'Gsome' Name
+',' Punctuation
+' ' Text
+'Lpi' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'Gsome' Name
+',' Punctuation
+' ' Text
+'Lpi' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'b' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'k' Comment.Multiline
+'o' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'m' 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
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'conDecUni' Name.Function
+' ' Text
+'(' Punctuation
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'L' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'L' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecUni' Name.Function
+' ' Text
+'(' Punctuation
+'ConDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'L' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'L' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecUni' Name.Function
+' ' Text
+'(' Punctuation
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'L' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'L' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'conDecUni' Name.Function
+' ' Text
+'(' Punctuation
+'SkoDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'L' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'L' Name
+'\n\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'strDecName' Name.Function
+' ' Text
+'(' Punctuation
+'StrDec' Name
+' ' Text
+'(' Punctuation
+'name' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'name' Name
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'strDecParent' Name.Function
+' ' Text
+'(' Punctuation
+'StrDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'parent' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'parent' Name
+'\n\n ' Text
+'local' Keyword.Reserved
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'maxCid' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'Global' Name.Namespace
+'.' Punctuation
+'maxCid' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'dummyEntry' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'ConDec' Name
+'(' Punctuation
+'"' Literal.String.Double
+'"' Literal.String.Double
+',' Punctuation
+' ' Text
+'NONE' Name
+',' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'Normal' Name
+',' Punctuation
+' ' Text
+'Uni' Name
+' ' Text
+'(' Punctuation
+'Kind' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'Kind' Name
+')' Punctuation
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnArray' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'Array' Name.Namespace
+'.' Punctuation
+'array' Name
+' ' Text
+'(' Punctuation
+'maxCid' Name
+'+' Name
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'dummyEntry' Name
+')' Punctuation
+'\n ' Text
+':' Punctuation
+' ' Text
+'ConDec' Name
+' ' Text
+'Array' Name.Namespace
+'.' Punctuation
+'array' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'nextCid' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'ref' Name
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+'\n\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'maxMid' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'Global' Name.Namespace
+'.' Punctuation
+'maxMid' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'sgnStructArray' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'Array' Name.Namespace
+'.' Punctuation
+'array' Name
+' ' Text
+'(' Punctuation
+'maxMid' Name
+'+' Name
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'StrDec' Name
+'(' Punctuation
+'"' Literal.String.Double
+'"' Literal.String.Double
+',' Punctuation
+' ' Text
+'NONE' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+':' Punctuation
+' ' Text
+'StrDec' Name
+' ' Text
+'Array' Name.Namespace
+'.' Punctuation
+'array' Name
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'nextMid' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'ref' Name
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+'\n\n ' Text
+'in' Keyword.Reserved
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' 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
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+'-' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' 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
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'-' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'u' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'A' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'y' Comment.Multiline
+'(' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'(' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'A' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'y' Comment.Multiline
+'(' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnClean' Name.Function
+' ' Text
+'(' Punctuation
+'i' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'if' Keyword.Reserved
+' ' Text
+'i' Name
+' ' Text
+'>=' Name
+' ' Text
+'!' Name
+'nextCid' Name
+' ' Text
+'then' Keyword.Reserved
+' ' Text
+'(' Punctuation
+')' Punctuation
+'\n ' Text
+'else' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'Array' Name.Namespace
+'.' Punctuation
+'update' Name
+' ' Text
+'(' Punctuation
+'sgnArray' Name
+',' Punctuation
+' ' Text
+'i' Name
+',' Punctuation
+' ' Text
+'dummyEntry' Name
+')' Punctuation
+';' Punctuation
+'\n\t\t\t ' Text
+'sgnClean' Name
+' ' Text
+'(' Punctuation
+'i' Name
+'+' Name
+'1' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnReset' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'2' Comment.Multiline
+':' Comment.Multiline
+'0' Comment.Multiline
+'4' Comment.Multiline
+':' Comment.Multiline
+'2' Comment.Multiline
+'4' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+'0' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\t\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+'c' Comment.Multiline
+'u' Comment.Multiline
+'m' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\t\t ' Text
+'sgnClean' Name
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+';' Punctuation
+'\n\t\t ' Text
+'nextCid' Name
+' ' Text
+':=' Name
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+' ' Text
+'nextMid' Name
+' ' Text
+':=' Name
+' ' Text
+'0' Literal.Number.Integer
+')' Punctuation
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnSize' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'(' Punctuation
+'!' Name
+'nextCid' Name
+',' Punctuation
+' ' Text
+'!' Name
+'nextMid' Name
+')' Punctuation
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnAdd' Name.Function
+' ' Text
+'(' Punctuation
+'conDec' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' \n ' Text
+'let' Keyword.Reserved
+'\n\t ' Text
+'val' Keyword.Reserved
+' ' Text
+'cid' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'!' Name
+'nextCid' Name
+'\n\t' Text
+'in' Keyword.Reserved
+'\n\t ' Text
+'if' Keyword.Reserved
+' ' Text
+'cid' Name
+' ' Text
+'>' Name
+' ' Text
+'maxCid' Name
+'\n\t ' Text
+'then' Keyword.Reserved
+' ' Text
+'raise' Keyword.Reserved
+' ' Text
+'Error' Name
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'G' Literal.String.Double
+'l' Literal.String.Double
+'o' Literal.String.Double
+'b' Literal.String.Double
+'a' Literal.String.Double
+'l' Literal.String.Double
+' ' Literal.String.Double
+'s' Literal.String.Double
+'i' Literal.String.Double
+'g' Literal.String.Double
+'n' Literal.String.Double
+'a' Literal.String.Double
+'t' Literal.String.Double
+'u' Literal.String.Double
+'r' Literal.String.Double
+'e' Literal.String.Double
+' ' Literal.String.Double
+'s' Literal.String.Double
+'i' Literal.String.Double
+'z' Literal.String.Double
+'e' Literal.String.Double
+' ' Literal.String.Double
+'"' Literal.String.Double
+' ' Text
+'^' Name
+' ' Text
+'Int' Name.Namespace
+'.' Punctuation
+'toString' Name
+' ' Text
+'(' Punctuation
+'maxCid' Name
+'+' Name
+'1' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'^' Name
+' ' Text
+'"' Literal.String.Double
+' ' Literal.String.Double
+'e' Literal.String.Double
+'x' Literal.String.Double
+'c' Literal.String.Double
+'e' Literal.String.Double
+'e' Literal.String.Double
+'d' Literal.String.Double
+'e' Literal.String.Double
+'d' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+'\n\t ' Text
+'else' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'Array' Name.Namespace
+'.' Punctuation
+'update' Name
+' ' Text
+'(' Punctuation
+'sgnArray' Name
+',' Punctuation
+' ' Text
+'cid' Name
+',' Punctuation
+' ' Text
+'conDec' Name
+')' Punctuation
+' ' Text
+';' Punctuation
+'\n\t\t' Text
+'nextCid' Name
+' ' Text
+':=' Name
+' ' Text
+'cid' Name
+' ' Text
+'+' Name
+' ' Text
+'1' Literal.Number.Integer
+';' Punctuation
+'\n\t\t' Text
+'cid' Name
+')' Punctuation
+'\n\t' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'0' Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+' ' Comment.Multiline
+'!' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+'C' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnLookup' Name.Function
+' ' Text
+'(' Punctuation
+'cid' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Array' Name.Namespace
+'.' Punctuation
+'sub' Name
+' ' Text
+'(' Punctuation
+'sgnArray' Name
+',' Punctuation
+' ' Text
+'cid' Name
+')' Punctuation
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnApp' Name.Function
+' ' Text
+'(' Punctuation
+'f' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'let' Keyword.Reserved
+'\n\t ' Text
+'fun' Keyword.Reserved
+' ' Text
+"sgnApp'" Name.Function
+' ' Text
+'(' Punctuation
+'cid' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' \n\t ' Text
+'if' Keyword.Reserved
+' ' Text
+'cid' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'!' Name
+'nextCid' Name
+' ' Text
+'then' Keyword.Reserved
+' ' Text
+'(' Punctuation
+')' Punctuation
+' ' Text
+'else' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'f' Name
+' ' Text
+'cid' Name
+';' Punctuation
+' ' Text
+"sgnApp'" Name
+' ' Text
+'(' Punctuation
+'cid' Name
+'+' Name
+'1' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+' \n\t' Text
+'in' Keyword.Reserved
+'\n\t ' Text
+"sgnApp'" Name
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+'\n\t' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnStructAdd' Name.Function
+' ' Text
+'(' Punctuation
+'strDec' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' \n ' Text
+'let' Keyword.Reserved
+'\n\t ' Text
+'val' Keyword.Reserved
+' ' Text
+'mid' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'!' Name
+'nextMid' Name
+'\n\t' Text
+'in' Keyword.Reserved
+'\n\t ' Text
+'if' Keyword.Reserved
+' ' Text
+'mid' Name
+' ' Text
+'>' Name
+' ' Text
+'maxMid' Name
+'\n\t ' Text
+'then' Keyword.Reserved
+' ' Text
+'raise' Keyword.Reserved
+' ' Text
+'Error' Name
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'G' Literal.String.Double
+'l' Literal.String.Double
+'o' Literal.String.Double
+'b' Literal.String.Double
+'a' Literal.String.Double
+'l' Literal.String.Double
+' ' Literal.String.Double
+'s' Literal.String.Double
+'i' Literal.String.Double
+'g' Literal.String.Double
+'n' Literal.String.Double
+'a' Literal.String.Double
+'t' Literal.String.Double
+'u' Literal.String.Double
+'r' Literal.String.Double
+'e' Literal.String.Double
+' ' Literal.String.Double
+'s' Literal.String.Double
+'i' Literal.String.Double
+'z' Literal.String.Double
+'e' Literal.String.Double
+' ' Literal.String.Double
+'"' Literal.String.Double
+' ' Text
+'^' Name
+' ' Text
+'Int' Name.Namespace
+'.' Punctuation
+'toString' Name
+' ' Text
+'(' Punctuation
+'maxMid' Name
+'+' Name
+'1' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'^' Name
+' ' Text
+'"' Literal.String.Double
+' ' Literal.String.Double
+'e' Literal.String.Double
+'x' Literal.String.Double
+'c' Literal.String.Double
+'e' Literal.String.Double
+'e' Literal.String.Double
+'d' Literal.String.Double
+'e' Literal.String.Double
+'d' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+'\n\t ' Text
+'else' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'Array' Name.Namespace
+'.' Punctuation
+'update' Name
+' ' Text
+'(' Punctuation
+'sgnStructArray' Name
+',' Punctuation
+' ' Text
+'mid' Name
+',' Punctuation
+' ' Text
+'strDec' Name
+')' Punctuation
+' ' Text
+';' Punctuation
+'\n\t\t' Text
+'nextMid' Name
+' ' Text
+':=' Name
+' ' Text
+'mid' Name
+' ' Text
+'+' Name
+' ' Text
+'1' Literal.Number.Integer
+';' Punctuation
+'\n\t\t' Text
+'mid' Name
+')' Punctuation
+'\n\t' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'0' Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+' ' Comment.Multiline
+'!' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+'M' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'sgnStructLookup' Name.Function
+' ' Text
+'(' Punctuation
+'mid' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Array' Name.Namespace
+'.' Punctuation
+'sub' Name
+' ' Text
+'(' Punctuation
+'sgnStructArray' Name
+',' Punctuation
+' ' Text
+'mid' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'j' Comment.Multiline
+'c' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'6' Comment.Multiline
+'/' Comment.Multiline
+'0' Comment.Multiline
+'5' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'rename' Name.Function
+' ' Text
+'(' Punctuation
+'cid' Name
+',' Punctuation
+' ' Text
+'new' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n\t' Text
+'let' Keyword.Reserved
+'\n\t ' Text
+'val' Keyword.Reserved
+' ' Text
+'newConDec' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'case' Keyword.Reserved
+' ' Text
+'sgnLookup' Name
+' ' Text
+'cid' Name
+' ' Text
+'of' Keyword.Reserved
+' \n\t\t' Text
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'s' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+'u' Name
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'ConDec' Name
+'(' Punctuation
+'new' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'s' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+'u' Name
+')' Punctuation
+'\n\t ' Text
+'|' Name
+' ' Text
+'ConDef' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+"e'" Name
+',' Punctuation
+'u' Name
+',' Punctuation
+'a' Name
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'ConDef' Name
+'(' Punctuation
+'new' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+"e'" Name
+',' Punctuation
+'u' Name
+',' Punctuation
+'a' Name
+')' Punctuation
+'\n\t ' Text
+'|' Name
+' ' Text
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+"e'" Name
+',' Punctuation
+'u' Name
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'new' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+"e'" Name
+',' Punctuation
+'u' Name
+')' Punctuation
+'\n\t ' Text
+'|' Name
+' ' Text
+'BlockDec' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'d' Name
+',' Punctuation
+"d'" Name
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'BlockDec' Name
+' ' Text
+'(' Punctuation
+'new' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'d' Name
+',' Punctuation
+"d'" Name
+')' Punctuation
+'\n\t ' Text
+'|' Name
+' ' Text
+'SkoDec' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+'u' Name
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'SkoDec' Name
+' ' Text
+'(' Punctuation
+'new' Name
+',' Punctuation
+'m' Name
+',' Punctuation
+'i' Name
+',' Punctuation
+'e' Name
+',' Punctuation
+'u' Name
+')' Punctuation
+'\n\t' Text
+'in' Keyword.Reserved
+'\n\t ' Text
+'Array' Name.Namespace
+'.' Punctuation
+'update' Name
+' ' Text
+'(' Punctuation
+'sgnArray' Name
+',' Punctuation
+' ' Text
+'cid' Name
+',' Punctuation
+' ' Text
+'newConDec' Name
+')' Punctuation
+'\n\t' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'constDef' Name.Function
+' ' Text
+'(' Punctuation
+'d' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'(' Punctuation
+'case' Keyword.Reserved
+' ' Text
+'sgnLookup' Name
+' ' Text
+'(' Punctuation
+'d' Name
+')' Punctuation
+'\n\t ' Text
+'of' Keyword.Reserved
+' ' Text
+'ConDef' Name
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'U' Name
+',' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'U' Name
+'\n\t ' Text
+'|' Name
+' ' Text
+'AbbrevDef' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'U' Name
+',' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'U' Name
+')' Punctuation
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'constType' Name.Function
+' ' Text
+'(' Punctuation
+'c' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'conDecType' Name
+' ' Text
+'(' Punctuation
+'sgnLookup' Name
+' ' Text
+'c' Name
+')' Punctuation
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'constImp' Name.Function
+' ' Text
+'(' Punctuation
+'c' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'conDecImp' Name
+' ' Text
+'(' Punctuation
+'sgnLookup' Name
+' ' Text
+'c' Name
+')' Punctuation
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'constUni' Name.Function
+' ' Text
+'(' Punctuation
+'c' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'conDecUni' Name
+' ' Text
+'(' Punctuation
+'sgnLookup' Name
+' ' Text
+'c' Name
+')' Punctuation
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'constBlock' Name.Function
+' ' Text
+'(' Punctuation
+'c' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'conDecBlock' Name
+' ' Text
+'(' Punctuation
+'sgnLookup' Name
+' ' Text
+'c' Name
+')' Punctuation
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'constStatus' Name.Function
+' ' Text
+'(' Punctuation
+'c' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'(' Punctuation
+'case' Keyword.Reserved
+' ' Text
+'sgnLookup' Name
+' ' Text
+'(' Punctuation
+'c' Name
+')' Punctuation
+'\n\t ' Text
+'of' Keyword.Reserved
+' ' Text
+'ConDec' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'status' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'status' Name
+'\n ' Text
+'|' Name
+' ' Text
+'_' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'Normal' Name
+')' Punctuation
+'\n\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'0' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'id' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'Shift' Name
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'1' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'shift' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'Shift' Name
+'(' Punctuation
+'1' Literal.Number.Integer
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'S' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'-' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+'.' Comment.Multiline
+'^' Comment.Multiline
+'0' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'-' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'-' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'invShift' Name.Variable
+' ' Text
+'=' Punctuation
+' ' Text
+'Dot' Name
+'(' Punctuation
+'Undef' Name
+',' Punctuation
+' ' Text
+'id' Name
+')' Punctuation
+'\n\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+'1' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'2' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' 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
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'2' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'1' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'comp' Name.Function
+' ' Text
+'(' Punctuation
+'Shift' Name
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'s' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'z' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'5' Comment.Multiline
+'%' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'n' 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
+'s' Comment.Multiline
+'u' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'w' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'.' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'e' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'4' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'0' Comment.Multiline
+':' Comment.Multiline
+'1' Comment.Multiline
+'5' Comment.Multiline
+':' Comment.Multiline
+'1' Comment.Multiline
+'6' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'9' Comment.Multiline
+'9' Comment.Multiline
+'8' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'comp' Name.Function
+' ' Text
+'(' Punctuation
+'s' Name
+',' Punctuation
+' ' Text
+'Shift' Name
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'s' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'comp' Name.Function
+' ' Text
+'(' Punctuation
+'Shift' Name
+' ' Text
+'(' Punctuation
+'n' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'Dot' Name
+' ' Text
+'(' Punctuation
+'Ft' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'comp' Name
+' ' Text
+'(' Punctuation
+'Shift' Name
+' ' Text
+'(' Punctuation
+'n' Name
+'-' Name
+'1' Literal.Number.Integer
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'comp' Name.Function
+' ' Text
+'(' Punctuation
+'Shift' Name
+' ' Text
+'(' Punctuation
+'n' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'Shift' Name
+' ' Text
+'(' Punctuation
+'m' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Shift' Name
+' ' Text
+'(' Punctuation
+'n' Name
+'+' Name
+'m' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'comp' Name.Function
+' ' Text
+'(' Punctuation
+'Dot' Name
+' ' Text
+'(' Punctuation
+'Ft' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+"s'" Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Dot' Name
+' ' Text
+'(' Punctuation
+'frontSub' Name
+' ' Text
+'(' Punctuation
+'Ft' Name
+',' Punctuation
+' ' Text
+"s'" Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'comp' Name
+' ' Text
+'(' Punctuation
+'s' Name
+',' Punctuation
+' ' Text
+"s'" Name
+')' Punctuation
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'k' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'(' Comment.Multiline
+'n' Comment.Multiline
+'+' Comment.Multiline
+'k' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'<' Comment.Multiline
+'n' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'bvarSub' Name.Function
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'Dot' Name
+'(' Punctuation
+'Ft' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Ft' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'bvarSub' Name.Function
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'Dot' Name
+'(' Punctuation
+'Ft' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'bvarSub' Name
+' ' Text
+'(' Punctuation
+'n' Name
+'-' Name
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'bvarSub' Name.Function
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'Shift' Name
+'(' Punctuation
+'k' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Idx' Name
+' ' Text
+'(' Punctuation
+'n' Name
+'+' Name
+'k' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'B' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'1' Comment.Multiline
+':' Comment.Multiline
+'5' Comment.Multiline
+'6' Comment.Multiline
+':' Comment.Multiline
+'4' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+'0' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'blockSub' Name.Function
+' ' Text
+'(' Punctuation
+'Bidx' Name
+' ' Text
+'k' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'(' Punctuation
+'case' Keyword.Reserved
+' ' Text
+'bvarSub' Name
+' ' Text
+'(' Punctuation
+'k' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+'\n\t ' Text
+'of' Keyword.Reserved
+' ' Text
+'Idx' Name
+' ' Text
+"k'" Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'Bidx' Name
+' ' Text
+"k'" Name
+'\n ' Text
+'|' Name
+' ' Text
+'Block' Name
+' ' Text
+'B' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'B' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'blockSub' Name.Function
+' ' Text
+'(' Punctuation
+'LVar' Name
+' ' Text
+'(' Punctuation
+'ref' Name
+' ' Text
+'(' Punctuation
+'SOME' Name
+' ' Text
+'B' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'sk' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'blockSub' Name
+' ' Text
+'(' Punctuation
+'B' Name
+',' Punctuation
+' ' Text
+'comp' Name
+' ' Text
+'(' Punctuation
+'sk' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'1' Comment.Multiline
+':' Comment.Multiline
+'1' Comment.Multiline
+'8' Comment.Multiline
+':' Comment.Multiline
+'3' Comment.Multiline
+'0' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+'0' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'-' Comment.Multiline
+'c' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'1' Comment.Multiline
+':' Comment.Multiline
+'2' Comment.Multiline
+'5' Comment.Multiline
+':' Comment.Multiline
+'4' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+'0' Comment.Multiline
+'2' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'w' Comment.Multiline
+'a' Comment.Multiline
+'y' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+'?' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'h' Comment.Multiline
+'u' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'6' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+':' Comment.Multiline
+'3' Comment.Multiline
+'0' Comment.Multiline
+':' Comment.Multiline
+'2' Comment.Multiline
+'6' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+'0' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'!' Comment.Multiline
+'!' Comment.Multiline
+'!' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'blockSub' Name.Function
+' ' Text
+'(' Punctuation
+'LVar' Name
+' ' Text
+'(' Punctuation
+'r' Name
+' ' Text
+'as' Keyword.Reserved
+' ' Text
+'ref' Name
+' ' Text
+'NONE' Name
+',' Punctuation
+' ' Text
+'sk' Name
+',' Punctuation
+' ' Text
+'(' Punctuation
+'l' Name
+',' Punctuation
+' ' Text
+'t' Name
+')' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' \n ' Text
+'LVar' Name
+'(' Punctuation
+'r' Name
+',' Punctuation
+' ' Text
+'comp' Name
+'(' Punctuation
+'sk' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'(' Punctuation
+'l' Name
+',' Punctuation
+' ' Text
+'t' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+'\t' Comment.Multiline
+'L' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'r' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+'k' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'t' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+'\n' Comment.Multiline
+
+'\t' Comment.Multiline
+'J' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'2' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+'1' Comment.Multiline
+'0' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'c' Comment.Multiline
+'s' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\t' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+'(' Comment.Multiline
+'^' Comment.Multiline
+'k' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'|' Punctuation
+' ' Text
+'blockSub' Name.Function
+' ' Text
+'(' Punctuation
+'L' Name
+' ' Text
+'as' Keyword.Reserved
+' ' Text
+'Inst' Name
+' ' Text
+'ULs' Name
+',' Punctuation
+' ' Text
+"s'" Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Inst' Name
+' ' Text
+'(' Punctuation
+'map' Name
+' ' Text
+'(' Punctuation
+'fn' Keyword.Reserved
+' ' Text
+'U' Name
+' ' Text
+'=>' Punctuation
+' ' Text
+'EClo' Name
+' ' Text
+'(' Punctuation
+'U' Name
+',' Punctuation
+' ' Text
+"s'" Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'ULs' Name
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'b' Comment.Multiline
+'o' Comment.Multiline
+'d' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+' \n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'t' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'T' Comment.Multiline
+'E' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'C' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'U' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+'u' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'d' Comment.Multiline
+'u' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'"' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+'"' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+',' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'n' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'E' Comment.Multiline
+'C' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'U' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+'>' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'and' Keyword.Reserved
+' ' Text
+'frontSub' Name.Function
+' ' Text
+'(' Punctuation
+'Idx' Name
+' ' Text
+'(' Punctuation
+'n' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'bvarSub' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'frontSub' Name.Function
+' ' Text
+'(' Punctuation
+'Exp' Name
+' ' Text
+'(' Punctuation
+'U' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Exp' Name
+' ' Text
+'(' Punctuation
+'EClo' Name
+' ' Text
+'(' Punctuation
+'U' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'frontSub' Name.Function
+' ' Text
+'(' Punctuation
+'Undef' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Undef' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'frontSub' Name.Function
+' ' Text
+'(' Punctuation
+'Block' Name
+' ' Text
+'(' Punctuation
+'B' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Block' Name
+' ' Text
+'(' Punctuation
+'blockSub' Name
+' ' Text
+'(' Punctuation
+'B' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'V' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'z' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'g' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'[' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'e' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'4' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'8' Comment.Multiline
+':' Comment.Multiline
+'3' Comment.Multiline
+'7' Comment.Multiline
+':' Comment.Multiline
+'4' Comment.Multiline
+'4' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'9' Comment.Multiline
+'9' Comment.Multiline
+'8' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'e' Comment.Multiline
+'m' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'f' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'w' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'e' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'4' Comment.Multiline
+' ' Comment.Multiline
+'2' Comment.Multiline
+'0' Comment.Multiline
+':' Comment.Multiline
+'2' Comment.Multiline
+'2' Comment.Multiline
+':' Comment.Multiline
+'2' Comment.Multiline
+'9' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'9' Comment.Multiline
+'9' Comment.Multiline
+'8' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'D' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'h' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'0' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'S' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'x' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'x' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'C' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+')' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'decSub' Name.Function
+' ' Text
+'(' Punctuation
+'Dec' Name
+' ' Text
+'(' Punctuation
+'x' Name
+',' Punctuation
+' ' Text
+'V' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Dec' Name
+' ' Text
+'(' Punctuation
+'x' Name
+',' Punctuation
+' ' Text
+'EClo' Name
+' ' Text
+'(' Punctuation
+'V' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'decSub' Name.Function
+' ' Text
+'(' Punctuation
+'NDec' Name
+' ' Text
+'x' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'NDec' Name
+' ' Text
+'x' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'decSub' Name.Function
+' ' Text
+'(' Punctuation
+'BDec' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'(' Punctuation
+'l' Name
+',' Punctuation
+' ' Text
+'t' Name
+')' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'BDec' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'(' Punctuation
+'l' Name
+',' Punctuation
+' ' Text
+'comp' Name
+' ' Text
+'(' Punctuation
+'t' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' 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
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+')' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'.' Comment.Multiline
+'t' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+'u' Comment.Multiline
+'b' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'z' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'g' Comment.Multiline
+'h' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'5' Comment.Multiline
+'%' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'n' 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
+'s' Comment.Multiline
+'u' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'w' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'.' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'e' Comment.Multiline
+'b' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'4' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'0' Comment.Multiline
+':' Comment.Multiline
+'1' Comment.Multiline
+'6' Comment.Multiline
+':' Comment.Multiline
+'1' Comment.Multiline
+'6' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+'9' Comment.Multiline
+'9' Comment.Multiline
+'8' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'f' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'dot1' Name.Function
+' ' Text
+'(' Punctuation
+'s' Name
+' ' Text
+'as' Keyword.Reserved
+' ' Text
+'Shift' Name
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Integer
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'s' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'dot1' Name.Function
+' ' Text
+'s' Name
+' ' Text
+'=' Punctuation
+' ' Text
+'Dot' Name
+' ' Text
+'(' Punctuation
+'Idx' Name
+'(' Punctuation
+'1' Literal.Number.Integer
+')' Punctuation
+',' Punctuation
+' ' Text
+'comp' Name
+'(' Punctuation
+'s' Name
+',' Punctuation
+' ' Text
+'shift' Name
+')' Punctuation
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'D' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'D' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'1' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+'\n' Comment.Multiline
+
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+',' Comment.Multiline
+'V' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+'V' Comment.Multiline
+')' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'invDot1' Name.Function
+' ' Text
+'(' Punctuation
+'s' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'comp' Name
+' ' Text
+'(' Punctuation
+'comp' Name
+'(' Punctuation
+'shift' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'invShift' Name
+')' Punctuation
+'\n\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'t' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'V' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'>' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'G' Comment.Multiline
+'|' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'z' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'G' 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
+'n' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'ctxDec' Name.Function
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'k' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'let' Keyword.Reserved
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+"'" Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'x' Comment.Multiline
+':' Comment.Multiline
+'V' Comment.Multiline
+'\n' Comment.Multiline
+
+'\t' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'^' Comment.Multiline
+'(' Comment.Multiline
+'k' Comment.Multiline
+'-' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+"'" Comment.Multiline
+"'" Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'1' Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'<' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\t' Text
+'fun' Keyword.Reserved
+' ' Text
+"ctxDec'" Name.Function
+' ' Text
+'(' Punctuation
+'Decl' Name
+' ' Text
+'(' Punctuation
+"G'" Name
+',' Punctuation
+' ' Text
+'Dec' Name
+' ' Text
+'(' Punctuation
+'x' Name
+',' Punctuation
+' ' Text
+"V'" Name
+')' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Dec' Name
+' ' Text
+'(' Punctuation
+'x' Name
+',' Punctuation
+' ' Text
+'EClo' Name
+' ' Text
+'(' Punctuation
+"V'" Name
+',' Punctuation
+' ' Text
+'Shift' Name
+' ' Text
+'(' Punctuation
+'k' Name
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\t ' Text
+'|' Punctuation
+' ' Text
+"ctxDec'" Name.Function
+' ' Text
+'(' Punctuation
+'Decl' Name
+' ' Text
+'(' Punctuation
+"G'" Name
+',' Punctuation
+' ' Text
+'BDec' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'(' Punctuation
+'l' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'BDec' Name
+' ' Text
+'(' Punctuation
+'n' Name
+',' Punctuation
+' ' Text
+'(' Punctuation
+'l' Name
+',' Punctuation
+' ' Text
+'comp' Name
+' ' Text
+'(' Punctuation
+'s' Name
+',' Punctuation
+' ' Text
+'Shift' Name
+' ' Text
+'(' Punctuation
+'k' Name
+')' Punctuation
+')' Punctuation
+')' Punctuation
+')' Punctuation
+'\n\t ' Text
+'|' Punctuation
+' ' Text
+"ctxDec'" Name.Function
+' ' Text
+'(' Punctuation
+'Decl' Name
+' ' Text
+'(' Punctuation
+"G'" Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+"k'" Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+"ctxDec'" Name
+' ' Text
+'(' Punctuation
+"G'" Name
+',' Punctuation
+' ' Text
+"k'" Name
+'-' Name
+'1' Literal.Number.Integer
+')' Punctuation
+'\n\t ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+"'" Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'N' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'l' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+"'" Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'c' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'in' Keyword.Reserved
+'\n\t' Text
+"ctxDec'" Name
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'k' Name
+')' Punctuation
+'\n ' Text
+'end' Keyword.Reserved
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'\n' 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
+'I' Comment.Multiline
+'n' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+':' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'v' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'l' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'O' Comment.Multiline
+'M' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'L' Comment.Multiline
+'O' Comment.Multiline
+'C' Comment.Multiline
+'K' Comment.Multiline
+' ' Comment.Multiline
+'L' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'k' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'i' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'v' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'blockDec' Name.Function
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'v' Name
+' ' Text
+'as' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'Bidx' Name
+' ' Text
+'k' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'i' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'let' Keyword.Reserved
+' \n ' Text
+'val' Keyword.Reserved
+' ' Text
+'BDec' Name.Variable
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'(' Punctuation
+'l' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'ctxDec' Name
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'k' Name
+')' Punctuation
+' \n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'val' Keyword.Reserved
+' ' Text
+'(' Punctuation
+'Gsome' Name
+',' Punctuation
+' ' Text
+'Lblock' Name
+')' Punctuation
+' ' Text
+'=' Name.Variable
+' ' Text
+'conDecBlock' Name
+' ' Text
+'(' Punctuation
+'sgnLookup' Name
+' ' Text
+'l' Name
+')' Punctuation
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+"blockDec'" Name.Function
+' ' Text
+'(' Punctuation
+'t' Name
+',' Punctuation
+' ' Text
+'D' Name
+' ' Text
+'::' Name
+' ' Text
+'L' Name
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'j' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'decSub' Name
+' ' Text
+'(' Punctuation
+'D' Name
+',' Punctuation
+' ' Text
+'t' Name
+')' Punctuation
+'\n\t' Text
+'|' Punctuation
+' ' Text
+"blockDec'" Name.Function
+' ' Text
+'(' Punctuation
+'t' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+' ' Text
+'::' Name
+' ' Text
+'L' Name
+',' Punctuation
+' ' Text
+'n' Name
+',' Punctuation
+' ' Text
+'j' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n\t ' Text
+"blockDec'" Name
+' ' Text
+'(' Punctuation
+'Dot' Name
+' ' Text
+'(' Punctuation
+'Exp' Name
+' ' Text
+'(' Punctuation
+'Root' Name
+' ' Text
+'(' Punctuation
+'Proj' Name
+' ' Text
+'(' Punctuation
+'v' Name
+',' Punctuation
+' ' Text
+'j' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'Nil' Name
+')' Punctuation
+')' Punctuation
+',' Punctuation
+' ' Text
+'t' Name
+')' Punctuation
+',' Punctuation
+'\n\t\t\t ' Text
+'L' Name
+',' Punctuation
+' ' Text
+'n' Name
+'-' Name
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'j' Name
+'+' Name
+'1' Literal.Number.Integer
+')' Punctuation
+'\n ' Text
+'in' Keyword.Reserved
+'\n ' Text
+"blockDec'" Name
+' ' Text
+'(' Punctuation
+'s' Name
+',' Punctuation
+' ' Text
+'Lblock' Name
+',' Punctuation
+' ' Text
+'i' Name
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+')' Punctuation
+'\n ' Text
+'end' Keyword.Reserved
+'\n\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'w' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'w' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'C' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'newEVar' Name.Function
+' ' Text
+'(' Punctuation
+'G' Name
+',' Punctuation
+' ' Text
+'V' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'EVar' Name
+'(' Punctuation
+'ref' Name
+' ' Text
+'NONE' Name
+',' Punctuation
+' ' Text
+'G' Name
+',' Punctuation
+' ' Text
+'V' Name
+',' Punctuation
+' ' Text
+'ref' Name
+' ' Text
+'nil' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'w' Comment.Multiline
+'A' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'w' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'A' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'r' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'x' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'newAVar' Name.Function
+' ' Text
+'(' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'AVar' Name
+'(' Punctuation
+'ref' Name
+' ' Text
+'NONE' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'w' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'G' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'w' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'G' Comment.Multiline
+' ' Comment.Multiline
+'|' Comment.Multiline
+'-' Comment.Multiline
+' ' Comment.Multiline
+'X' Comment.Multiline
+' ' Comment.Multiline
+':' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'newTypeVar' Name.Function
+' ' Text
+'(' Punctuation
+'G' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'EVar' Name
+'(' Punctuation
+'ref' Name
+' ' Text
+'NONE' Name
+',' Punctuation
+' ' Text
+'G' Name
+',' Punctuation
+' ' Text
+'Uni' Name
+'(' Punctuation
+'Type' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'ref' Name
+' ' Text
+'nil' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'w' Comment.Multiline
+'L' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'l' Comment.Multiline
+'[' Comment.Multiline
+'s' Comment.Multiline
+']' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'newLVar' Name.Function
+' ' Text
+'(' Punctuation
+'sk' Name
+',' Punctuation
+' ' Text
+'(' Punctuation
+'cid' Name
+',' Punctuation
+' ' Text
+'t' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'LVar' Name
+' ' Text
+'(' Punctuation
+'ref' Name
+' ' Text
+'NONE' Name
+',' Punctuation
+' ' Text
+'sk' Name
+',' Punctuation
+' ' Text
+'(' Punctuation
+'cid' Name
+',' Punctuation
+' ' Text
+'t' Name
+')' Punctuation
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+'O' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'U' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'O' Comment.Multiline
+'M' Comment.Multiline
+'E' Comment.Multiline
+'(' Comment.Multiline
+'H' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'m' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'headOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Root' Name
+' ' Text
+'(' Punctuation
+'H' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'SOME' Name
+'(' Punctuation
+'H' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'headOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Lam' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'U' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'headOpt' Name
+' ' Text
+'U' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'headOpt' Name.Function
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'NONE' Name
+'\n\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+"ancestor'" Name.Function
+' ' Text
+'(' Punctuation
+'NONE' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Anc' Name
+'(' Punctuation
+'NONE' Name
+',' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'NONE' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+"ancestor'" Name.Function
+' ' Text
+'(' Punctuation
+'SOME' Name
+'(' Punctuation
+'Const' Name
+'(' Punctuation
+'c' Name
+')' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'Anc' Name
+'(' Punctuation
+'SOME' Name
+'(' Punctuation
+'c' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'SOME' Name
+'(' Punctuation
+'c' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+"ancestor'" Name.Function
+' ' Text
+'(' Punctuation
+'SOME' Name
+'(' Punctuation
+'Def' Name
+'(' Punctuation
+'d' Name
+')' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'(' Punctuation
+'case' Keyword.Reserved
+' ' Text
+'sgnLookup' Name
+'(' Punctuation
+'d' Name
+')' Punctuation
+'\n\t ' Text
+'of' Keyword.Reserved
+' ' Text
+'ConDef' Name
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'Anc' Name
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'height' Name
+',' Punctuation
+' ' Text
+'cOpt' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'=>' Punctuation
+' ' Text
+'Anc' Name
+'(' Punctuation
+'SOME' Name
+'(' Punctuation
+'d' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'height' Name
+'+' Name
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'cOpt' Name
+')' Punctuation
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+"ancestor'" Name.Function
+' ' Text
+'(' Punctuation
+'SOME' Name
+' ' Text
+'_' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'o' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'B' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'m' Comment.Multiline
+'p' Comment.Multiline
+'o' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'Anc' Name
+'(' Punctuation
+'NONE' Name
+',' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'NONE' Name
+')' Punctuation
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'(' Comment.Multiline
+'U' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'ancestor' Name.Function
+' ' Text
+'(' Punctuation
+'U' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+"ancestor'" Name
+' ' Text
+'(' Punctuation
+'headOpt' Name
+' ' Text
+'U' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'A' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+'(' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'defAncestor' Name.Function
+' ' Text
+'(' Punctuation
+'d' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+'\n ' Text
+'(' Punctuation
+'case' Keyword.Reserved
+' ' Text
+'sgnLookup' Name
+'(' Punctuation
+'d' Name
+')' Punctuation
+'\n\t ' Text
+'of' Keyword.Reserved
+' ' Text
+'ConDef' Name
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+',' Punctuation
+' ' Text
+'anc' Name
+')' Punctuation
+' ' Text
+'=>' Punctuation
+' ' Text
+'anc' Name
+')' Punctuation
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'T' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'l' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'e' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'H' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+'O' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'V' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'O' Comment.Multiline
+'M' Comment.Multiline
+'E' Comment.Multiline
+'(' Comment.Multiline
+'H' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'H' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'b' Comment.Multiline
+'j' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'.' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'o' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'n' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'.' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'s' Comment.Multiline
+'h' Comment.Multiline
+'o' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'p' Comment.Multiline
+'o' Comment.Multiline
+'s' Comment.Multiline
+'s' Comment.Multiline
+'i' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+'e' Comment.Multiline
+'?' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'s' Comment.Multiline
+'o' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'F' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'O' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'-' Comment.Multiline
+'k' Comment.Multiline
+'w' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'targetHeadOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Root' Name
+' ' Text
+'(' Punctuation
+'H' Name
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'SOME' Name
+'(' Punctuation
+'H' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetHeadOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Pi' Name
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetHeadOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetHeadOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Redex' Name
+' ' Text
+'(' Punctuation
+'V' Name
+',' Punctuation
+' ' Text
+'S' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetHeadOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetHeadOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Lam' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetHeadOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetHeadOpt' Name.Function
+' ' Text
+'(' Punctuation
+'EVar' Name
+' ' Text
+'(' Punctuation
+'ref' Name
+' ' Text
+'(' Punctuation
+'SOME' Name
+'(' Punctuation
+'V' Name
+')' Punctuation
+')' Punctuation
+',' Punctuation
+'_' Punctuation
+',' Punctuation
+'_' Punctuation
+',' Punctuation
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetHeadOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetHeadOpt' Name.Function
+' ' Text
+'(' Punctuation
+'EClo' Name
+' ' Text
+'(' Punctuation
+'V' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetHeadOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetHeadOpt' Name.Function
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'NONE' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'B' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'F' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'F' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'(' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+',' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+'\n' 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
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'S' Comment.Multiline
+'k' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+"'" Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'c' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'H' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'A' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'H' Comment.Multiline
+'e' Comment.Multiline
+'a' Comment.Multiline
+'d' Comment.Multiline
+'O' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'targetHead' Name.Function
+' ' Text
+'(' Punctuation
+'A' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'valOf' Name
+' ' Text
+'(' Punctuation
+'targetHeadOpt' Name
+' ' Text
+'A' Name
+')' Punctuation
+'\n \n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'F' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'O' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'V' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'S' Comment.Multiline
+'O' Comment.Multiline
+'M' Comment.Multiline
+'E' Comment.Multiline
+'(' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'w' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'l' Comment.Multiline
+'y' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'h' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'m' Comment.Multiline
+'i' Comment.Multiline
+'c' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+',' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'k' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'b' Comment.Multiline
+'j' Comment.Multiline
+'e' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'h' Comment.Multiline
+'a' Comment.Multiline
+'v' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'i' Comment.Multiline
+'a' Comment.Multiline
+'b' Comment.Multiline
+'l' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'.' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'D' Comment.Multiline
+'o' Comment.Multiline
+'e' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'d' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'.' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Root' Name
+' ' Text
+'(' Punctuation
+'Const' Name
+'(' Punctuation
+'cid' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'SOME' Name
+'(' Punctuation
+'cid' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Pi' Name
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetFamOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Root' Name
+' ' Text
+'(' Punctuation
+'Def' Name
+'(' Punctuation
+'cid' Name
+')' Punctuation
+',' Punctuation
+' ' Text
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetFamOpt' Name
+' ' Text
+'(' Punctuation
+'constDef' Name
+' ' Text
+'cid' Name
+')' Punctuation
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Redex' Name
+' ' Text
+'(' Punctuation
+'V' Name
+',' Punctuation
+' ' Text
+'S' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetFamOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'(' Punctuation
+'Lam' Name
+' ' Text
+'(' Punctuation
+'_' Punctuation
+',' Punctuation
+' ' Text
+'V' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetFamOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'(' Punctuation
+'EVar' Name
+' ' Text
+'(' Punctuation
+'ref' Name
+' ' Text
+'(' Punctuation
+'SOME' Name
+'(' Punctuation
+'V' Name
+')' Punctuation
+')' Punctuation
+',' Punctuation
+'_' Punctuation
+',' Punctuation
+'_' Punctuation
+',' Punctuation
+'_' Punctuation
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetFamOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'(' Punctuation
+'EClo' Name
+' ' Text
+'(' Punctuation
+'V' Name
+',' Punctuation
+' ' Text
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'targetFamOpt' Name
+' ' Text
+'V' Name
+'\n ' Text
+'|' Punctuation
+' ' Text
+'targetFamOpt' Name.Function
+' ' Text
+'_' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'NONE' Name
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'B' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'F' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'R' Comment.Multiline
+'o' Comment.Multiline
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'F' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'C' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' 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
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'E' Comment.Multiline
+'V' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'(' Comment.Multiline
+'r' Comment.Multiline
+'e' Comment.Multiline
+'f' Comment.Multiline
+' ' Comment.Multiline
+'N' Comment.Multiline
+'O' Comment.Multiline
+'N' Comment.Multiline
+'E' Comment.Multiline
+',' Comment.Multiline
+'.' Comment.Multiline
+'.' Comment.Multiline
+')' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'U' Comment.Multiline
+'n' Comment.Multiline
+'i' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'F' Comment.Multiline
+'g' Comment.Multiline
+'n' Comment.Multiline
+'E' Comment.Multiline
+'x' Comment.Multiline
+'p' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+'\n' 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
+'o' Comment.Multiline
+'t' Comment.Multiline
+'(' Comment.Multiline
+'S' Comment.Multiline
+'k' Comment.Multiline
+'o' Comment.Multiline
+'n' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'_' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'c' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+"'" Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'o' Comment.Multiline
+'c' Comment.Multiline
+'c' Comment.Multiline
+'u' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'F' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+' ' Comment.Multiline
+'(' Comment.Multiline
+'A' Comment.Multiline
+')' Comment.Multiline
+' ' Comment.Multiline
+'=' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'s' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'a' Comment.Multiline
+'r' Comment.Multiline
+'g' Comment.Multiline
+'e' Comment.Multiline
+'t' Comment.Multiline
+'F' Comment.Multiline
+'a' Comment.Multiline
+'m' Comment.Multiline
+'O' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+',' Comment.Multiline
+' ' Comment.Multiline
+'e' Comment.Multiline
+'x' Comment.Multiline
+'c' Comment.Multiline
+'e' Comment.Multiline
+'p' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'V' Comment.Multiline
+' ' Comment.Multiline
+'m' Comment.Multiline
+'u' Comment.Multiline
+'s' Comment.Multiline
+'t' Comment.Multiline
+' ' Comment.Multiline
+'b' Comment.Multiline
+'e' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+' ' Comment.Multiline
+'v' Comment.Multiline
+'a' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'d' Comment.Multiline
+' ' Comment.Multiline
+'t' Comment.Multiline
+'y' Comment.Multiline
+'p' Comment.Multiline
+'e' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n ' Text
+'fun' Keyword.Reserved
+' ' Text
+'targetFam' Name.Function
+' ' Text
+'(' Punctuation
+'A' Name
+')' Punctuation
+' ' Text
+'=' Punctuation
+' ' Text
+'valOf' Name
+' ' Text
+'(' Punctuation
+'targetFamOpt' Name
+' ' Text
+'A' Name
+')' Punctuation
+'\n \n' Text
+
+'end' Keyword.Reserved
+';' Punctuation
+' ' Text
+'(*' Comment.Multiline
+' ' Comment.Multiline
+'f' Comment.Multiline
+'u' Comment.Multiline
+'n' Comment.Multiline
+'c' Comment.Multiline
+'t' Comment.Multiline
+'o' Comment.Multiline
+'r' Comment.Multiline
+' ' Comment.Multiline
+'I' Comment.Multiline
+'n' Comment.Multiline
+'t' Comment.Multiline
+'S' Comment.Multiline
+'y' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'*)' Comment.Multiline
+'\n\n' Text
+
+'structure' Keyword.Reserved
+' ' Text
+'IntSyn' Name.Namespace
+' ' Text
+':>' Punctuation
+' ' Text
+'INTSYN' Name
+' ' Text
+'=' Punctuation
+'\n ' Text
+'IntSyn' Name
+' ' Text
+'(' Punctuation
+'structure' Keyword.Reserved
+' ' Text
+'Global' Name.Namespace
+' ' Text
+'=' Punctuation
+' ' Text
+'Global' Name
+')' Punctuation
+';' Punctuation
+'\n' Text
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