summaryrefslogtreecommitdiff
path: root/tests/lexers/urbiscript/example.txt
diff options
context:
space:
mode:
Diffstat (limited to 'tests/lexers/urbiscript/example.txt')
-rw-r--r--tests/lexers/urbiscript/example.txt4114
1 files changed, 4114 insertions, 0 deletions
diff --git a/tests/lexers/urbiscript/example.txt b/tests/lexers/urbiscript/example.txt
new file mode 100644
index 00000000..3200bf48
--- /dev/null
+++ b/tests/lexers/urbiscript/example.txt
@@ -0,0 +1,4114 @@
+---input---
+ // This is a one line comment.
+ /* an inner comment */
+
+ /* nested /* comments */ */
+
+ /*
+ /*
+ Multi-line.
+ */
+ */
+
+// Binary blob escape.
+//"some text \B(3)("\") ouhyeah" == "\"\\\"";
+"some text \B(3)("\") ouhyeah" == "\"\\\"";
+'some text \B(3)('\') ouhyeah' == '\'\\\'';
+
+//"\B(4)()"'()";
+"\B(4)()"'()";
+'\B(4)()'"()';
+
+//blob size limits
+"hey ! \B(0)() oh !"
+
+//blob format is wrong
+"hey ! \B(2)(aaa) oh !"
+"hey ! \B(100)(aaa) oh !"
+
+//multiple blob in a string
+"hey ! \B(3)(aaa) hey ! \B(3)(aaa) oh !"
+
+// multiple digits blob size
+"hey ! \B(10)(aaaaaaaaaa) !"
+"hey ! \B(10)(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) !"
+"hey ! \B(100)(a) !"
+
+// multiple digits blob size
+"hey ! \B(007)(aaaaaaa) !"
+"hey ! \B(007)(aa) !"
+"hey ! \B(007)(aaaaaaaaaaaaaaaaaa) !"
+
+// deprecated and restricted keyworks
+emit Event.new;
+static int main();
+
+loopn (2) {echo("a");};
+
+foreach (var i : [1,2,3,4]) {
+ echo(i);
+};
+
+function() {};
+
+var 'if';
+var this.'else';
+
+var '%x';
+var '1 2 3';
+var this.'[]';
+
+// angles
+pi == 180deg;
+pi == 200grad;
+
+// Dictionary
+[ => ]; // The empty dictionary
+
+// duration
+1d == 24h;
+0.5d == 12h;
+1h == 60min;
+1min == 60s;
+1s == 1000ms;
+
+1s == 1;
+1s 2s 3s == 6;
+1s 1ms == 1.001;
+1ms 1s == 1.001;
+
+
+ 1 == 1;
+ 1 == 1.0;
+ 1.2 == 1.2000;
+ 1.234e6 == 1234000;
+ 1e+11 == 1E+11;
+ 1e10 == 10000000000;
+ 1e30 == 1e10 * 1e10 * 1e10;
+
+
+0.000001;
+
+0.0000001;
+
+0.00000000001;
+
+1e+3;
+
+1E-5;
+
+
+1.;
+// [00004701:error] !!! syntax error: unexpected ;
+
+ 0x2a == 42;
+ 0x2A == 42;
+ 0xabcdef == 11259375;
+ 0xABCDEF == 11259375;
+0xFFFFFFFF == 4294967295;
+
+
+//123foo;
+//[00005658:error] !!! syntax error: invalid token: '123foo'
+//12.3foo;
+//[00018827:error] !!! syntax error: invalid token: '12.3foo'
+0xabcdef;
+//[00060432] 11259375
+//0xabcdefg;
+//[00061848:error] !!! syntax error: invalid token: '0xabcdefg'
+
+
+[]; // The empty list
+[1, 2, 3];
+
+// Special characters.
+"\"" == "\"";
+"\\" == "\\";
+
+// ASCII characters.
+"\a" == "\007"; "\a" == "\x07";
+"\b" == "\010"; "\b" == "\x08";
+"\f" == "\014"; "\f" == "\x0c";
+"\n" == "\012"; "\n" == "\x0a";
+"\r" == "\015"; "\r" == "\x0d";
+"\t" == "\011"; "\t" == "\x09";
+"\v" == "\013"; "\v" == "\x0b";
+
+// Octal escapes.
+"\0" == "\00"; "\0" == "\000";
+"\0000" == "\0""0";
+"\062\063" == "23";
+
+// Hexadecimal escapes.
+"\x00" == "\0";
+"\x32\x33" == "23";
+
+
+
+"foo" "bar" "baz" == "foobarbaz";
+
+// Tuples
+();
+[00000000] ()
+(1,);
+[00000000] (1,)
+(1, 2);
+[00000000] (1, 2)
+(1, 2, 3, 4,);
+[00000000] (1, 2, 3, 4)
+
+function Global.verboseId(var x)
+{
+ echo(x) | x
+}|;
+class verboseId(Global).math : verboseId(Math)
+{
+};
+
+{
+ for (3)
+ {
+ sleep(1s);
+ echo("ping");
+ },
+ sleep(0.5s);
+ for (3)
+ {
+ sleep(1s);
+ echo("pong");
+ },
+};
+
+ 1 + 1 == 2;
+ 1 - 2 == -1;
+ 2 * 3 == 6;
+ 10 / 2 == 5;
+ 2 ** 10 == 1024;
+ -(1 + 2) == -3;
+ 1 + 2 * 3 == 7;
+ (1 + 2) * 3 == 9;
+ -2 ** 2 == -4;
+ - - - - 1 == 1;
+
+a = b
+a += b
+a -= b
+a *= b
+a /= b
+a %= b
+a ^= b
+
+
+var value = 0|;
+var valueAlias = value|;
+value += 10;
+valueAlias;
+var myList = []|;
+var myList.specialFeature = 42|;
+myList += [1, 2, 3];
+myList.specialFeature;
+var myOtherList = myList + [4, 5];
+myOtherList.specialFeature;
+var something = []|;
+var somethingElse = something|;
+something += [1, 2];
+somethingElse += [3, 4];
+something;
+
+
+class Counter
+{
+ var count = 0;
+ function init (n) { var this.count = n };
+ // Display the value, and the identity.
+ function asString() { "%s @ %s" % [count, uid ] };
+ function '+'(var n) { new(count + n) };
+ function '-'(var n) { new(count - n) };
+}|;
+
+
+class ImmutableCounter : Counter
+{
+ function '+='(var n) { this + n };
+ function '-='(var n) { this - n };
+}|;
+
+var ic1 = ImmutableCounter.new(0);
+var ic2 = ic1;
+
+ic1 += 1;
+ic1;
+ic2;
+
+
+a << b
+a >> b
+a ^ b
+
+4 << 2 == 16;
+4 >> 2 == 1;
+
+!a
+a && b
+a || b
+
+true && true;
+true || false;
+!true == false;
+true || (1 / 0);
+(false && (1 / 0)) == false;
+
+a == b
+a != b
+a === b
+a !== b
+a ~= b
+a =~= b
+a < b
+a <= b
+a > b
+a >= b
+
+assert{
+ ! (0 < 0);
+ 0 <= 0;
+ 0 == 0;
+ 0 !== 0;
+};
+
+a in b
+a not in b
+a[args]
+a[args] = v
+
+1 in [0, 1, 2];
+3 not in [0, 1, 2];
+
+"one" in ["zero" => 0, "one" => 1, "two" => 2];
+"three" not in ["zero" => 0, "one" => 1, "two" => 2];
+
+a.b
+a.b(args)
+a->b
+a->b = v
+a.&b
+
+var obj = Object.new|;
+function obj.f() { 24 }|;
+
+
+var f = function(a, b) {
+ echo(b + a);
+}|
+f(1, 0);
+
+
+function g3()
+{
+ return; // Stop execution at this point and return void
+ echo(0); // This is not executed
+}|
+
+Object.setProperty, to define/set a property.
+Object.getProperty, to get a property.
+Object.removeProperty, to delete a property.
+Object.hasProperty, to test for the existence of a property.
+Object.properties, to get all the properties of a slot.
+
+enum Suit
+{
+ hearts,
+ diamonds,
+ clubs,
+ spades, // Last comma is optional
+};
+
+for (var suit in Suit)
+ echo("%s the ace of %s." % [find_ace(suit), suit]);
+
+switch ( ("foo", [1, 2]) )
+{
+ // The pattern does not match the values of the list.
+ case ("foo", [2, 1]):
+ echo("fail");
+
+ // The pattern does not match the tuple.
+ case ["foo", [1, 2]]:
+ echo("fail");
+
+ // The pattern matches and binds the variable "l"
+ // but the condition is not verified.
+ case ("foo", var l) if l.size == 0:
+ echo("fail");
+
+ // The pattern matches.
+ case ("foo", [var a, var b]):
+ echo("foo(%s, %s)" % [a, b]);
+};
+//[00000000] *** foo(1, 2)
+
+{
+ ["b" => var b, "a" => var a] = ["a" => 1, "b" => 2, "c" => 3];
+ echo("a = %d, b = %d" % [a, b]);
+};
+//[00000000] *** a = 1, b = 2
+
+
+switch (["speed" => 2, "time" => 6s])
+{
+ case ["speed" => var s] if s > 3:
+ echo("Too fast");
+ case ["speed" => var s, "time" => var t] if s * t > 10:
+ echo("Too far");
+};
+//[00000000] *** Too far
+
+
+try
+{
+ throw ("message", 0)
+}
+catch (var e if e.isA(Exception))
+{
+ echo(e.message)
+}
+catch ((var msg, var value) if value.isA(Float))
+{
+ echo("%s: %d" % [msg, value])
+};
+//[00000000] *** message: 0
+
+
+{
+ var e = Event.new;
+ at (e?(var msg, var value) if value % 2 == 0)
+ echo("%s: %d" % [msg, value]);
+
+ // Does not trigger the "at" because the guard is not verified.
+ e!("message", 1);
+
+ // Trigger the "at".
+ e!("message", 2);
+};
+//[00000000] *** message: 2
+
+for (var i = 0; i < 8; i++)
+{
+ if (i % 2 != 0)
+ continue;
+ echo(i);
+};
+
+do (1024)
+{
+ assert(this == 1024);
+ assert(sqrt == 32);
+ setSlot("y", 23);
+}.y;
+
+{
+ var n = 10|;
+ var res = []|;
+ loop;{
+ n--;
+ res << n;
+ if (n == 0)
+ break
+ };
+ res
+}
+
+
+{
+ var n = 10|;
+ var res = []|;
+ loop|{
+ n--;
+ res << n;
+ if (n == 0)
+ break
+ };
+ res
+}
+
+
+var j = 3|
+while (0 < j)
+{
+ echo(j);
+ j--;
+};
+
+
+{
+ var i = 4|
+ while| (true)
+ {
+ i -= 1;
+ echo ("in: " + i);
+ if (i == 1)
+ break
+ else if (i == 2)
+ continue;
+ echo ("out: " + i);
+ };
+};
+
+
+
+function test(e)
+{
+ try
+ { throw e; }
+ catch (0)
+ { echo("zero") }
+ catch ([var x, var y])
+ { echo(x + y) }
+} | {};
+
+try { echo("try") }
+catch { echo("catch")}
+else { echo("else")};
+
+
+try
+{
+ echo("inside");
+}
+finally
+{
+ echo("finally");
+};
+//[00000001] *** inside
+//[00000002] *** finally
+
+at (e?(var start) ~ 1s)
+ echo("in : %s" % (time - start).round)
+onleave
+ echo("out: %s" % (time - start).round);
+
+// This emission is too short to trigger the at.
+e!(time);
+
+// This one is long enough.
+// The body triggers 1s after the emission started.
+e!(time) ~ 2s;
+//[00001000] *** in : 1
+//[00002000] *** out: 2
+
+
+timeout (2.1s)
+ every (1s)
+ echo("Are you still there?");
+//[00000000] *** Are you still there?
+//[00001000] *** Are you still there?
+//[00002000] *** Are you still there?
+
+ every| (1s)
+ {
+ echo("aba");
+ };
+
+for, (var i = 3; 0 < i; i -= 1)
+{
+ echo (i);
+};
+
+
+for& (var i: [0, 1, 2])
+{
+ echo (i * i);
+};
+
+loop,{
+};
+
+
+waituntil (e?(1, var b));
+
+whenever (e?("arg", var arg) if arg % 2)
+ echo("e (%s) on" % arg)
+else
+ echo("e off");
+
+
+ while, (i)
+ {
+ var j = i -= 1;
+ }|
+
+
+var y = 0;
+{
+ sleep(0.5s);
+ y = 100 smooth:3s,
+},
+
+
+
+
+---tokens---
+' ' Text
+'// This is a one line comment. \n' Comment
+
+' ' Text
+'/*' Comment.Multiline
+' ' Comment.Multiline
+'a' Comment.Multiline
+'n' Comment.Multiline
+' ' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'r' 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
+' ' Comment.Multiline
+'*/' Comment.Multiline
+' \n \n ' Text
+'/*' 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
+'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
+'*/' Comment.Multiline
+' \n \n ' Text
+'/*' Comment.Multiline
+' ' Comment.Multiline
+'\n' 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
+'M' Comment.Multiline
+'u' Comment.Multiline
+'l' Comment.Multiline
+'t' Comment.Multiline
+'i' Comment.Multiline
+'-' Comment.Multiline
+'l' Comment.Multiline
+'i' Comment.Multiline
+'n' Comment.Multiline
+'e' Comment.Multiline
+'.' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*/' Comment.Multiline
+' ' Comment.Multiline
+'\n' Comment.Multiline
+
+' ' Comment.Multiline
+' ' Comment.Multiline
+'*/' Comment.Multiline
+' \n\n' Text
+
+'// Binary blob escape. \n' Comment
+
+'//"some text \\B(3)("\\") ouhyeah" == "\\"\\\\\\"";\n' Comment
+
+'"' Literal.String.Double
+'some text ' Literal.String
+'\\B(3)("\\")' Literal.String.Escape
+' ouhyeah"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\"\\\\\\""' Literal.String.Double
+';' Punctuation
+'\n' Text
+
+"'" Literal.String.Single
+'some text ' Literal.String
+"\\B(3)('\\')" Literal.String.Escape
+" ouhyeah'" Literal.String.Single
+' ' Text
+'==' Operator
+' ' Text
+"'" Literal.String.Single
+"\\'\\\\\\''" Literal.String.Single
+';' Punctuation
+'\n\n' Text
+
+'//"\\B(4)()"\'()";\n' Comment
+
+'"' Literal.String.Double
+'' Literal.String
+'\\B(4)()"\'()' Literal.String.Escape
+'"' Literal.String.Double
+';' Punctuation
+'\n' Text
+
+"'" Literal.String.Single
+'' Literal.String
+'\\B(4)()\'"()' Literal.String.Escape
+"'" Literal.String.Single
+';' Punctuation
+'\n\n' Text
+
+'//blob size limits\n' Comment
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(0)()' Literal.String.Escape
+' oh !"' Literal.String.Double
+'\n\n' Text
+
+'//blob format is wrong\n' Comment
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(2)(' Literal.String
+'aaa) oh !"' Literal.String.Double
+'\n' Text
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(100)(' Literal.String
+'aaa) oh !"' Literal.String.Double
+'\n\n' Text
+
+'//multiple blob in a string\n' Comment
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(3)(aaa)' Literal.String.Escape
+' hey ! ' Literal.String
+'\\B(3)(aaa)' Literal.String.Escape
+' oh !"' Literal.String.Double
+'\n\n' Text
+
+'// multiple digits blob size \n' Comment
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(10)(aaaaaaaaaa)' Literal.String.Escape
+' !"' Literal.String.Double
+'\n' Text
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(10)(' Literal.String
+'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa) !"' Literal.String.Double
+'\n' Text
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(100)(' Literal.String
+'a) !"' Literal.String.Double
+'\n\n' Text
+
+'// multiple digits blob size \n' Comment
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(007)(aaaaaaa)' Literal.String.Escape
+' !"' Literal.String.Double
+'\n' Text
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(007)(' Literal.String
+'aa) !"' Literal.String.Double
+'\n' Text
+
+'"' Literal.String.Double
+'hey ! ' Literal.String
+'\\B(007)(' Literal.String
+'aaaaaaaaaaaaaaaaaa) !"' Literal.String.Double
+'\n\n' Text
+
+'// deprecated and restricted keyworks \n' Comment
+
+'emit' Keyword
+' ' Text
+'Event' Name.Builtin
+'.' Operator
+'new' Keyword
+';' Punctuation
+'\n' Text
+
+'static' Keyword
+' ' Text
+'int' Keyword.Reserved
+' ' Text
+'main' Name.Other
+'()' Punctuation
+';' Punctuation
+'\n\n' Text
+
+'loopn' Keyword
+' ' Text
+'(' Punctuation
+'2' Literal.Number.Float
+')' Punctuation
+' ' Text
+'{' Punctuation
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'a"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+'}' Punctuation
+';' Punctuation
+'\n\n' Text
+
+'foreach' Keyword
+' ' Text
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'i' Name.Other
+' ' Text
+':' Operator
+' ' Text
+'[' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+'2' Literal.Number.Float
+',' Punctuation
+'3' Literal.Number.Float
+',' Punctuation
+'4' Literal.Number.Float
+'])' Punctuation
+' ' Text
+'{' Punctuation
+'\n\t' Text
+'echo' Name.Other
+'(' Punctuation
+'i' Name.Other
+')' Punctuation
+';' Punctuation
+'\n' Text
+
+'}' Punctuation
+';' Punctuation
+'\n\n' Text
+
+'function' Keyword.Declaration
+'()' Punctuation
+' ' Text
+'{}' Punctuation
+';' Punctuation
+'\n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+"'" Literal.String.Single
+"if'" Literal.String.Single
+';' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'this' Keyword
+'.' Operator
+"'" Literal.String.Single
+"else'" Literal.String.Single
+';' Punctuation
+' \n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+"'" Literal.String.Single
+"%x'" Literal.String.Single
+';' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+"'" Literal.String.Single
+"1 2 3'" Literal.String.Single
+';' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'this' Keyword
+'.' Operator
+"'" Literal.String.Single
+"[]'" Literal.String.Single
+';' Punctuation
+'\n \n' Text
+
+'// angles \n' Comment
+
+'pi' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'180deg' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'pi' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'200grad' Literal.Number.Float
+';' Punctuation
+'\n \n' Text
+
+'// Dictionary\n' Comment
+
+'[' Punctuation
+' ' Text
+'=>' Operator
+' ' Text
+']' Punctuation
+';' Punctuation
+' ' Text
+'// The empty dictionary \n' Comment
+
+'\n' Text
+
+'// duration \n' Comment
+
+'1d' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'24h' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'0.5d' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'12h' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'1h' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'60min' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'1min' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'60s' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'1s' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1000ms' Literal.Number.Float
+';' Punctuation
+' \n \n' Text
+
+'1s' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'1s' Literal.Number.Float
+' ' Text
+'2s' Literal.Number.Float
+' ' Text
+'3s' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'6' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'1s' Literal.Number.Float
+' ' Text
+'1ms' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1.001' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'1ms' Literal.Number.Float
+' ' Text
+'1s' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1.001' Literal.Number.Float
+';' Punctuation
+'\n \n \n ' Text
+'1' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1.0' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1.2' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1.2000' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1.234e6' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1234000' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1e+11' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1E+11' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1e10' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'10000000000' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1e30' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1e10' Literal.Number.Float
+' ' Text
+'*' Operator
+' ' Text
+'1e10' Literal.Number.Float
+' ' Text
+'*' Operator
+' ' Text
+'1e10' Literal.Number.Float
+';' Punctuation
+'\n \n \n' Text
+
+'0.000001' Literal.Number.Float
+';' Punctuation
+' \n \n' Text
+
+'0.0000001' Literal.Number.Float
+';' Punctuation
+' \n \n' Text
+
+'0.00000000001' Literal.Number.Float
+';' Punctuation
+' \n \n' Text
+
+'1e+3' Literal.Number.Float
+';' Punctuation
+' \n \n' Text
+
+'1E-5' Literal.Number.Float
+';' Punctuation
+' \n \n\n' Text
+
+'1' Literal.Number.Float
+'.' Operator
+';' Punctuation
+' \n' Text
+
+'// [00004701:error] !!! syntax error: unexpected ;\n' Comment
+
+' \n ' Text
+'0x2a' Literal.Number.Hex
+' ' Text
+'==' Operator
+' ' Text
+'42' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'0x2A' Literal.Number.Hex
+' ' Text
+'==' Operator
+' ' Text
+'42' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'0xabcdef' Literal.Number.Hex
+' ' Text
+'==' Operator
+' ' Text
+'11259375' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'0xABCDEF' Literal.Number.Hex
+' ' Text
+'==' Operator
+' ' Text
+'11259375' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'0xFFFFFFFF' Literal.Number.Hex
+' ' Text
+'==' Operator
+' ' Text
+'4294967295' Literal.Number.Float
+';' Punctuation
+'\n \n \n' Text
+
+'//123foo; \n' Comment
+
+"//[00005658:error] !!! syntax error: invalid token: '123foo' \n" Comment
+
+'//12.3foo; \n' Comment
+
+"//[00018827:error] !!! syntax error: invalid token: '12.3foo' \n" Comment
+
+'0xabcdef' Literal.Number.Hex
+';' Punctuation
+' \n' Text
+
+'//[00060432] 11259375 \n' Comment
+
+'//0xabcdefg; \n' Comment
+
+"//[00061848:error] !!! syntax error: invalid token: '0xabcdefg'\n" Comment
+
+' \n \n' Text
+
+'[]' Punctuation
+';' Punctuation
+' ' Text
+'// The empty list \n' Comment
+
+'[' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+',' Punctuation
+' ' Text
+'3' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'// Special characters. \n' Comment
+
+'"' Literal.String.Double
+'\\""' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\""' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\\\"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\\\"' Literal.String.Double
+';' Punctuation
+' \n \n' Text
+
+'// ASCII characters. \n' Comment
+
+'"' Literal.String.Double
+'\\a"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\007"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\a"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\x07"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\b"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\010"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\b"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\x08"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\f"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\014"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\f"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\x0c"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\n"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\012"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\n"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\x0a"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\r"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\015"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\r"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\x0d"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\t"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\011"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\t"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\x09"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\v"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\013"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\v"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\x0b"' Literal.String.Double
+';' Punctuation
+' \n \n' Text
+
+'// Octal escapes. \n' Comment
+
+'"' Literal.String.Double
+'\\0"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\00"' Literal.String.Double
+';' Punctuation
+' ' Text
+'"' Literal.String.Double
+'\\0"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\000"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\0000"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\0"' Literal.String.Double
+'"' Literal.String.Double
+'0"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\062\\063"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'23"' Literal.String.Double
+';' Punctuation
+' \n \n' Text
+
+'// Hexadecimal escapes. \n' Comment
+
+'"' Literal.String.Double
+'\\x00"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'\\0"' Literal.String.Double
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'\\x32\\x33"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'23"' Literal.String.Double
+';' Punctuation
+' \n \n \n \n' Text
+
+'"' Literal.String.Double
+'foo"' Literal.String.Double
+' ' Text
+'"' Literal.String.Double
+'bar"' Literal.String.Double
+' ' Text
+'"' Literal.String.Double
+'baz"' Literal.String.Double
+' ' Text
+'==' Operator
+' ' Text
+'"' Literal.String.Double
+'foobarbaz"' Literal.String.Double
+';' Punctuation
+'\n \n' Text
+
+'// Tuples \n' Comment
+
+'()' Punctuation
+';' Punctuation
+' \n' Text
+
+'[' Punctuation
+'00000000' Literal.Number.Float
+']' Punctuation
+' ' Text
+'()' Punctuation
+' \n' Text
+
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'[' Punctuation
+'00000000' Literal.Number.Float
+']' Punctuation
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+')' Punctuation
+' \n' Text
+
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'[' Punctuation
+'00000000' Literal.Number.Float
+']' Punctuation
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+')' Punctuation
+' \n' Text
+
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+',' Punctuation
+' ' Text
+'3' Literal.Number.Float
+',' Punctuation
+' ' Text
+'4' Literal.Number.Float
+',' Punctuation
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'[' Punctuation
+'00000000' Literal.Number.Float
+']' Punctuation
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+',' Punctuation
+' ' Text
+'3' Literal.Number.Float
+',' Punctuation
+' ' Text
+'4' Literal.Number.Float
+')' Punctuation
+'\n \n' Text
+
+'function' Keyword.Declaration
+' ' Text
+'Global' Name.Builtin
+'.' Operator
+'verboseId' Name.Other
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'x' Name.Other
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'x' Name.Other
+')' Punctuation
+' ' Text
+'|' Punctuation
+' ' Text
+'x' Name.Other
+' \n' Text
+
+'}' Punctuation
+'|;' Punctuation
+' \n' Text
+
+'class' Keyword.Declaration
+' ' Text
+'verboseId' Name.Other
+'(' Punctuation
+'Global' Name.Builtin
+')' Punctuation
+'.' Operator
+'math' Name.Other
+' ' Text
+':' Operator
+' ' Text
+'verboseId' Name.Other
+'(' Punctuation
+'Math' Name.Builtin
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'{' Punctuation
+' \n ' Text
+'for' Keyword
+' ' Text
+'(' Punctuation
+'3' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'{' Punctuation
+' \n ' Text
+'sleep' Name.Other
+'(' Punctuation
+'1s' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'ping"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'}' Punctuation
+',' Punctuation
+' \n ' Text
+'sleep' Name.Other
+'(' Punctuation
+'0.5s' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'for' Keyword
+' ' Text
+'(' Punctuation
+'3' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'{' Punctuation
+' \n ' Text
+'sleep' Name.Other
+'(' Punctuation
+'1s' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'pong"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'}' Punctuation
+',' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n \n ' Text
+'1' Literal.Number.Float
+' ' Text
+'+' Operator
+' ' Text
+'1' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'2' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1' Literal.Number.Float
+' ' Text
+'-' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'-' Operator
+'1' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'2' Literal.Number.Float
+' ' Text
+'*' Operator
+' ' Text
+'3' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'6' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'10' Literal.Number.Float
+' ' Text
+'/' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'5' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'2' Literal.Number.Float
+' ' Text
+'**' Operator
+' ' Text
+'10' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1024' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'-' Operator
+'(' Punctuation
+'1' Literal.Number.Float
+' ' Text
+'+' Operator
+' ' Text
+'2' Literal.Number.Float
+')' Punctuation
+' ' Text
+'==' Operator
+' ' Text
+'-' Operator
+'3' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'1' Literal.Number.Float
+' ' Text
+'+' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'*' Operator
+' ' Text
+'3' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'7' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'(' Punctuation
+'1' Literal.Number.Float
+' ' Text
+'+' Operator
+' ' Text
+'2' Literal.Number.Float
+')' Punctuation
+' ' Text
+'*' Operator
+' ' Text
+'3' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'9' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'-' Operator
+'2' Literal.Number.Float
+' ' Text
+'**' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'-' Operator
+'4' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'-' Operator
+' ' Text
+'-' Operator
+' ' Text
+'-' Operator
+' ' Text
+'-' Operator
+' ' Text
+'1' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1' Literal.Number.Float
+';' Punctuation
+'\n\n' Text
+
+'a' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'+=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'-=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'*=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'/=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'%=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'^=' Operator
+' ' Text
+'b' Name.Other
+'\n\n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'value' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Float
+'|;' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'valueAlias' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'value' Name.Other
+'|;' Punctuation
+' \n' Text
+
+'value' Name.Other
+' ' Text
+'+=' Operator
+' ' Text
+'10' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'valueAlias' Name.Other
+';' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'myList' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'[]' Punctuation
+'|;' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'myList' Name.Other
+'.' Operator
+'specialFeature' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'42' Literal.Number.Float
+'|;' Punctuation
+' \n' Text
+
+'myList' Name.Other
+' ' Text
+'+=' Operator
+' ' Text
+'[' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+',' Punctuation
+' ' Text
+'3' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n' Text
+
+'myList' Name.Other
+'.' Operator
+'specialFeature' Name.Other
+';' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'myOtherList' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'myList' Name.Other
+' ' Text
+'+' Operator
+' ' Text
+'[' Punctuation
+'4' Literal.Number.Float
+',' Punctuation
+' ' Text
+'5' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n' Text
+
+'myOtherList' Name.Other
+'.' Operator
+'specialFeature' Name.Other
+';' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'something' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'[]' Punctuation
+'|;' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'somethingElse' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'something' Name.Other
+'|;' Punctuation
+' \n' Text
+
+'something' Name.Other
+' ' Text
+'+=' Operator
+' ' Text
+'[' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n' Text
+
+'somethingElse' Name.Other
+' ' Text
+'+=' Operator
+' ' Text
+'[' Punctuation
+'3' Literal.Number.Float
+',' Punctuation
+' ' Text
+'4' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n' Text
+
+'something' Name.Other
+';' Punctuation
+' \n \n \n' Text
+
+'class' Keyword.Declaration
+' ' Text
+'Counter' Name.Other
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'count' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'function' Keyword.Declaration
+' ' Text
+'init' Name.Other
+' ' Text
+'(' Punctuation
+'n' Name.Other
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'this' Keyword
+'.' Operator
+'count' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'n' Name.Other
+' ' Text
+'}' Punctuation
+';' Punctuation
+' \n ' Text
+'// Display the value, and the identity. \n' Comment
+
+' ' Text
+'function' Keyword.Declaration
+' ' Text
+'asString' Name.Other
+'()' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'"' Literal.String.Double
+'%s @ %s"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'[' Punctuation
+'count' Name.Other
+',' Punctuation
+' ' Text
+'uid' Name.Other
+' ' Text
+']' Punctuation
+' ' Text
+'}' Punctuation
+';' Punctuation
+' \n ' Text
+'function' Keyword.Declaration
+' ' Text
+"'" Literal.String.Single
+"+'" Literal.String.Single
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'n' Name.Other
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'new' Keyword
+'(' Punctuation
+'count' Name.Other
+' ' Text
+'+' Operator
+' ' Text
+'n' Name.Other
+')' Punctuation
+' ' Text
+'}' Punctuation
+';' Punctuation
+' \n ' Text
+'function' Keyword.Declaration
+' ' Text
+"'" Literal.String.Single
+"-'" Literal.String.Single
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'n' Name.Other
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'new' Keyword
+'(' Punctuation
+'count' Name.Other
+' ' Text
+'-' Operator
+' ' Text
+'n' Name.Other
+')' Punctuation
+' ' Text
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+'|;' Punctuation
+'\n \n \n' Text
+
+'class' Keyword.Declaration
+' ' Text
+'ImmutableCounter' Name.Other
+' ' Text
+':' Operator
+' ' Text
+'Counter' Name.Other
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'function' Keyword.Declaration
+' ' Text
+"'" Literal.String.Single
+"+='" Literal.String.Single
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'n' Name.Other
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'this' Keyword
+' ' Text
+'+' Operator
+' ' Text
+'n' Name.Other
+' ' Text
+'}' Punctuation
+';' Punctuation
+' \n ' Text
+'function' Keyword.Declaration
+' ' Text
+"'" Literal.String.Single
+"-='" Literal.String.Single
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'n' Name.Other
+')' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'this' Keyword
+' ' Text
+'-' Operator
+' ' Text
+'n' Name.Other
+' ' Text
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+'|;' Punctuation
+' \n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'ic1' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'ImmutableCounter' Name.Other
+'.' Operator
+'new' Keyword
+'(' Punctuation
+'0' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'ic2' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'ic1' Name.Other
+';' Punctuation
+' \n \n' Text
+
+'ic1' Name.Other
+' ' Text
+'+=' Operator
+' ' Text
+'1' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'ic1' Name.Other
+';' Punctuation
+' \n' Text
+
+'ic2' Name.Other
+';' Punctuation
+' \n \n\n' Text
+
+'a' Name.Other
+' ' Text
+'<<' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'>>' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'^' Operator
+' ' Text
+'b' Name.Other
+'\n \n' Text
+
+'4' Literal.Number.Float
+' ' Text
+'<<' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'16' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'4' Literal.Number.Float
+' ' Text
+'>>' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'1' Literal.Number.Float
+';' Punctuation
+'\n \n' Text
+
+'!' Punctuation
+'a' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'&&' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'||' Operator
+' ' Text
+'b' Name.Other
+'\n \n' Text
+
+'true' Keyword.Constant
+' ' Text
+'&&' Operator
+' ' Text
+'true' Keyword.Constant
+';' Punctuation
+' \n' Text
+
+'true' Keyword.Constant
+' ' Text
+'||' Operator
+' ' Text
+'false' Keyword.Constant
+';' Punctuation
+' \n' Text
+
+'!' Punctuation
+'true' Keyword.Constant
+' ' Text
+'==' Operator
+' ' Text
+'false' Keyword.Constant
+';' Punctuation
+' \n' Text
+
+'true' Keyword.Constant
+' ' Text
+'||' Operator
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Float
+' ' Text
+'/' Operator
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'(' Punctuation
+'false' Keyword.Constant
+' ' Text
+'&&' Operator
+' ' Text
+'(' Punctuation
+'1' Literal.Number.Float
+' ' Text
+'/' Operator
+' ' Text
+'0' Literal.Number.Float
+'))' Punctuation
+' ' Text
+'==' Operator
+' ' Text
+'false' Keyword.Constant
+';' Punctuation
+'\n \n' Text
+
+'a' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'!' Punctuation
+'=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'===' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'!' Punctuation
+'==' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'~=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'=~=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'<' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'<=' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'>' Operator
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'>=' Operator
+' ' Text
+'b' Name.Other
+'\n \n' Text
+
+'assert' Keyword
+'{' Punctuation
+' \n ' Text
+'!' Punctuation
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Float
+' ' Text
+'<' Operator
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'0' Literal.Number.Float
+' ' Text
+'<=' Operator
+' ' Text
+'0' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'0' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'0' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'0' Literal.Number.Float
+' ' Text
+'!' Punctuation
+'==' Operator
+' ' Text
+'0' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n\n' Text
+
+'a' Name.Other
+' ' Text
+'in' Operator.Word
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+' ' Text
+'not' Operator.Word
+' ' Text
+'in' Operator.Word
+' ' Text
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+'[' Punctuation
+'args' Name.Other
+']' Punctuation
+'\n' Text
+
+'a' Name.Other
+'[' Punctuation
+'args' Name.Other
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'v' Name.Other
+'\n \n' Text
+
+'1' Literal.Number.Float
+' ' Text
+'in' Operator.Word
+' ' Text
+'[' Punctuation
+'0' Literal.Number.Float
+',' Punctuation
+' ' Text
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n' Text
+
+'3' Literal.Number.Float
+' ' Text
+'not' Operator.Word
+' ' Text
+'in' Operator.Word
+' ' Text
+'[' Punctuation
+'0' Literal.Number.Float
+',' Punctuation
+' ' Text
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'"' Literal.String.Double
+'one"' Literal.String.Double
+' ' Text
+'in' Operator.Word
+' ' Text
+'[' Punctuation
+'"' Literal.String.Double
+'zero"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'0' Literal.Number.Float
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'one"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'two"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'2' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n' Text
+
+'"' Literal.String.Double
+'three"' Literal.String.Double
+' ' Text
+'not' Operator.Word
+' ' Text
+'in' Operator.Word
+' ' Text
+'[' Punctuation
+'"' Literal.String.Double
+'zero"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'0' Literal.Number.Float
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'one"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'two"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'2' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+'\n \n' Text
+
+'a' Name.Other
+'.' Operator
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+'.' Operator
+'b' Name.Other
+'(' Punctuation
+'args' Name.Other
+')' Punctuation
+'\n' Text
+
+'a' Name.Other
+'->' Operator
+'b' Name.Other
+'\n' Text
+
+'a' Name.Other
+'->' Operator
+'b' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'v' Name.Other
+'\n' Text
+
+'a' Name.Other
+'.&' Operator
+'b' Name.Other
+'\n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'obj' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'Object' Name.Builtin
+'.' Operator
+'new' Keyword
+'|;' Punctuation
+' \n' Text
+
+'function' Keyword.Declaration
+' ' Text
+'obj' Name.Other
+'.' Operator
+'f' Name.Other
+'()' Punctuation
+' ' Text
+'{' Punctuation
+' ' Text
+'24' Literal.Number.Float
+' ' Text
+'}' Punctuation
+'|;' Punctuation
+' \n \n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'f' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'function' Keyword.Declaration
+'(' Punctuation
+'a' Name.Other
+',' Punctuation
+' ' Text
+'b' Name.Other
+')' Punctuation
+' ' Text
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'b' Name.Other
+' ' Text
+'+' Operator
+' ' Text
+'a' Name.Other
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+'|' Punctuation
+' \n' Text
+
+'f' Name.Other
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n \n\n' Text
+
+'function' Keyword.Declaration
+' ' Text
+'g3' Name.Other
+'()' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'return' Keyword
+';' Punctuation
+' ' Text
+'// Stop execution at this point and return void \n' Comment
+
+' ' Text
+'echo' Name.Other
+'(' Punctuation
+'0' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' ' Text
+'// This is not executed \n' Comment
+
+'}' Punctuation
+'|' Punctuation
+' \n \n' Text
+
+'Object' Name.Builtin
+'.' Operator
+'setProperty' Name.Other
+',' Punctuation
+' ' Text
+'to' Name.Other
+' ' Text
+'define' Name.Other
+'/' Operator
+'set' Name.Other
+' ' Text
+'a' Name.Other
+' ' Text
+'property' Name.Other
+'.' Operator
+'\n' Text
+
+'Object' Name.Builtin
+'.' Operator
+'getProperty' Name.Other
+',' Punctuation
+' ' Text
+'to' Name.Other
+' ' Text
+'get' Name.Other
+' ' Text
+'a' Name.Other
+' ' Text
+'property' Name.Other
+'.' Operator
+'\n' Text
+
+'Object' Name.Builtin
+'.' Operator
+'removeProperty' Name.Other
+',' Punctuation
+' ' Text
+'to' Name.Other
+' ' Text
+'delete' Keyword.Reserved
+' ' Text
+'a' Name.Other
+' ' Text
+'property' Name.Other
+'.' Operator
+'\n' Text
+
+'Object' Name.Builtin
+'.' Operator
+'hasProperty' Name.Other
+',' Punctuation
+' ' Text
+'to' Name.Other
+' ' Text
+'test' Name.Other
+' ' Text
+'for' Keyword
+' ' Text
+'the' Name.Other
+' ' Text
+'existence' Name.Other
+' ' Text
+'of' Name.Other
+' ' Text
+'a' Name.Other
+' ' Text
+'property' Name.Other
+'.' Operator
+'\n' Text
+
+'Object' Name.Builtin
+'.' Operator
+'properties' Name.Other
+',' Punctuation
+' ' Text
+'to' Name.Other
+' ' Text
+'get' Name.Other
+' ' Text
+'all' Name.Other
+' ' Text
+'the' Name.Other
+' ' Text
+'properties' Name.Other
+' ' Text
+'of' Name.Other
+' ' Text
+'a' Name.Other
+' ' Text
+'slot' Name.Other
+'.' Operator
+'\n\n' Text
+
+'enum' Keyword
+' ' Text
+'Suit' Name.Other
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'hearts' Name.Other
+',' Punctuation
+' \n ' Text
+'diamonds' Name.Other
+',' Punctuation
+' \n ' Text
+'clubs' Name.Other
+',' Punctuation
+' \n ' Text
+'spades' Name.Other
+',' Punctuation
+' ' Text
+'// Last comma is optional \n' Comment
+
+'}' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'for' Keyword
+' ' Text
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'suit' Name.Other
+' ' Text
+'in' Operator.Word
+' ' Text
+'Suit' Name.Other
+')' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'%s the ace of %s."' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'[' Punctuation
+'find_ace' Name.Other
+'(' Punctuation
+'suit' Name.Other
+')' Punctuation
+',' Punctuation
+' ' Text
+'suit' Name.Other
+'])' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'switch' Keyword
+' ' Text
+'(' Punctuation
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'foo"' Literal.String.Double
+',' Punctuation
+' ' Text
+'[' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+'])' Punctuation
+' ' Text
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'// The pattern does not match the values of the list. \n' Comment
+
+' ' Text
+'case' Keyword
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'foo"' Literal.String.Double
+',' Punctuation
+' ' Text
+'[' Punctuation
+'2' Literal.Number.Float
+',' Punctuation
+' ' Text
+'1' Literal.Number.Float
+'])' Punctuation
+':' Operator
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'fail"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n \n ' Text
+'// The pattern does not match the tuple. \n' Comment
+
+' ' Text
+'case' Keyword
+' ' Text
+'[' Punctuation
+'"' Literal.String.Double
+'foo"' Literal.String.Double
+',' Punctuation
+' ' Text
+'[' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+']]' Punctuation
+':' Operator
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'fail"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n \n ' Text
+'// The pattern matches and binds the variable "l" \n' Comment
+
+' ' Text
+'// but the condition is not verified. \n' Comment
+
+' ' Text
+'case' Keyword
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'foo"' Literal.String.Double
+',' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'l' Name.Other
+')' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'l' Name.Other
+'.' Operator
+'size' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'0' Literal.Number.Float
+':' Operator
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'fail"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n \n ' Text
+'// The pattern matches. \n' Comment
+
+' ' Text
+'case' Keyword
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'foo"' Literal.String.Double
+',' Punctuation
+' ' Text
+'[' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'a' Name.Other
+',' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'b' Name.Other
+'])' Punctuation
+':' Operator
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'foo(%s, %s)"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'[' Punctuation
+'a' Name.Other
+',' Punctuation
+' ' Text
+'b' Name.Other
+'])' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'//[00000000] *** foo(1, 2)\n' Comment
+
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'[' Punctuation
+'"' Literal.String.Double
+'b"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'b' Name.Other
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'a"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'a' Name.Other
+']' Punctuation
+' ' Text
+'=' Operator
+' ' Text
+'[' Punctuation
+'"' Literal.String.Double
+'a"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'b"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'2' Literal.Number.Float
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'c"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'3' Literal.Number.Float
+']' Punctuation
+';' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'a = %d, b = %d"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'[' Punctuation
+'a' Name.Other
+',' Punctuation
+' ' Text
+'b' Name.Other
+'])' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'//[00000000] *** a = 1, b = 2\n' Comment
+
+' \n \n' Text
+
+'switch' Keyword
+' ' Text
+'([' Punctuation
+'"' Literal.String.Double
+'speed"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'2' Literal.Number.Float
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'time"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'6s' Literal.Number.Float
+'])' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'case' Keyword
+' ' Text
+'[' Punctuation
+'"' Literal.String.Double
+'speed"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'s' Name.Other
+']' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'s' Name.Other
+' ' Text
+'>' Operator
+' ' Text
+'3' Literal.Number.Float
+':' Operator
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'Too fast"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'case' Keyword
+' ' Text
+'[' Punctuation
+'"' Literal.String.Double
+'speed"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'s' Name.Other
+',' Punctuation
+' ' Text
+'"' Literal.String.Double
+'time"' Literal.String.Double
+' ' Text
+'=>' Operator
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'t' Name.Other
+']' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'s' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'t' Name.Other
+' ' Text
+'>' Operator
+' ' Text
+'10' Literal.Number.Float
+':' Operator
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'Too far"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'//[00000000] *** Too far\n' Comment
+
+' \n \n' Text
+
+'try' Keyword
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'throw' Keyword
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'message"' Literal.String.Double
+',' Punctuation
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+' \n' Text
+
+'}' Punctuation
+' \n' Text
+
+'catch' Keyword
+' ' Text
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'e' Name.Other
+' ' Text
+'if' Keyword
+' ' Text
+'e' Name.Other
+'.' Operator
+'isA' Name.Other
+'(' Punctuation
+'Exception' Name.Builtin
+'))' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'e' Name.Other
+'.' Operator
+'message' Name.Other
+')' Punctuation
+' \n' Text
+
+'}' Punctuation
+' \n' Text
+
+'catch' Keyword
+' ' Text
+'((' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'msg' Name.Other
+',' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'value' Name.Other
+')' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'value' Name.Other
+'.' Operator
+'isA' Name.Other
+'(' Punctuation
+'Float' Name.Builtin
+'))' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'%s: %d"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'[' Punctuation
+'msg' Name.Other
+',' Punctuation
+' ' Text
+'value' Name.Other
+'])' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'//[00000000] *** message: 0\n' Comment
+
+' \n \n' Text
+
+'{' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'e' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'Event' Name.Builtin
+'.' Operator
+'new' Keyword
+';' Punctuation
+' \n ' Text
+'at' Keyword
+' ' Text
+'(' Punctuation
+'e' Name.Other
+'?' Punctuation
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'msg' Name.Other
+',' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'value' Name.Other
+')' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'value' Name.Other
+' ' Text
+'%' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'==' Operator
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'%s: %d"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'[' Punctuation
+'msg' Name.Other
+',' Punctuation
+' ' Text
+'value' Name.Other
+'])' Punctuation
+';' Punctuation
+' \n \n ' Text
+'// Does not trigger the "at" because the guard is not verified. \n' Comment
+
+' ' Text
+'e' Name.Other
+'!' Punctuation
+'(' Punctuation
+'"' Literal.String.Double
+'message"' Literal.String.Double
+',' Punctuation
+' ' Text
+'1' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n \n ' Text
+'// Trigger the "at". \n' Comment
+
+' ' Text
+'e' Name.Other
+'!' Punctuation
+'(' Punctuation
+'"' Literal.String.Double
+'message"' Literal.String.Double
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'//[00000000] *** message: 2\n' Comment
+
+' \n' Text
+
+'for' Keyword
+' ' Text
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'i' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Float
+';' Punctuation
+' ' Text
+'i' Name.Other
+' ' Text
+'<' Operator
+' ' Text
+'8' Literal.Number.Float
+';' Punctuation
+' ' Text
+'i' Name.Other
+'++' Operator
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'i' Name.Other
+' ' Text
+'%' Operator
+' ' Text
+'2' Literal.Number.Float
+' ' Text
+'!' Punctuation
+'=' Operator
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'continue' Keyword
+';' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'i' Name.Other
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n\n' Text
+
+'do' Keyword.Declaration
+' ' Text
+'(' Punctuation
+'1024' Literal.Number.Float
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'assert' Keyword
+'(' Punctuation
+'this' Keyword
+' ' Text
+'==' Operator
+' ' Text
+'1024' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'assert' Keyword
+'(' Punctuation
+'sqrt' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'32' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'setSlot' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'y"' Literal.String.Double
+',' Punctuation
+' ' Text
+'23' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+'.' Operator
+'y' Name.Other
+';' Punctuation
+' \n \n' Text
+
+'{' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'n' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'10' Literal.Number.Float
+'|;' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'res' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'[]' Punctuation
+'|;' Punctuation
+' \n ' Text
+'loop;' Keyword
+'{' Punctuation
+' \n ' Text
+'n' Name.Other
+'--' Operator
+';' Punctuation
+' \n ' Text
+'res' Name.Other
+' ' Text
+'<<' Operator
+' ' Text
+'n' Name.Other
+';' Punctuation
+' \n ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'n' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'break' Keyword
+' \n ' Text
+'}' Punctuation
+';' Punctuation
+' \n ' Text
+'res' Name.Other
+' \n' Text
+
+'}' Punctuation
+' \n \n \n' Text
+
+'{' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'n' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'10' Literal.Number.Float
+'|;' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'res' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'[]' Punctuation
+'|;' Punctuation
+' \n ' Text
+'loop|' Keyword
+'{' Punctuation
+' \n ' Text
+'n' Name.Other
+'--' Operator
+';' Punctuation
+' \n ' Text
+'res' Name.Other
+' ' Text
+'<<' Operator
+' ' Text
+'n' Name.Other
+';' Punctuation
+' \n ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'n' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'0' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'break' Keyword
+' \n ' Text
+'}' Punctuation
+';' Punctuation
+' \n ' Text
+'res' Name.Other
+' \n' Text
+
+'}' Punctuation
+' \n\n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'j' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'3' Literal.Number.Float
+'|' Punctuation
+' \n' Text
+
+'while' Keyword
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Float
+' ' Text
+'<' Operator
+' ' Text
+'j' Name.Other
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'j' Name.Other
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'j' Name.Other
+'--' Operator
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n\n \n' Text
+
+'{' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'i' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'4' Literal.Number.Float
+'|' Punctuation
+' \n ' Text
+'while|' Keyword
+' ' Text
+'(' Punctuation
+'true' Keyword.Constant
+')' Punctuation
+' \n ' Text
+'{' Punctuation
+' \n ' Text
+'i' Name.Other
+' ' Text
+'-=' Operator
+' ' Text
+'1' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'echo' Name.Other
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'in: "' Literal.String.Double
+' ' Text
+'+' Operator
+' ' Text
+'i' Name.Other
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'i' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'1' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'break' Keyword
+' \n ' Text
+'else' Keyword
+' ' Text
+'if' Keyword
+' ' Text
+'(' Punctuation
+'i' Name.Other
+' ' Text
+'==' Operator
+' ' Text
+'2' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'continue' Keyword
+';' Punctuation
+' \n ' Text
+'echo' Name.Other
+' ' Text
+'(' Punctuation
+'"' Literal.String.Double
+'out: "' Literal.String.Double
+' ' Text
+'+' Operator
+' ' Text
+'i' Name.Other
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n\n \n \n' Text
+
+'function' Keyword.Declaration
+' ' Text
+'test' Name.Other
+'(' Punctuation
+'e' Name.Other
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'try' Keyword
+' \n ' Text
+'{' Punctuation
+' ' Text
+'throw' Keyword
+' ' Text
+'e' Name.Other
+';' Punctuation
+' ' Text
+'}' Punctuation
+' \n ' Text
+'catch' Keyword
+' ' Text
+'(' Punctuation
+'0' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'{' Punctuation
+' ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'zero"' Literal.String.Double
+')' Punctuation
+' ' Text
+'}' Punctuation
+' \n ' Text
+'catch' Keyword
+' ' Text
+'([' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'x' Name.Other
+',' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'y' Name.Other
+'])' Punctuation
+' \n ' Text
+'{' Punctuation
+' ' Text
+'echo' Name.Other
+'(' Punctuation
+'x' Name.Other
+' ' Text
+'+' Operator
+' ' Text
+'y' Name.Other
+')' Punctuation
+' ' Text
+'}' Punctuation
+' \n' Text
+
+'}' Punctuation
+' ' Text
+'|' Punctuation
+' ' Text
+'{}' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'try' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'try"' Literal.String.Double
+')' Punctuation
+' ' Text
+'}' Punctuation
+' \n' Text
+
+'catch' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'catch"' Literal.String.Double
+')}' Punctuation
+' \n' Text
+
+'else' Keyword
+' ' Text
+'{' Punctuation
+' ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'else"' Literal.String.Double
+')}' Punctuation
+';' Punctuation
+' \n \n \n' Text
+
+'try' Keyword
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'inside"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+' \n' Text
+
+'finally' Keyword
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'finally"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n' Text
+
+'//[00000001] *** inside \n' Comment
+
+'//[00000002] *** finally\n' Comment
+
+' \n' Text
+
+'at' Keyword
+' ' Text
+'(' Punctuation
+'e' Name.Other
+'?' Punctuation
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'start' Name.Other
+')' Punctuation
+' ' Text
+'~' Operator
+' ' Text
+'1s' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'in : %s"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'(' Punctuation
+'time' Name.Other
+' ' Text
+'-' Operator
+' ' Text
+'start' Name.Other
+')' Punctuation
+'.' Operator
+'round' Name.Other
+')' Punctuation
+' \n' Text
+
+'onleave' Keyword
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'out: %s"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'(' Punctuation
+'time' Name.Other
+' ' Text
+'-' Operator
+' ' Text
+'start' Name.Other
+')' Punctuation
+'.' Operator
+'round' Name.Other
+')' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'// This emission is too short to trigger the at. \n' Comment
+
+'e' Name.Other
+'!' Punctuation
+'(' Punctuation
+'time' Name.Other
+')' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'// This one is long enough. \n' Comment
+
+'// The body triggers 1s after the emission started. \n' Comment
+
+'e' Name.Other
+'!' Punctuation
+'(' Punctuation
+'time' Name.Other
+')' Punctuation
+' ' Text
+'~' Operator
+' ' Text
+'2s' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'//[00001000] *** in : 1 \n' Comment
+
+'//[00002000] *** out: 2\n' Comment
+
+' \n\n' Text
+
+'timeout' Keyword
+' ' Text
+'(' Punctuation
+'2.1s' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'every' Keyword
+' ' Text
+'(' Punctuation
+'1s' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'Are you still there?"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'//[00000000] *** Are you still there? \n' Comment
+
+'//[00001000] *** Are you still there? \n' Comment
+
+'//[00002000] *** Are you still there?\n' Comment
+
+' \n ' Text
+'every|' Keyword
+' ' Text
+'(' Punctuation
+'1s' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'aba"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'}' Punctuation
+';' Punctuation
+' \n\n' Text
+
+'for,' Keyword
+' ' Text
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'i' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'3' Literal.Number.Float
+';' Punctuation
+' ' Text
+'0' Literal.Number.Float
+' ' Text
+'<' Operator
+' ' Text
+'i' Name.Other
+';' Punctuation
+' ' Text
+'i' Name.Other
+' ' Text
+'-=' Operator
+' ' Text
+'1' Literal.Number.Float
+')' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+' ' Text
+'(' Punctuation
+'i' Name.Other
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n \n \n' Text
+
+'for&' Keyword
+' ' Text
+'(' Punctuation
+'var' Keyword.Declaration
+' ' Text
+'i' Name.Other
+':' Operator
+' ' Text
+'[' Punctuation
+'0' Literal.Number.Float
+',' Punctuation
+' ' Text
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'2' Literal.Number.Float
+'])' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'echo' Name.Other
+' ' Text
+'(' Punctuation
+'i' Name.Other
+' ' Text
+'*' Operator
+' ' Text
+'i' Name.Other
+')' Punctuation
+';' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n \n' Text
+
+'loop,' Keyword
+'{' Punctuation
+' \n' Text
+
+'}' Punctuation
+';' Punctuation
+' \n\n\n' Text
+
+'waituntil' Keyword
+' ' Text
+'(' Punctuation
+'e' Name.Other
+'?' Punctuation
+'(' Punctuation
+'1' Literal.Number.Float
+',' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'b' Name.Other
+'))' Punctuation
+';' Punctuation
+' \n\n' Text
+
+'whenever' Keyword
+' ' Text
+'(' Punctuation
+'e' Name.Other
+'?' Punctuation
+'(' Punctuation
+'"' Literal.String.Double
+'arg"' Literal.String.Double
+',' Punctuation
+' ' Text
+'var' Keyword.Declaration
+' ' Text
+'arg' Name.Other
+')' Punctuation
+' ' Text
+'if' Keyword
+' ' Text
+'arg' Name.Other
+' ' Text
+'%' Operator
+' ' Text
+'2' Literal.Number.Float
+')' Punctuation
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'e (%s) on"' Literal.String.Double
+' ' Text
+'%' Operator
+' ' Text
+'arg' Name.Other
+')' Punctuation
+' \n' Text
+
+'else' Keyword
+' \n ' Text
+'echo' Name.Other
+'(' Punctuation
+'"' Literal.String.Double
+'e off"' Literal.String.Double
+')' Punctuation
+';' Punctuation
+' \n\n\n ' Text
+'while,' Keyword
+' ' Text
+'(' Punctuation
+'i' Name.Other
+')' Punctuation
+' \n ' Text
+'{' Punctuation
+' \n ' Text
+'var' Keyword.Declaration
+' ' Text
+'j' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'i' Name.Other
+' ' Text
+'-=' Operator
+' ' Text
+'1' Literal.Number.Float
+';' Punctuation
+' \n ' Text
+'}' Punctuation
+'|' Punctuation
+' \n \n \n' Text
+
+'var' Keyword.Declaration
+' ' Text
+'y' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'0' Literal.Number.Float
+';' Punctuation
+' \n' Text
+
+'{' Punctuation
+' \n ' Text
+'sleep' Name.Other
+'(' Punctuation
+'0.5s' Literal.Number.Float
+')' Punctuation
+';' Punctuation
+' \n ' Text
+'y' Name.Other
+' ' Text
+'=' Operator
+' ' Text
+'100' Literal.Number.Float
+' ' Text
+'smooth' Name.Other
+':' Operator
+'3s' Literal.Number.Float
+',' Punctuation
+' \n' Text
+
+'}' Punctuation
+',' Punctuation
+'\n\n \n \n' Text