---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
