diff options
Diffstat (limited to 'tests/lexers/hx/example2.txt')
| -rw-r--r-- | tests/lexers/hx/example2.txt | 1907 |
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 |
