summaryrefslogtreecommitdiff
path: root/tests/lexers/hx/example2.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lexers/hx/example2.txt')
-rw-r--r--tests/lexers/hx/example2.txt1907
1 files changed, 1907 insertions, 0 deletions
diff --git a/tests/lexers/hx/example2.txt b/tests/lexers/hx/example2.txt
new file mode 100644
index 00000000..14961448
--- /dev/null
+++ b/tests/lexers/hx/example2.txt
@@ -0,0 +1,1907 @@
+---input---
+/**
+ * This is not really a valid Haxe file, but just an demo...
+ */
+
+package;
+package net.onthewings;
+
+import net.onthewings.Test;
+import net.onthewings.*;
+
+using Lambda;
+using net.onthewings.Test;
+
+#if flash8
+// Haxe code specific for flash player 8
+#elseif flash
+// Haxe code specific for flash platform (any version)
+#elseif js
+// Haxe code specific for javascript plaform
+#elseif neko
+// Haxe code specific for neko plaform
+#else
+// do something else
+ #error // will display an error "Not implemented on this platform"
+ #error "Custom error message" // will display an error "Custom error message"
+#end
+
+0; // Int
+-134; // Int
+0xFF00; // Int
+
+123.0; // Float
+.14179; // Float
+13e50; // Float
+-1e-99; // Float
+
+"hello"; // String
+"hello \"world\" !"; // String
+'hello "world" !'; // String
+
+true; // Bool
+false; // Bool
+
+null; // Unknown<0>
+
+~/[a-z]+/i; // EReg : regular expression
+
+var point = { "x" : 1, "y" : -5 };
+
+{
+ var x;
+ var y = 3;
+ var z : String;
+ var w : String = "";
+ var a, b : Bool, c : Int = 0;
+}
+
+//haxe3 pattern matching
+switch(e.expr) {
+ case EConst(CString(s)) if (StringTools.startsWith(s, "foo")):
+ "1";
+ case EConst(CString(s)) if (StringTools.startsWith(s, "bar")):
+ "2";
+ case EConst(CInt(i)) if (switch(Std.parseInt(i) * 2) { case 4: true; case _: false; }):
+ "3";
+ case EConst(_):
+ "4";
+ case _:
+ "5";
+}
+
+switch [true, 1, "foo"] {
+ case [true, 1, "foo"]: "0";
+ case [true, 1, _]: "1";
+ case _: "_";
+}
+
+
+class Test <T:Void->Void> {
+ private function new():Void {
+ inline function innerFun(a:Int, b:Int):Int {
+ return readOnlyField = a + b;
+ }
+
+ _innerFun(1, 2.3);
+ }
+
+ static public var instance(get,null):Test;
+ static function get_instance():Test {
+ return instance != null ? instance : instance = new Test();
+ }
+}
+
+@:native("Test") private class Test2 {}
+
+extern class Ext {}
+
+@:macro class M {
+ @:macro static function test(e:Array<Expr>):ExprOf<String> {
+ return macro "ok";
+ }
+}
+
+enum Color {
+ Red;
+ Green;
+ Blue;
+ Grey( v : Int );
+ Rgb( r : Int, g : Int, b : Int );
+ Alpha( a : Int, col : Color );
+}
+
+class Colors {
+ static function toInt( c : Color ) : Int {
+ return switch( c ) {
+ case Red: 0xFF0000;
+ case Green: 0x00FF00;
+ case Blue: 0x0000FF;
+ case Grey(v): (v << 16) | (v << 8) | v;
+ case Rgb(r,g,b): (r << 16) | (g << 8) | b;
+ case Alpha(a,c): (a << 24) | (toInt(c) & 0xFFFFFF);
+ }
+ }
+}
+
+class EvtQueue<T : (Event, EventDispatcher)> {
+ var evt : T;
+}
+
+typedef DS = Dynamic<String>;
+typedef Pt = {
+ var x:Float;
+ var y:Float;
+ @:optional var z:Float; /* optional z */
+ function add(pt:Pt):Void;
+}
+typedef Pt2 = {
+ x:Float,
+ y:Float,
+ ?z:Float, //optional z
+ add : Point -> Void,
+}
+
+
+//top-level class members
+public function test();
+private var attr(get, set) = 1;
+
+
+//pre-proc number
+public static inline function indexOf<T>(arr:Array<T>, v:T) : Int
+{
+ #if (haxe_ver >= 3.1)
+ return arr.indexOf(v);
+ #else
+ #if (flash || js)
+ return untyped arr.indexOf(v);
+ #else
+ return std.Lambda.indexOf(arr, v);
+ #end
+ #end
+}
+
+//macro reification
+var e = macro var $myVar = 0;
+var e = macro ${v}.toLowerCase();
+var e = macro o.$myField;
+var e = macro { $myField : 0 };
+var e = macro $i{varName}++;
+var e = macro $v{myStr};
+var args = [macro "sub", macro 3];
+var e = macro "Hello".toLowerCase($a{args});
+(macro $i{tmp}.addAtom($v{name}, $atom)).finalize(op.pos);
+
+var c = macro class MyClass {
+ public function new() { }
+ public function $funcName() {
+ trace($v{funcName} + " was called");
+ }
+}
+
+var c = macro interface IClass {};
+
+//macro class could have no name...
+var def = macro class {
+ private inline function new(loader) this = loader;
+ private var loader(get,never) : $loaderType;
+ inline private function get_loader() : $loaderType return this;
+};
+
+//ECheckType
+var f = (123:Float);
+
+---tokens---
+'/**\n * This is not really a valid Haxe file, but just an demo...\n */' Comment.Multiline
+'\n\n' Text
+
+'package' Keyword.Namespace
+';' Punctuation
+'\n' Text
+
+'package' Keyword.Namespace
+' ' Text
+'net' Name.Namespace
+'.' Punctuation
+'onthewings' Name.Namespace
+';' Punctuation
+'\n\n' Text
+
+'import' Keyword.Namespace
+' ' Text
+'net' Name.Namespace
+'.' Punctuation
+'onthewings' Name.Namespace
+'.' Punctuation
+'Test' Name.Namespace
+';' Punctuation
+'\n' Text
+
+'import' Keyword.Namespace
+' ' Text
+'net' Name.Namespace
+'.' Punctuation
+'onthewings' Name.Namespace
+'.' Punctuation
+'*' Keyword
+';' Punctuation
+'\n\n' Text
+
+'using' Keyword.Namespace
+' ' Text
+'Lambda' Name.Namespace
+';' Punctuation
+'\n' Text
+
+'using' Keyword.Namespace
+' ' Text
+'net' Name.Namespace
+'.' Punctuation
+'onthewings' Name.Namespace
+'.' Punctuation
+'Test' Name.Namespace
+';' Punctuation
+'\n\n' Text
+
+'#if' Comment.Preproc
+' ' Comment.Preproc
+'flash8' Comment.Preproc
+'\n' Text
+
+'// Haxe code specific for flash player 8' Comment.Single
+'\n' Text
+
+'#elseif' Comment.Preproc
+' ' Comment.Preproc
+'flash' Comment.Preproc
+'\n' Text
+
+'// Haxe code specific for flash platform (any version)' Comment.Single
+'\n' Text
+
+'#elseif' Comment.Preproc
+' ' Comment.Preproc
+'js' Comment.Preproc
+'\n' Text
+
+'// Haxe code specific for javascript plaform' Comment.Single
+'\n' Text
+
+'#elseif' Comment.Preproc
+' ' Comment.Preproc
+'neko' Comment.Preproc
+'\n' Text
+
+'// Haxe code specific for neko plaform' Comment.Single
+'\n' Text
+
+'#else' Comment.Preproc
+' \n' Text
+
+'// do something else' Comment.Single
+'\n ' Text
+'#error' Comment.Preproc
+' ' Comment.Preproc
+'// will display an error "Not implemented on this platform"' Comment.Single
+'\n ' Text
+'#error' Comment.Preproc
+' ' Comment.Preproc
+'"' Literal.String.Double
+'C' Literal.String.Double
+'u' Literal.String.Double
+'s' Literal.String.Double
+'t' Literal.String.Double
+'o' Literal.String.Double
+'m' Literal.String.Double
+' ' Literal.String.Double
+'e' Literal.String.Double
+'r' Literal.String.Double
+'r' Literal.String.Double
+'o' Literal.String.Double
+'r' Literal.String.Double
+' ' Literal.String.Double
+'m' Literal.String.Double
+'e' Literal.String.Double
+'s' Literal.String.Double
+'s' Literal.String.Double
+'a' Literal.String.Double
+'g' Literal.String.Double
+'e' Literal.String.Double
+'"' Literal.String.Double
+' ' Text
+'// will display an error "Custom error message"' Comment.Single
+'\n' Text
+
+'#end' Comment.Preproc
+'\n\n' Text
+
+'' Text
+'0' Literal.Number.Integer
+';' Punctuation
+' ' Text
+'// Int' Comment.Single
+'\n' Text
+
+'' Text
+'-' Operator
+'134' Literal.Number.Integer
+';' Punctuation
+' ' Text
+'// Int' Comment.Single
+'\n' Text
+
+'' Text
+'0xFF00' Literal.Number.Hex
+';' Punctuation
+' ' Text
+'// Int' Comment.Single
+'\n\n' Text
+
+'' Text
+'123.0' Literal.Number.Float
+';' Punctuation
+' ' Text
+'// Float' Comment.Single
+'\n' Text
+
+'' Text
+'.14179' Literal.Number.Float
+';' Punctuation
+' ' Text
+'// Float' Comment.Single
+'\n' Text
+
+'' Text
+'13e50' Literal.Number.Float
+';' Punctuation
+' ' Text
+'// Float' Comment.Single
+'\n' Text
+
+'' Text
+'-' Operator
+'1e-99' Literal.Number.Float
+';' Punctuation
+' ' Text
+'// Float' Comment.Single
+'\n\n' Text
+
+'' Text
+'"' Literal.String.Double
+'h' Literal.String.Double
+'e' Literal.String.Double
+'l' Literal.String.Double
+'l' Literal.String.Double
+'o' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+' ' Text
+'// String' Comment.Single
+'\n' Text
+
+'' Text
+'"' Literal.String.Double
+'h' Literal.String.Double
+'e' Literal.String.Double
+'l' Literal.String.Double
+'l' Literal.String.Double
+'o' Literal.String.Double
+' ' Literal.String.Double
+'\\"' Literal.String.Escape
+'w' Literal.String.Double
+'o' Literal.String.Double
+'r' Literal.String.Double
+'l' Literal.String.Double
+'d' Literal.String.Double
+'\\"' Literal.String.Escape
+' ' Literal.String.Double
+'!' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+' ' Text
+'// String' Comment.Single
+'\n' Text
+
+'' Text
+"'" Literal.String.Single
+'h' Literal.String.Single
+'e' Literal.String.Single
+'l' Literal.String.Single
+'l' Literal.String.Single
+'o' Literal.String.Single
+' ' Literal.String.Single
+'"' Literal.String.Single
+'w' Literal.String.Single
+'o' Literal.String.Single
+'r' Literal.String.Single
+'l' Literal.String.Single
+'d' Literal.String.Single
+'"' Literal.String.Single
+' ' Literal.String.Single
+'!' Literal.String.Single
+"'" Literal.String.Single
+';' Punctuation
+' ' Text
+'// String' Comment.Single
+'\n\n' Text
+
+'' Text
+'true' Keyword.Constant
+';' Punctuation
+' ' Text
+'// Bool' Comment.Single
+'\n' Text
+
+'' Text
+'false' Keyword.Constant
+';' Punctuation
+' ' Text
+'// Bool' Comment.Single
+'\n\n' Text
+
+'' Text
+'null' Keyword.Constant
+';' Punctuation
+' ' Text
+'// Unknown<0>' Comment.Single
+'\n\n' Text
+
+'' Text
+'~/[a-z]+/i' Literal.String.Regex
+';' Punctuation
+' ' Text
+'// EReg : regular expression' Comment.Single
+'\n\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'point' Text
+' ' Text
+'=' Operator
+' ' Text
+'{' Punctuation
+' ' Text
+'"' Literal.String.Double
+'x' Literal.String.Double
+'"' Literal.String.Double
+' ' Text
+':' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'y' Literal.String.Double
+'"' Literal.String.Double
+' ' Text
+':' Punctuation
+' ' Text
+'-' Operator
+'5' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n\n' Text
+
+'' Text
+'{' Punctuation
+'\n ' Text
+'var' Keyword.Declaration
+' ' Text
+'x' Text
+';' Punctuation
+'\n ' Text
+'var' Keyword.Declaration
+' ' Text
+'y' Text
+' ' Text
+'=' Operator
+' ' Text
+'3' Literal.Number.Integer
+';' Punctuation
+'\n ' Text
+'var' Keyword.Declaration
+' ' Text
+'z' Text
+' ' Text
+':' Punctuation
+' ' Text
+'String' Name
+';' Punctuation
+'\n ' Text
+'var' Keyword.Declaration
+' ' Text
+'w' Text
+' ' Text
+':' Punctuation
+' ' Text
+'String' Name
+' ' Text
+'=' Operator
+' ' Text
+'"' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n ' Text
+'var' Keyword.Declaration
+' ' Text
+'a' Text
+',' Punctuation
+' ' Text
+'b' Text
+' ' Text
+':' Punctuation
+' ' Text
+'Bool' Name
+',' Punctuation
+' ' Text
+'c' Text
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'//haxe3 pattern matching' Comment.Single
+'\n' Text
+
+'' Text
+'switch' Keyword
+'(' Punctuation
+'e' Name
+'.' Punctuation
+'expr' Name
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'EConst' Name
+'(' Punctuation
+'CString' Name
+'(' Punctuation
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'StringTools' Name
+'.' Punctuation
+'startsWith' Name
+'(' Punctuation
+'s' Name
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'f' Literal.String.Double
+'o' Literal.String.Double
+'o' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+')' Punctuation
+':' Punctuation
+'\n\t\t' Text
+'' Keyword
+'"' Literal.String.Double
+'1' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'EConst' Name
+'(' Punctuation
+'CString' Name
+'(' Punctuation
+'s' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'StringTools' Name
+'.' Punctuation
+'startsWith' Name
+'(' Punctuation
+'s' Name
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'b' Literal.String.Double
+'a' Literal.String.Double
+'r' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+')' Punctuation
+':' Punctuation
+'\n\t\t' Text
+'' Keyword
+'"' Literal.String.Double
+'2' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'EConst' Name
+'(' Punctuation
+'CInt' Name
+'(' Punctuation
+'i' Name
+')' Punctuation
+')' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'switch' Keyword
+'(' Punctuation
+'Std' Name
+'.' Punctuation
+'parseInt' Name
+'(' Punctuation
+'i' Name
+')' Punctuation
+' ' Text
+'*' Operator
+' ' Text
+'2' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'case' Keyword
+' ' Text
+'4' Literal.Number.Integer
+':' Punctuation
+' ' Text
+'' Keyword
+'true' Keyword.Constant
+';' Punctuation
+' ' Text
+'case' Keyword
+' ' Text
+'_' Name
+':' Punctuation
+' ' Text
+'' Keyword
+'false' Keyword.Constant
+';' Punctuation
+' ' Text
+'}' Punctuation
+')' Punctuation
+':' Punctuation
+'\n\t\t' Text
+'' Keyword
+'"' Literal.String.Double
+'3' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'EConst' Name
+'(' Punctuation
+'_' Name
+')' Punctuation
+':' Punctuation
+'\n\t\t' Text
+'' Keyword
+'"' Literal.String.Double
+'4' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'_' Name
+':' Punctuation
+'\n\t\t' Text
+'' Keyword
+'"' Literal.String.Double
+'5' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'' Text
+'switch' Keyword
+' ' Text
+'[' Punctuation
+'true' Keyword.Constant
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'f' Literal.String.Double
+'o' Literal.String.Double
+'o' Literal.String.Double
+'"' Literal.String.Double
+']' Punctuation
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'[' Punctuation
+'true' Keyword.Constant
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'f' Literal.String.Double
+'o' Literal.String.Double
+'o' Literal.String.Double
+'"' Literal.String.Double
+']' Punctuation
+':' Punctuation
+' ' Text
+'' Keyword
+'"' Literal.String.Double
+'0' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'[' Punctuation
+'true' Keyword.Constant
+',' Punctuation
+' ' Text
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'_' Name
+']' Punctuation
+':' Punctuation
+' ' Text
+'' Keyword
+'"' Literal.String.Double
+'1' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n\t' Text
+'case' Keyword
+' ' Text
+'_' Name
+':' Punctuation
+' ' Text
+'' Keyword
+'"' Literal.String.Double
+'_' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n\n' Text
+
+'class' Keyword.Declaration
+' ' Text
+'Test' Name
+' ' Text
+'<' Punctuation
+'T' Name
+':' Punctuation
+'Void' Name
+'->' Punctuation
+'Void' Name
+'>' Punctuation
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'private' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'new' Name.Function
+'(' Punctuation
+')' Punctuation
+':' Punctuation
+'Void' Name
+' ' Text
+'{' Punctuation
+'\n\t\t' Text
+'inline' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'innerFun' Name.Function
+'(' Punctuation
+'a' Name
+':' Punctuation
+'Int' Name
+',' Punctuation
+' ' Text
+'b' Name
+':' Punctuation
+'Int' Name
+')' Punctuation
+':' Punctuation
+'Int' Name
+' ' Text
+'{' Punctuation
+'\n\t\t\t' Text
+'return' Keyword
+' ' Text
+'readOnlyField' Name
+' ' Text
+'=' Operator
+' ' Text
+'a' Name
+' ' Text
+'+' Operator
+' ' Text
+'b' Name
+';' Punctuation
+'\n\t\t' Text
+'}' Punctuation
+'\n\t\t\n\t\t' Text
+'_innerFun' Name
+'(' Punctuation
+'1' Literal.Number.Integer
+',' Punctuation
+' ' Text
+'2.3' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+'\n\t' Text
+'}' Punctuation
+'\n\t\n\t' Text
+'static' Keyword.Declaration
+' ' Text
+'public' Keyword.Declaration
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'instance' Text
+'(' Punctuation
+'get' Keyword
+',' Punctuation
+'null' Keyword
+')' Punctuation
+':' Punctuation
+'Test' Name
+';' Punctuation
+'\n\t' Text
+'static' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'get_instance' Name.Function
+'(' Punctuation
+')' Punctuation
+':' Punctuation
+'Test' Name
+' ' Text
+'{' Punctuation
+'\n\t\t' Text
+'return' Keyword
+' ' Text
+'instance' Name
+' ' Text
+'!=' Operator
+' ' Text
+'null' Keyword.Constant
+' ' Text
+'?' Operator
+' ' Text
+'instance' Name
+' ' Text
+':' Operator
+' ' Text
+'instance' Name
+' ' Text
+'=' Operator
+' ' Text
+'new' Keyword
+' ' Text
+'Test' Name
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n\t' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'@' Name.Decorator
+':' Name.Decorator
+'native' Name.Decorator
+'(' Name.Decorator
+'"' Literal.String.Double
+'T' Literal.String.Double
+'e' Literal.String.Double
+'s' Literal.String.Double
+'t' Literal.String.Double
+'"' Literal.String.Double
+')' Name.Decorator
+' ' Text
+'private' Keyword.Declaration
+' ' Text
+'class' Keyword.Declaration
+' ' Text
+'Test2' Name
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n\n' Text
+
+'extern' Keyword.Declaration
+' ' Text
+'class' Keyword.Declaration
+' ' Text
+'Ext' Name
+' ' Text
+'{' Punctuation
+'}' Punctuation
+'\n\n' Text
+
+'@' Name.Decorator
+':' Name.Decorator
+'macro' Name.Decorator
+' ' Text
+'class' Keyword.Declaration
+' ' Text
+'M' Name
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'@' Name.Decorator
+':' Name.Decorator
+'macro' Name.Decorator
+' ' Text
+'static' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'test' Name.Function
+'(' Punctuation
+'e' Name
+':' Punctuation
+'Array' Name
+'<' Punctuation
+'Expr' Name
+'>' Punctuation
+')' Punctuation
+':' Punctuation
+'ExprOf' Name
+'<' Punctuation
+'String' Name
+'>' Punctuation
+' ' Text
+'{' Punctuation
+'\n\t\t' Text
+'return' Keyword
+' ' Text
+'macro' Keyword
+' ' Text
+'"' Literal.String.Double
+'o' Literal.String.Double
+'k' Literal.String.Double
+'"' Literal.String.Double
+';' Punctuation
+'\n\t' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'enum' Keyword.Declaration
+' ' Text
+'Color' Name
+' ' Text
+'{' Punctuation
+'\n ' Text
+'Red' Name
+';' Punctuation
+'\n ' Text
+'Green' Name
+';' Punctuation
+'\n ' Text
+'Blue' Name
+';' Punctuation
+'\n ' Text
+'Grey' Name
+'(' Punctuation
+' ' Text
+'v' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+' ' Text
+')' Punctuation
+';' Punctuation
+'\n ' Text
+'Rgb' Name
+'(' Punctuation
+' ' Text
+'r' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+',' Punctuation
+' ' Text
+'g' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+',' Punctuation
+' ' Text
+'b' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+' ' Text
+')' Punctuation
+';' Punctuation
+'\n ' Text
+'Alpha' Name
+'(' Punctuation
+' ' Text
+'a' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+',' Punctuation
+' ' Text
+'col' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Color' Name
+' ' Text
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'class' Keyword.Declaration
+' ' Text
+'Colors' Name
+' ' Text
+'{' Punctuation
+'\n ' Text
+'static' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'toInt' Name.Function
+'(' Punctuation
+' ' Text
+'c' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Color' Name
+' ' Text
+')' Punctuation
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+' ' Text
+'{' Punctuation
+'\n ' Text
+'return' Keyword
+' ' Text
+'switch' Keyword
+'(' Punctuation
+' ' Text
+'c' Name
+' ' Text
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n ' Text
+'case' Keyword
+' ' Text
+'Red' Name
+':' Punctuation
+' ' Text
+'' Keyword
+'0xFF0000' Literal.Number.Hex
+';' Punctuation
+'\n ' Text
+'case' Keyword
+' ' Text
+'Green' Name
+':' Punctuation
+' ' Text
+'' Keyword
+'0x00FF00' Literal.Number.Hex
+';' Punctuation
+'\n ' Text
+'case' Keyword
+' ' Text
+'Blue' Name
+':' Punctuation
+' ' Text
+'' Keyword
+'0x0000FF' Literal.Number.Hex
+';' Punctuation
+'\n ' Text
+'case' Keyword
+' ' Text
+'Grey' Name
+'(' Punctuation
+'v' Name
+')' Punctuation
+':' Punctuation
+' ' Text
+'' Keyword
+'(' Punctuation
+'v' Name
+' ' Text
+'<<' Operator
+' ' Text
+'16' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'|' Operator
+' ' Text
+'(' Punctuation
+'v' Name
+' ' Text
+'<<' Operator
+' ' Text
+'8' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'|' Operator
+' ' Text
+'v' Name
+';' Punctuation
+'\n ' Text
+'case' Keyword
+' ' Text
+'Rgb' Name
+'(' Punctuation
+'r' Name
+',' Punctuation
+'g' Name
+',' Punctuation
+'b' Name
+')' Punctuation
+':' Punctuation
+' ' Text
+'' Keyword
+'(' Punctuation
+'r' Name
+' ' Text
+'<<' Operator
+' ' Text
+'16' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'|' Operator
+' ' Text
+'(' Punctuation
+'g' Name
+' ' Text
+'<<' Operator
+' ' Text
+'8' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'|' Operator
+' ' Text
+'b' Name
+';' Punctuation
+'\n ' Text
+'case' Keyword
+' ' Text
+'Alpha' Name
+'(' Punctuation
+'a' Name
+',' Punctuation
+'c' Name
+')' Punctuation
+':' Punctuation
+' ' Text
+'' Keyword
+'(' Punctuation
+'a' Name
+' ' Text
+'<<' Operator
+' ' Text
+'24' Literal.Number.Integer
+')' Punctuation
+' ' Text
+'|' Operator
+' ' Text
+'(' Punctuation
+'toInt' Name
+'(' Punctuation
+'c' Name
+')' Punctuation
+' ' Text
+'&' Operator
+' ' Text
+'0xFFFFFF' Literal.Number.Hex
+')' Punctuation
+';' Punctuation
+'\n ' Text
+'}' Punctuation
+'\n ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'class' Keyword.Declaration
+' ' Text
+'EvtQueue' Name
+'<' Punctuation
+'T' Name
+' ' Text
+':' Punctuation
+' ' Text
+'(' Punctuation
+'Event' Name
+',' Punctuation
+' ' Text
+'EventDispatcher' Name
+')' Punctuation
+'>' Punctuation
+' ' Text
+'{' Punctuation
+'\n ' Text
+'var' Keyword.Declaration
+' ' Text
+'evt' Text
+' ' Text
+':' Punctuation
+' ' Text
+'T' Name
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'typedef' Keyword.Declaration
+' ' Text
+'DS' Name
+' ' Text
+'=' Operator
+' ' Text
+'Dynamic' Name
+'<' Punctuation
+'String' Name
+'>' Punctuation
+';' Punctuation
+'\n' Text
+
+'typedef' Keyword.Declaration
+' ' Text
+'Pt' Name
+' ' Text
+'=' Operator
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'var' Keyword.Declaration
+' ' Text
+'x' Text
+':' Punctuation
+'Float' Name
+';' Punctuation
+'\n\t' Text
+'var' Keyword.Declaration
+' ' Text
+'y' Text
+':' Punctuation
+'Float' Name
+';' Punctuation
+'\n\t' Text
+'@' Name.Decorator
+':' Name.Decorator
+'optional' Name.Decorator
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'z' Text
+':' Punctuation
+'Float' Name
+';' Punctuation
+' ' Text
+'/* optional z */' Comment.Multiline
+'\n\t' Text
+'function' Keyword.Declaration
+' ' Text
+'add' Name.Function
+'(' Punctuation
+'pt' Name
+':' Punctuation
+'Pt' Name
+')' Punctuation
+':' Punctuation
+'Void' Name
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n' Text
+
+'typedef' Keyword.Declaration
+' ' Text
+'Pt2' Name
+' ' Text
+'=' Operator
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'x' Name
+':' Punctuation
+'Float' Name
+',' Punctuation
+'\n\t' Text
+'y' Name
+':' Punctuation
+'Float' Name
+',' Punctuation
+'\n\t' Text
+'?' Punctuation
+'z' Name
+':' Punctuation
+'Float' Name
+',' Punctuation
+' ' Text
+'//optional z' Comment.Single
+'\n\t' Text
+'add' Name
+' ' Text
+':' Punctuation
+' ' Text
+'Point' Name
+' ' Text
+'->' Punctuation
+' ' Text
+'Void' Name
+',' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n\n' Text
+
+'//top-level class members' Comment.Single
+'\n' Text
+
+'' Text
+'public' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'test' Name.Function
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'private' Keyword.Declaration
+' ' Text
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'attr' Text
+'(' Punctuation
+'get' Keyword
+',' Punctuation
+' ' Text
+'set' Keyword
+')' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'1' Literal.Number.Integer
+';' Punctuation
+'\n\n\n' Text
+
+'//pre-proc number' Comment.Single
+'\n' Text
+
+'' Text
+'public' Keyword.Declaration
+' ' Text
+'static' Keyword.Declaration
+' ' Text
+'inline' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'indexOf' Name.Function
+'<' Punctuation
+'T' Name
+'>' Punctuation
+'(' Punctuation
+'arr' Name
+':' Punctuation
+'Array' Name
+'<' Punctuation
+'T' Name
+'>' Punctuation
+',' Punctuation
+' ' Text
+'v' Name
+':' Punctuation
+'T' Name
+')' Punctuation
+' ' Text
+':' Punctuation
+' ' Text
+'Int' Name
+'\n' Text
+
+'{' Punctuation
+'\n\t' Text
+'#if' Comment.Preproc
+' ' Comment.Preproc
+'(' Comment.Preproc
+'haxe_ver' Comment.Preproc
+' ' Comment.Preproc
+'>=' Comment.Preproc
+' ' Comment.Preproc
+'3.1' Literal.Number.Float
+')' Comment.Preproc
+' \n\t' Text
+'return' Keyword
+' ' Text
+'arr' Name
+'.' Punctuation
+'indexOf' Name
+'(' Punctuation
+'v' Name
+')' Punctuation
+';' Punctuation
+'\n\t' Text
+'#else' Comment.Preproc
+'\n\t\t' Text
+'#if' Comment.Preproc
+' ' Comment.Preproc
+'(' Comment.Preproc
+'flash' Comment.Preproc
+' ' Comment.Preproc
+'||' Comment.Preproc
+' ' Comment.Preproc
+'js' Comment.Preproc
+')' Comment.Preproc
+'\n\t\t' Text
+'return' Keyword
+' ' Text
+'untyped' Keyword
+' ' Text
+'arr' Name
+'.' Punctuation
+'indexOf' Name
+'(' Punctuation
+'v' Name
+')' Punctuation
+';' Punctuation
+'\n\t\t' Text
+'#else' Comment.Preproc
+'\n\t\t' Text
+'return' Keyword
+' ' Text
+'std' Name
+'.' Punctuation
+'Lambda' Name
+'.' Punctuation
+'indexOf' Name
+'(' Punctuation
+'arr' Name
+',' Punctuation
+' ' Text
+'v' Name
+')' Punctuation
+';' Punctuation
+'\n\t\t' Text
+'#end' Comment.Preproc
+'\n\t' Text
+'#end' Comment.Preproc
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'//macro reification' Comment.Single
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'$myVar' Text
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Integer
+';' Punctuation
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'$' Name
+'{' Punctuation
+'v' Name
+'}' Punctuation
+'.' Punctuation
+'toLowerCase' Name
+'(' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'o' Name
+'.' Punctuation
+'$myField' Name
+';' Punctuation
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'$myField' Name
+' ' Text
+':' Punctuation
+' ' Text
+'0' Literal.Number.Integer
+' ' Text
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'$i' Name
+'{' Punctuation
+'varName' Name
+'}' Punctuation
+'++' Operator
+';' Punctuation
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'$v' Name
+'{' Punctuation
+'myStr' Name
+'}' Punctuation
+';' Punctuation
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'args' Text
+' ' Text
+'=' Operator
+' ' Text
+'[' Punctuation
+'macro' Keyword
+' ' Text
+'"' Literal.String.Double
+'s' Literal.String.Double
+'u' Literal.String.Double
+'b' Literal.String.Double
+'"' Literal.String.Double
+',' Punctuation
+' ' Text
+'macro' Keyword
+' ' Text
+'3' Literal.Number.Integer
+']' Punctuation
+';' Punctuation
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'"' Literal.String.Double
+'H' Literal.String.Double
+'e' Literal.String.Double
+'l' Literal.String.Double
+'l' Literal.String.Double
+'o' Literal.String.Double
+'"' Literal.String.Double
+'.' Punctuation
+'toLowerCase' Name
+'(' Punctuation
+'$a' Name
+'{' Punctuation
+'args' Name
+'}' Punctuation
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'' Text
+'(' Punctuation
+'macro' Keyword
+' ' Text
+'$i' Name
+'{' Punctuation
+'tmp' Name
+'}' Punctuation
+'.' Punctuation
+'addAtom' Name
+'(' Punctuation
+'$v' Name
+'{' Punctuation
+'name' Name
+'}' Punctuation
+',' Punctuation
+' ' Text
+'$atom' Name
+')' Punctuation
+')' Punctuation
+'.' Punctuation
+'finalize' Name
+'(' Punctuation
+'op' Name
+'.' Punctuation
+'pos' Name
+')' Punctuation
+';' Punctuation
+'\n\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'c' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'class' Keyword.Declaration
+' ' Text
+'MyClass' Name
+' ' Text
+'{' Punctuation
+'\n ' Text
+'public' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'new' Name.Function
+'(' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'}' Punctuation
+'\n ' Text
+'public' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'$funcName' Name.Function
+'(' Punctuation
+')' Punctuation
+' ' Text
+'{' Punctuation
+'\n ' Text
+'trace' Name
+'(' Punctuation
+'$v' Name
+'{' Punctuation
+'funcName' Name
+'}' Punctuation
+' ' Text
+'+' Operator
+' ' Text
+'"' Literal.String.Double
+' ' Literal.String.Double
+'w' Literal.String.Double
+'a' Literal.String.Double
+'s' Literal.String.Double
+' ' Literal.String.Double
+'c' Literal.String.Double
+'a' Literal.String.Double
+'l' Literal.String.Double
+'l' Literal.String.Double
+'e' Literal.String.Double
+'d' Literal.String.Double
+'"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+'\n ' Text
+'}' Punctuation
+'\n' Text
+
+'}' Punctuation
+'\n\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'c' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'interface' Keyword.Declaration
+' ' Text
+'IClass' Name
+' ' Text
+'{' Punctuation
+'}' Punctuation
+';' Punctuation
+'\n\n' Text
+
+'//macro class could have no name...' Comment.Single
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'def' Text
+' ' Text
+'=' Operator
+' ' Text
+'macro' Keyword
+' ' Text
+'class' Keyword.Declaration
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'private' Keyword.Declaration
+' ' Text
+'inline' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'new' Name.Function
+'(' Punctuation
+'loader' Name
+')' Punctuation
+' ' Text
+'this' Keyword
+' ' Text
+'=' Operator
+' ' Text
+'loader' Name
+';' Punctuation
+'\n\t' Text
+'private' Keyword.Declaration
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'loader' Text
+'(' Punctuation
+'get' Keyword
+',' Punctuation
+'never' Keyword
+')' Punctuation
+' ' Text
+':' Punctuation
+' ' Text
+'$loaderType' Name
+';' Punctuation
+'\n\t' Text
+'inline' Keyword.Declaration
+' ' Text
+'private' Keyword.Declaration
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'get_loader' Name.Function
+'(' Punctuation
+')' Punctuation
+' ' Text
+':' Punctuation
+' ' Text
+'$loaderType' Name
+' ' Text
+'return' Keyword
+' ' Text
+'this' Keyword
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+';' Punctuation
+'\n\n' Text
+
+'//ECheckType' Comment.Single
+'\n' Text
+
+'' Text
+'var' Keyword.Declaration
+' ' Text
+'f' Text
+' ' Text
+'=' Operator
+' ' Text
+'(' Punctuation
+'123' Literal.Number.Integer
+':' Punctuation
+'Float' Name
+')' Punctuation
+';' Punctuation
+'\n' Text