'//'          Comment.Single
'\n'          Text.Whitespace

'// Copyright (c) 2008, Brian Frank and Andy Frank' Comment.Single
'\n'          Text.Whitespace

'// Licensed under the Academic Free License version 3.0' Comment.Single
'\n'          Text.Whitespace

'//'          Comment.Single
'\n'          Text.Whitespace

'// History:' Comment.Single
'\n'          Text.Whitespace

'//   17 Nov 08  Brian Frank  Creation' Comment.Single
'\n'          Text.Whitespace

'//'          Comment.Single
'\n\n'        Text.Whitespace

'using'       Keyword.Namespace
' '           Text.Whitespace
'compiler'    Name.Namespace
'\n\n'        Text.Whitespace

'**'          Comment.Special
'\n'          Text.Whitespace

'** JavaBridge is the compiler plugin for bringing Java' Comment.Special
'\n'          Text.Whitespace

'** classes into the Fantom type system.' Comment.Special
'\n'          Text.Whitespace

'**'          Comment.Special
'\n'          Text.Whitespace

'class'       Keyword
' '           Text.Whitespace
'JavaBridge'  Name.Class
' '           Text.Whitespace
':'           Punctuation
' '           Text.Whitespace
'CBridge'     Name.Class
'\n'          Text.Whitespace

'{'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// Constructor' Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Construct a JavaBridge for current environment' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'new'         Keyword
' '           Text.Whitespace
'make'        Name.Function
'('           Punctuation
'Compiler'    Name.Class
' '           Text.Whitespace
'c'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'ClassPath'   Name.Class
' '           Text.Whitespace
'cp'          Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'C'           Text
'l'           Text
'a'           Text
's'           Text
's'           Text
'P'           Text
'a'           Text
't'           Text
'h'           Text
'.'           Operator
'makeForCurrent' Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
':'           Text
' '           Text.Whitespace
'super'       Name.Builtin.Pseudo
'('           Punctuation
'c'           Text
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'this'        Name.Builtin.Pseudo
'.'           Operator
'cp'          Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'c'           Text
'p'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// Namespace' Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Map a FFI "podName" to a Java package.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'CPod'        Name.Class
' '           Text.Whitespace
'resolvePod'  Name.Function
'('           Punctuation
'Str'         Name.Class
' '           Text.Whitespace
'name'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'Loc'         Name.Class
'?'           Punctuation
' '           Text.Whitespace
'loc'         Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// the empty package is used to represent primitives' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'n'           Text
'a'           Text
'm'           Text
'e'           Text
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'"'           Punctuation
'"'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'p'           Text
'r'           Text
'i'           Text
'm'           Text
'i'           Text
't'           Text
'i'           Text
'v'           Text
'e'           Text
's'           Text
'\n\n    '    Text.Whitespace
'// look for package name in classpatch' Comment.Single
'\n    '      Text.Whitespace
'classes'     Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'c'           Text
'p'           Text
'.'           Operator
'classes'     Name.Function
'['           Operator
'n'           Text
'a'           Text
'm'           Text
'e'           Text
']'           Operator
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'c'           Text
'l'           Text
'a'           Text
's'           Text
's'           Text
'e'           Text
's'           Text
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
'\n      '    Text.Whitespace
'throw'       Keyword
' '           Text.Whitespace
'C'           Text
'o'           Text
'm'           Text
'p'           Text
'i'           Text
'l'           Text
'e'           Text
'r'           Text
'E'           Text
'r'           Text
'r'           Text
'('           Punctuation
'"'           Punctuation
'J'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
' '           Literal.String
'p'           Literal.String
'a'           Literal.String
'c'           Literal.String
'k'           Literal.String
'a'           Literal.String
'g'           Literal.String
'e'           Literal.String
' '           Literal.String
"'"           Literal.String
'$name'       Literal.String.Interpol
"'"           Literal.String
' '           Literal.String
'n'           Literal.String
'o'           Literal.String
't'           Literal.String
' '           Literal.String
'f'           Literal.String
'o'           Literal.String
'u'           Literal.String
'n'           Literal.String
'd'           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'l'           Text
'o'           Text
'c'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// map package to JavaPod' Comment.Single
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'P'           Text
'o'           Text
'd'           Text
'('           Punctuation
'this'        Name.Builtin.Pseudo
','           Text
' '           Text.Whitespace
'n'           Text
'a'           Text
'm'           Text
'e'           Text
','           Text
' '           Text.Whitespace
'c'           Text
'l'           Text
'a'           Text
's'           Text
's'           Text
'e'           Text
's'           Text
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Map class meta-data and Java members to Fantom slots' Comment.Special
'\n  '        Text.Whitespace
'** for the specified JavaType.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'virtual'     Keyword
' '           Text.Whitespace
'Void'        Name.Class
' '           Text.Whitespace
'loadType'    Name.Function
'('           Punctuation
'JavaType'    Name.Class
' '           Text.Whitespace
'type'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'Str'         Name.Class
':'           Punctuation
'CSlot'       Name.Class
' '           Text.Whitespace
'slots'       Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'R'           Text
'e'           Text
'f'           Text
'l'           Text
'e'           Text
'c'           Text
't'           Text
'.'           Operator
'loadType'    Name.Function
'('           Punctuation
't'           Text
'y'           Text
'p'           Text
'e'           Text
','           Text
' '           Text.Whitespace
's'           Text
'l'           Text
'o'           Text
't'           Text
's'           Text
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// Call Resolution' Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Resolve a construction call to a Java constructor.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'resolveConstruction' Name.Function
'('           Punctuation
'CallExpr'    Name.Class
' '           Text.Whitespace
'call'        Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// if the last argument is an it-block, then we know' Comment.Single
'\n    '      Text.Whitespace
'// right away that we will not be passing it thru to Java,' Comment.Single
'\n    '      Text.Whitespace
'// so strip it off to be appended as call to Obj.with' Comment.Single
'\n    '      Text.Whitespace
'itBlock'     Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'args'        Name.Function
'.'           Operator
'last'        Name.Function
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'C'           Text
'l'           Text
'o'           Text
's'           Text
'u'           Text
'r'           Text
'e'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
't'           Text
'B'           Text
'l'           Text
'o'           Text
'c'           Text
'k'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'i'           Text
't'           Text
'B'           Text
'l'           Text
'o'           Text
'c'           Text
'k'           Text
'.'           Operator
'isItBlock'   Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'args'        Name.Function
'.'           Operator
'removeAt'    Name.Function
'('           Punctuation
'-'           Operator
'1'           Literal.Number.Integer
')'           Punctuation
'\n    '      Text.Whitespace
'else'        Keyword
'\n      '    Text.Whitespace
'i'           Text
't'           Text
'B'           Text
'l'           Text
'o'           Text
'c'           Text
'k'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
'\n\n    '    Text.Whitespace
'// if this is an interop array like IntArray/int[] use make' Comment.Single
'\n    '      Text.Whitespace
'// factory otherwise look for Java constructor called <init>' Comment.Single
'\n    '      Text.Whitespace
'JavaType'    Name.Class
' '           Text.Whitespace
'base'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'target'      Name.Function
'.'           Operator
'ctype'       Name.Function
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'isInteropArray' Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'method'      Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'method'      Name.Function
'('           Punctuation
'"'           Punctuation
'm'           Literal.String
'a'           Literal.String
'k'           Literal.String
'e'           Literal.String
'"'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'else'        Keyword
'\n      '    Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'method'      Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'method'      Name.Function
'('           Punctuation
'"'           Punctuation
'<'           Literal.String
'i'           Literal.String
'n'           Literal.String
'i'           Literal.String
't'           Literal.String
'>'           Literal.String
'"'           Punctuation
')'           Punctuation
'\n\n    '    Text.Whitespace
'// call resolution to deal with overloading' Comment.Single
'\n    '      Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'r'           Text
'e'           Text
's'           Text
'o'           Text
'l'           Text
'v'           Text
'e'           Text
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// we need to create an implicit target for the Java runtime' Comment.Single
'\n    '      Text.Whitespace
'// to perform the new opcode to ensure it is on the stack' Comment.Single
'\n    '      Text.Whitespace
"// before the args (we don't do this for interop Array classes)" Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'isInteropArray' Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'loc'         Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'loc'         Name.Function
'\n      '    Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'target'      Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'makeWithMethod' Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'newMethod'   Name.Function
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
's'           Text
'y'           Text
'n'           Text
't'           Text
'h'           Text
'e'           Text
't'           Text
'i'           Text
'c'           Text
'='           Operator
'true'        Keyword.Constant
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// if we stripped an it-block argument,' Comment.Single
'\n    '      Text.Whitespace
'// add it as trailing call to Obj.with' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
't'           Text
'B'           Text
'l'           Text
'o'           Text
'c'           Text
'k'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'i'           Text
't'           Text
'B'           Text
'l'           Text
'o'           Text
'c'           Text
'k'           Text
'.'           Operator
'toWith'      Name.Function
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Resolve a construction chain call where a Fantom constructor' Comment.Special
'\n  '        Text.Whitespace
'** calls the super-class constructor.  Type check the arguments' Comment.Special
'\n  '        Text.Whitespace
'** and insert any conversions needed.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'resolveConstructorChain' Name.Function
'('           Punctuation
'CallExpr'    Name.Class
' '           Text.Whitespace
'call'        Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
"// we don't allow chaining to a this ctor for Java FFI" Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'target'      Name.Function
'.'           Operator
'id'          Name.Function
' '           Text.Whitespace
'!'           Operator
'='           Operator
'='           Operator
' '           Text.Whitespace
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'I'           Text
'd'           Text
'.'           Operator
'superExpr'   Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'throw'       Keyword
' '           Text.Whitespace
'e'           Text
'r'           Text
'r'           Text
'('           Punctuation
'"'           Punctuation
'M'           Literal.String
'u'           Literal.String
's'           Literal.String
't'           Literal.String
' '           Literal.String
'u'           Literal.String
's'           Literal.String
'e'           Literal.String
' '           Literal.String
's'           Literal.String
'u'           Literal.String
'p'           Literal.String
'e'           Literal.String
'r'           Literal.String
' '           Literal.String
'c'           Literal.String
'o'           Literal.String
'n'           Literal.String
's'           Literal.String
't'           Literal.String
'r'           Literal.String
'u'           Literal.String
'c'           Literal.String
't'           Literal.String
'o'           Literal.String
'r'           Literal.String
' '           Literal.String
'c'           Literal.String
'a'           Literal.String
'l'           Literal.String
'l'           Literal.String
' '           Literal.String
'i'           Literal.String
'n'           Literal.String
' '           Literal.String
'J'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
' '           Literal.String
'F'           Literal.String
'F'           Literal.String
'I'           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'loc'         Name.Function
')'           Punctuation
'\n\n    '    Text.Whitespace
'// route to a superclass constructor' Comment.Single
'\n    '      Text.Whitespace
'JavaType'    Name.Class
' '           Text.Whitespace
'base'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'target'      Name.Function
'.'           Operator
'ctype'       Name.Function
'.'           Operator
'deref'       Name.Function
'\n    '      Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'method'      Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'method'      Name.Function
'('           Punctuation
'"'           Punctuation
'<'           Literal.String
'i'           Literal.String
'n'           Literal.String
'i'           Literal.String
't'           Literal.String
'>'           Literal.String
'"'           Punctuation
')'           Punctuation
'\n\n    '    Text.Whitespace
'// call resolution to deal with overloading' Comment.Single
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'r'           Text
'e'           Text
's'           Text
'o'           Text
'l'           Text
'v'           Text
'e'           Text
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Given a dot operator slot access on the given foreign' Comment.Special
'\n  '        Text.Whitespace
'** base type, determine the appopriate slot to use based on' Comment.Special
'\n  '        Text.Whitespace
'** whether parens were used' Comment.Special
'\n  '        Text.Whitespace
'**   base.name    =>  noParens = true' Comment.Special
'\n  '        Text.Whitespace
'**   base.name()  =>  noParens = false' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** In Java a given name could be bound to both a field and' Comment.Special
'\n  '        Text.Whitespace
'** a method.  In this case we only resolve the field if' Comment.Special
'\n  '        Text.Whitespace
'** no parens are used.  We also handle the special case of' Comment.Special
'\n  '        Text.Whitespace
'** Java annotations here because their element methods are' Comment.Special
'\n  '        Text.Whitespace
'** also mapped as Fantom fields (instance based mixin field).' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'CSlot'       Name.Class
'?'           Punctuation
' '           Text.Whitespace
'resolveSlotAccess' Name.Function
'('           Punctuation
'CType'       Name.Class
' '           Text.Whitespace
'base'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'Str'         Name.Class
' '           Text.Whitespace
'name'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'Bool'        Name.Class
' '           Text.Whitespace
'noParens'    Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// first try to resolve as a field' Comment.Single
'\n    '      Text.Whitespace
'field'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'field'       Name.Function
'('           Punctuation
'n'           Text
'a'           Text
'm'           Text
'e'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
"// if no () we used and this isn't an annotation field" Comment.Single
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'n'           Text
'o'           Text
'P'           Text
'a'           Text
'r'           Text
'e'           Text
'n'           Text
's'           Text
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'('           Punctuation
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
'.'           Operator
'isStatic'    Name.Function
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
'!'           Operator
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'isMixin'     Name.Function
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
'\n\n      '  Text.Whitespace
'// if we did find a field, then make sure we use that' Comment.Single
'\n      '    Text.Whitespace
"// field's parent type to resolve a method (becuase the" Comment.Single
'\n      '    Text.Whitespace
'// base type might be a sub-class of a Java type in which' Comment.Single
'\n      '    Text.Whitespace
'// case it is unware of field/method overloads)' Comment.Single
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
'.'           Operator
'parent'      Name.Function
'.'           Operator
'method'      Name.Function
'('           Punctuation
'n'           Text
'a'           Text
'm'           Text
'e'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// lookup method' Comment.Single
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'method'      Name.Function
'('           Punctuation
'n'           Text
'a'           Text
'm'           Text
'e'           Text
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Resolve a method call: try to find the best match' Comment.Special
'\n  '        Text.Whitespace
'** and apply any coercions needed.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'CallExpr'    Name.Class
' '           Text.Whitespace
'resolveCall' Name.Function
'('           Punctuation
'CallExpr'    Name.Class
' '           Text.Whitespace
'call'        Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// try to match against all the overloaded methods' Comment.Single
'\n    '      Text.Whitespace
'matches'     Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'CallMatch'   Name.Class
'[,]'         Literal
'\n    '      Text.Whitespace
'CMethod'     Name.Class
'?'           Punctuation
' '           Text.Whitespace
'm'           Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'method'      Name.Function
'\n    '      Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'm'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'match'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
','           Text
' '           Text.Whitespace
'm'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
' '           Text.Whitespace
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'.'           Operator
'add'         Name.Function
'('           Punctuation
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'm'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'm'           Name.Class
' '           Text.Whitespace
'is'          Name.Variable
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
' '           Text.Whitespace
'?'           Text
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
')'           Punctuation
'm'           Text
')'           Punctuation
'.'           Operator
'next'        Name.Function
' '           Text.Whitespace
':'           Text
' '           Text.Whitespace
'null'        Keyword.Constant
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// if we have exactly one match use then use that one' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'['           Operator
'0'           Literal.Number.Integer
']'           Operator
'.'           Operator
'apply'       Name.Function
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// if we have multiple matches; resolve to' Comment.Single
'\n    '      Text.Whitespace
'// most specific match according to JLS rules' Comment.Single
'\n    '      Text.Whitespace
'// TODO: this does not correct resolve when using Fantom implicit casting' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'best'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'r'           Text
'e'           Text
's'           Text
'o'           Text
'l'           Text
'v'           Text
'e'           Text
'M'           Text
'o'           Text
's'           Text
't'           Text
'S'           Text
'p'           Text
'e'           Text
'c'           Text
'i'           Text
'f'           Text
'i'           Text
'c'           Text
'('           Punctuation
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'b'           Text
'e'           Text
's'           Text
't'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'b'           Text
'e'           Text
's'           Text
't'           Text
'.'           Operator
'apply'       Name.Function
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// zero or multiple ambiguous matches is a compiler error' Comment.Single
'\n    '      Text.Whitespace
's'           Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'S'           Text
't'           Text
'r'           Text
'B'           Text
'u'           Text
'f'           Text
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
's'           Text
'.'           Operator
'add'         Name.Function
'('           Punctuation
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'.'           Operator
'isEmpty'     Name.Function
' '           Text.Whitespace
'?'           Text
' '           Text.Whitespace
'"'           Punctuation
'I'           Literal.String
'n'           Literal.String
'v'           Literal.String
'a'           Literal.String
'l'           Literal.String
'i'           Literal.String
'd'           Literal.String
' '           Literal.String
'a'           Literal.String
'r'           Literal.String
'g'           Literal.String
's'           Literal.String
' '           Literal.String
'"'           Punctuation
' '           Text.Whitespace
':'           Text
' '           Text.Whitespace
'"'           Punctuation
'A'           Literal.String
'm'           Literal.String
'b'           Literal.String
'i'           Literal.String
'g'           Literal.String
'u'           Literal.String
'o'           Literal.String
'u'           Literal.String
's'           Literal.String
' '           Literal.String
'c'           Literal.String
'a'           Literal.String
'l'           Literal.String
'l'           Literal.String
' '           Literal.String
'"'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
's'           Text
'.'           Operator
'add'         Name.Function
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'name'        Name.Function
')'           Punctuation
'.'           Operator
'add'         Name.Function
'('           Punctuation
'"'           Punctuation
'('           Literal.String
'"'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
's'           Text
'.'           Operator
'add'         Name.Function
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'args'        Name.Function
'.'           Operator
'join'        Name.Function
'('           Punctuation
'"'           Punctuation
','           Literal.String
' '           Literal.String
'"'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'|'           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'arg'         Name.Variable
'->'          Punctuation
'Str'         Name.Class
'|'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'a'           Text
'r'           Text
'g'           Text
'.'           Operator
'toTypeStr'   Name.Function
' '           Text.Whitespace
'}'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
's'           Text
'.'           Operator
'add'         Name.Function
'('           Punctuation
'"'           Punctuation
')'           Literal.String
'"'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'throw'       Keyword
' '           Text.Whitespace
'e'           Text
'r'           Text
'r'           Text
'('           Punctuation
's'           Text
'.'           Operator
'toStr'       Name.Function
','           Text
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'loc'         Name.Function
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Check if the call matches the specified overload method.' Comment.Special
'\n  '        Text.Whitespace
'** If so return method and coerced args otherwise return null.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'internal'    Keyword
' '           Text.Whitespace
'CallMatch'   Name.Class
'?'           Punctuation
' '           Text.Whitespace
'matchCall'   Name.Function
'('           Punctuation
'CallExpr'    Name.Class
' '           Text.Whitespace
'call'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'CMethod'     Name.Class
' '           Text.Whitespace
'm'           Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// first check if have matching numbers of args and params' Comment.Single
'\n    '      Text.Whitespace
'args'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'args'        Name.Function
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'm'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'a'           Text
'r'           Text
'g'           Text
's'           Text
'.'           Operator
'size'        Name.Function
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'null'        Keyword.Constant
'\n\n    '    Text.Whitespace
'// check if each argument is ok or can be coerced' Comment.Single
'\n    '      Text.Whitespace
'isErr'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'false'       Keyword.Constant
'\n    '      Text.Whitespace
'newArgs'     Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'a'           Text
'r'           Text
'g'           Text
's'           Text
'.'           Operator
'dup'         Name.Function
'\n    '      Text.Whitespace
'm'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'each'        Name.Function
' '           Text.Whitespace
'|'           Punctuation
'CParam'      Name.Class
' '           Text.Whitespace
'p'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'Int'         Name.Class
' '           Text.Whitespace
'i'           Name.Variable
'|'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
' '           Text.Whitespace
'>='          Operator
' '           Text.Whitespace
'a'           Text
'r'           Text
'g'           Text
's'           Text
'.'           Operator
'size'        Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'{'           Punctuation
'\n        '  Text.Whitespace
'// param has a default value, then that is ok' Comment.Single
'\n        '  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'p'           Text
'.'           Operator
'hasDefault'  Name.Function
')'           Punctuation
' '           Text.Whitespace
'i'           Text
's'           Text
'E'           Text
'r'           Text
'r'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Keyword.Constant
'\n      '    Text.Whitespace
'}'           Punctuation
'\n      '    Text.Whitespace
'else'        Keyword
'\n      '    Text.Whitespace
'{'           Punctuation
'\n        '  Text.Whitespace
'// ensure arg fits parameter type (or auto-cast)' Comment.Single
'\n        '  Text.Whitespace
'n'           Text
'e'           Text
'w'           Text
'A'           Text
'r'           Text
'g'           Text
's'           Text
'['           Operator
'i'           Text
']'           Operator
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'c'           Text
'o'           Text
'e'           Text
'r'           Text
'c'           Text
'e'           Text
'('           Punctuation
'a'           Text
'r'           Text
'g'           Text
's'           Text
'['           Operator
'i'           Text
']'           Operator
','           Text
' '           Text.Whitespace
'p'           Text
'.'           Operator
'paramType'   Name.Function
')'           Punctuation
' '           Text.Whitespace
'|'           Text
'-'           Operator
'>'           Operator
'|'           Text
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'i'           Text
's'           Text
'E'           Text
'r'           Text
'r'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Keyword.Constant
' '           Text.Whitespace
'}'           Punctuation
'\n      '    Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
's'           Text
'E'           Text
'r'           Text
'r'           Text
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'null'        Keyword.Constant
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'M'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'it'          Name.Builtin.Pseudo
'.'           Operator
'method'      Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'm'           Text
';'           Text
' '           Text.Whitespace
'it'          Name.Builtin.Pseudo
'.'           Operator
'args'        Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'n'           Text
'e'           Text
'w'           Text
'A'           Text
'r'           Text
'g'           Text
's'           Text
' '           Text.Whitespace
'}'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Given a list of overloaed methods find the most specific method' Comment.Special
'\n  '        Text.Whitespace
'** according to Java Language Specification 15.11.2.2.  The "informal' Comment.Special
'\n  '        Text.Whitespace
'** intuition" rule is that a method is more specific than another' Comment.Special
'\n  '        Text.Whitespace
'** if the first could be could be passed onto the second one.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'internal'    Keyword
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'CallMatch'   Name.Class
'?'           Punctuation
' '           Text.Whitespace
'resolveMostSpecific' Name.Function
'('           Punctuation
'CallMatch'   Name.Class
'['           Punctuation
']'           Punctuation
' '           Text.Whitespace
'matches'     Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'CallMatch'   Name.Class
'?'           Punctuation
' '           Text.Whitespace
'best'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'['           Operator
'0'           Literal.Number.Integer
']'           Operator
'\n    '      Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
':='          Operator
'1'           Literal.Number.Integer
';'           Text
' '           Text.Whitespace
'i'           Text
'<'           Operator
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'.'           Operator
'size'        Name.Function
';'           Text
' '           Text.Whitespace
'++'          Operator
'i'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'x'           Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'm'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'e'           Text
's'           Text
'['           Operator
'i'           Text
']'           Operator
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
's'           Text
'M'           Text
'o'           Text
'r'           Text
'e'           Text
'S'           Text
'p'           Text
'e'           Text
'c'           Text
'i'           Text
'f'           Text
'i'           Text
'c'           Text
'('           Punctuation
'b'           Text
'e'           Text
's'           Text
't'           Text
','           Text
' '           Text.Whitespace
'x'           Text
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'continue'    Keyword
' '           Text.Whitespace
'}'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
's'           Text
'M'           Text
'o'           Text
'r'           Text
'e'           Text
'S'           Text
'p'           Text
'e'           Text
'c'           Text
'i'           Text
'f'           Text
'i'           Text
'c'           Text
'('           Punctuation
'x'           Text
','           Text
' '           Text.Whitespace
'b'           Text
'e'           Text
's'           Text
't'           Text
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'b'           Text
'e'           Text
's'           Text
't'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'x'           Text
';'           Text
' '           Text.Whitespace
'continue'    Keyword
' '           Text.Whitespace
'}'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'null'        Keyword.Constant
'\n    '      Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'b'           Text
'e'           Text
's'           Text
't'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
"** Is 'a' more specific than 'b' such that 'a' could be used" Comment.Special
'\n  '        Text.Whitespace
"** passed to 'b' without a compile time error." Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'internal'    Keyword
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'Bool'        Name.Class
' '           Text.Whitespace
'isMoreSpecific' Name.Function
'('           Punctuation
'CallMatch'   Name.Class
' '           Text.Whitespace
'a'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'CallMatch'   Name.Class
' '           Text.Whitespace
'b'           Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'a'           Text
'.'           Operator
'method'      Name.Function
'.'           Operator
'params'      Name.Function
'.'           Operator
'all'         Name.Function
' '           Text.Whitespace
'|'           Punctuation
'CParam'      Name.Class
' '           Text.Whitespace
'ap'          Name.Variable
','           Punctuation
' '           Text.Whitespace
'Int'         Name.Class
' '           Text.Whitespace
'i'           Name.Variable
'->'          Punctuation
'Bool'        Name.Class
'|'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'bp'          Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'b'           Text
'.'           Operator
'method'      Name.Function
'.'           Operator
'params'      Name.Function
'['           Operator
'i'           Text
']'           Operator
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'a'           Text
'p'           Text
'.'           Operator
'paramType'   Name.Function
'.'           Operator
'fits'        Name.Function
'('           Punctuation
'b'           Text
'p'           Text
'.'           Operator
'paramType'   Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// Overrides' Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Called during Inherit step when a Fantom slot overrides a FFI slot.' Comment.Special
'\n  '        Text.Whitespace
'** Log and throw compiler error if there is a problem.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'Void'        Name.Class
' '           Text.Whitespace
'checkOverride' Name.Function
'('           Punctuation
'TypeDef'     Name.Class
' '           Text.Whitespace
't'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'CSlot'       Name.Class
' '           Text.Whitespace
'base'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'SlotDef'     Name.Class
' '           Text.Whitespace
'def'         Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
"// we don't allow Fantom to override Java methods with multiple" Comment.Single
'\n    '      Text.Whitespace
"// overloaded versions since the Fantom type system can't actually" Comment.Single
'\n    '      Text.Whitespace
'// override all the overloaded versions' Comment.Single
'\n    '      Text.Whitespace
'jslot'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'base'        Name.Class
' '           Text.Whitespace
'as'          Name.Variable
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'S'           Text
'l'           Text
'o'           Text
't'           Text
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'j'           Text
's'           Text
'l'           Text
'o'           Text
't'           Text
'?'           Text
'.'           Operator
'next'        Name.Function
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
'\n      '    Text.Whitespace
'throw'       Keyword
' '           Text.Whitespace
'e'           Text
'r'           Text
'r'           Text
'('           Punctuation
'"'           Punctuation
'C'           Literal.String
'a'           Literal.String
'n'           Literal.String
'n'           Literal.String
'o'           Literal.String
't'           Literal.String
' '           Literal.String
'o'           Literal.String
'v'           Literal.String
'e'           Literal.String
'r'           Literal.String
'r'           Literal.String
'i'           Literal.String
'd'           Literal.String
'e'           Literal.String
' '           Literal.String
'J'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
' '           Literal.String
'o'           Literal.String
'v'           Literal.String
'e'           Literal.String
'r'           Literal.String
'l'           Literal.String
'o'           Literal.String
'a'           Literal.String
'd'           Literal.String
'e'           Literal.String
'd'           Literal.String
' '           Literal.String
'm'           Literal.String
'e'           Literal.String
't'           Literal.String
'h'           Literal.String
'o'           Literal.String
'd'           Literal.String
':'           Literal.String
' '           Literal.String
"'"           Literal.String
'$jslot'      Literal.String.Interpol
'.'           Literal.String
'n'           Literal.String
'a'           Literal.String
'm'           Literal.String
'e'           Literal.String
"'"           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'loc'         Name.Function
')'           Punctuation
'\n\n    '    Text.Whitespace
'// route to method override checking' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'base'        Name.Class
' '           Text.Whitespace
'is'          Name.Variable
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'def'         Name.Class
' '           Text.Whitespace
'is'          Name.Variable
' '           Text.Whitespace
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'D'           Text
'e'           Text
'f'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'c'           Text
'h'           Text
'e'           Text
'c'           Text
'k'           Text
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'O'           Text
'v'           Text
'e'           Text
'r'           Text
'r'           Text
'i'           Text
'd'           Text
'e'           Text
'('           Punctuation
't'           Text
','           Text
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
','           Text
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Called on method/method overrides in the checkOverride callback.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'private'     Keyword
' '           Text.Whitespace
'Void'        Name.Class
' '           Text.Whitespace
'checkMethodOverride' Name.Function
'('           Punctuation
'TypeDef'     Name.Class
' '           Text.Whitespace
't'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'JavaMethod'  Name.Class
' '           Text.Whitespace
'base'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'MethodDef'   Name.Class
' '           Text.Whitespace
'def'         Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
"// bail early if we know things aren't going to work out" Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
'\n\n    '    Text.Whitespace
'// if the return type is primitive or Java array and the' Comment.Single
'\n    '      Text.Whitespace
'// Fantom declaration matches how it is inferred into the Fan' Comment.Single
'\n    '      Text.Whitespace
'// type system, then just change the return type - the compiler' Comment.Single
'\n    '      Text.Whitespace
'// will impliclty do all the return coercions' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
's'           Text
'O'           Text
'v'           Text
'e'           Text
'r'           Text
'r'           Text
'i'           Text
'd'           Text
'e'           Text
'I'           Text
'n'           Text
'f'           Text
'e'           Text
'r'           Text
'r'           Text
'e'           Text
'd'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'('           Punctuation
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'returnType'  Name.Function
','           Text
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'returnType'  Name.Function
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'ret'         Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'inheritedRet' Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'returnType'  Name.Function
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// if any of the parameters is a primitive or Java array' Comment.Single
'\n    '      Text.Whitespace
'// and the Fantom declaration matches how it is inferred into' Comment.Single
'\n    '      Text.Whitespace
'// the Fantom type type, then change the parameter type to' Comment.Single
'\n    '      Text.Whitespace
'// the Java override type and make the Fantom type a local' Comment.Single
'\n    '      Text.Whitespace
'// variable:' Comment.Single
'\n    '      Text.Whitespace
'//   Java:   void foo(int a) { ... }' Comment.Single
'\n    '      Text.Whitespace
'//   Fantom: Void foo(Int a) { ... }' Comment.Single
'\n    '      Text.Whitespace
'//   Result: Void foo(int a_$J) { Int a := a_$J; ... }' Comment.Single
'\n    '      Text.Whitespace
'//'          Comment.Single
'\n    '      Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'eachr'       Name.Function
' '           Text.Whitespace
'|'           Punctuation
'CParam'      Name.Class
' '           Text.Whitespace
'bp'          Name.Variable
','           Punctuation
' '           Text.Whitespace
'Int'         Name.Class
' '           Text.Whitespace
'i'           Name.Variable
'|'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'dp'          Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'paramDefs'   Name.Function
'['           Operator
'i'           Text
']'           Operator
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'i'           Text
's'           Text
'O'           Text
'v'           Text
'e'           Text
'r'           Text
'r'           Text
'i'           Text
'd'           Text
'e'           Text
'I'           Text
'n'           Text
'f'           Text
'e'           Text
'r'           Text
'r'           Text
'e'           Text
'd'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'('           Punctuation
'b'           Text
'p'           Text
'.'           Operator
'paramType'   Name.Function
','           Text
' '           Text.Whitespace
'd'           Text
'p'           Text
'.'           Operator
'paramType'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
'\n\n      '  Text.Whitespace
'// add local variable: Int bar := bar_$J' Comment.Single
'\n      '    Text.Whitespace
'local'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'L'           Text
'o'           Text
'c'           Text
'a'           Text
'l'           Text
'D'           Text
'e'           Text
'f'           Text
'S'           Text
't'           Text
'm'           Text
't'           Text
'('           Punctuation
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'loc'         Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'l'           Text
'o'           Text
'c'           Text
'a'           Text
'l'           Text
'.'           Operator
'ctype'       Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'd'           Text
'p'           Text
'.'           Operator
'paramType'   Name.Function
'\n      '    Text.Whitespace
'l'           Text
'o'           Text
'c'           Text
'a'           Text
'l'           Text
'.'           Operator
'name'        Name.Function
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'd'           Text
'p'           Text
'.'           Operator
'name'        Name.Function
'\n      '    Text.Whitespace
'l'           Text
'o'           Text
'c'           Text
'a'           Text
'l'           Text
'.'           Operator
'init'        Name.Function
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'U'           Text
'n'           Text
'k'           Text
'n'           Text
'o'           Text
'w'           Text
'n'           Text
'V'           Text
'a'           Text
'r'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'loc'         Name.Function
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'd'           Text
'p'           Text
'.'           Operator
'name'        Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'"'           Punctuation
'_'           Literal.String
'\\'          Literal.String
'$J'          Literal.String.Interpol
'"'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'code'        Name.Function
'.'           Operator
'stmts'       Name.Function
'.'           Operator
'insert'      Name.Function
'('           Punctuation
'0'           Literal.Number.Integer
','           Text
' '           Text.Whitespace
'l'           Text
'o'           Text
'c'           Text
'a'           Text
'l'           Text
')'           Punctuation
'\n\n      '  Text.Whitespace
'// rename parameter Int bar -> int bar_$J' Comment.Single
'\n      '    Text.Whitespace
'd'           Text
'p'           Text
'.'           Operator
'name'        Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'd'           Text
'p'           Text
'.'           Operator
'name'        Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'"'           Punctuation
'_'           Literal.String
'\\'          Literal.String
'$J'          Literal.String.Interpol
'"'           Punctuation
'\n      '    Text.Whitespace
'd'           Text
'p'           Text
'.'           Operator
'paramType'   Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'b'           Text
'p'           Text
'.'           Operator
'paramType'   Name.Function
'\n    '      Text.Whitespace
'}'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** When overriding a Java method check if the base type is' Comment.Special
'\n  '        Text.Whitespace
'** is a Java primitive or array and the override definition is' Comment.Special
'\n  '        Text.Whitespace
'** matches how the Java type is inferred in the Fantom type system.' Comment.Special
'\n  '        Text.Whitespace
"** If we have a match return true and we'll swizzle things in" Comment.Special
'\n  '        Text.Whitespace
'** checkMethodOverride.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'private'     Keyword
' '           Text.Whitespace
'Bool'        Name.Class
' '           Text.Whitespace
'isOverrideInferredType' Name.Function
'('           Punctuation
'CType'       Name.Class
' '           Text.Whitespace
'base'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'def'         Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// check if base class slot is a JavaType' Comment.Single
'\n    '      Text.Whitespace
'java'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'b'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'toNonNullable' Name.Function
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'j'           Text
'a'           Text
'v'           Text
'a'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'// allow primitives is it matches the inferred type' Comment.Single
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'.'           Operator
'isPrimitive' Name.Function
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'.'           Operator
'inferredAs'  Name.Function
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'\n\n      '  Text.Whitespace
'// allow arrays if mapped as Foo[] -> Foo?[]?' Comment.Single
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'.'           Operator
'isArray'     Name.Function
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'.'           Operator
'inferredAs'  Name.Function
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'toNonNullable' Name.Function
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'isNullable'  Name.Function
'\n    '      Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'false'       Keyword.Constant
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// CheckErrors' Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Called during CheckErrors step for a type which extends' Comment.Special
'\n  '        Text.Whitespace
'** a FFI class or implements any FFI mixins.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'Void'        Name.Class
' '           Text.Whitespace
'checkType'   Name.Function
'('           Punctuation
'TypeDef'     Name.Class
' '           Text.Whitespace
'def'         Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
"// can't subclass a primitive array like ByteArray/byte[]" Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'base'        Name.Function
'.'           Operator
'deref'       Name.Function
' '           Text.Whitespace
'is'          Keyword
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'base'        Name.Function
'.'           Operator
'deref'       Name.Function
'-'           Operator
'>'           Operator
'i'           Text
's'           Text
'I'           Text
'n'           Text
't'           Text
'e'           Text
'r'           Text
'o'           Text
'p'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'e'           Text
'r'           Text
'r'           Text
'('           Punctuation
'"'           Punctuation
'C'           Literal.String
'a'           Literal.String
'n'           Literal.String
'n'           Literal.String
'o'           Literal.String
't'           Literal.String
' '           Literal.String
's'           Literal.String
'u'           Literal.String
'b'           Literal.String
'c'           Literal.String
'l'           Literal.String
'a'           Literal.String
's'           Literal.String
's'           Literal.String
' '           Literal.String
'f'           Literal.String
'r'           Literal.String
'o'           Literal.String
'm'           Literal.String
' '           Literal.String
'J'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
' '           Literal.String
'i'           Literal.String
'n'           Literal.String
't'           Literal.String
'e'           Literal.String
'r'           Literal.String
'o'           Literal.String
'p'           Literal.String
' '           Literal.String
'a'           Literal.String
'r'           Literal.String
'r'           Literal.String
'a'           Literal.String
'y'           Literal.String
':'           Literal.String
' '           Literal.String
'$def'        Literal.String.Interpol
'.'           Literal.String
'b'           Literal.String
'a'           Literal.String
's'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'loc'         Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
"// we don't allow deep inheritance of Java classes because" Comment.Single
'\n    '      Text.Whitespace
"// the Fantom constructor and Java constructor model don't match" Comment.Single
'\n    '      Text.Whitespace
'// up past one level of inheritance' Comment.Single
'\n    '      Text.Whitespace
'// NOTE: that that when we remove this restriction we need to' Comment.Single
'\n    '      Text.Whitespace
'// test how field initialization works because instance$init' Comment.Single
'\n    '      Text.Whitespace
'// is almost certain to break with the current emit design' Comment.Single
'\n    '      Text.Whitespace
'javaBase'    Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'base'        Name.Function
'\n    '      Text.Whitespace
'while'       Keyword
' '           Text.Whitespace
'('           Punctuation
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'B'           Text
'a'           Text
's'           Text
'e'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'!'           Operator
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'B'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'isForeign'   Name.Function
')'           Punctuation
' '           Text.Whitespace
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'B'           Text
'a'           Text
's'           Text
'e'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'B'           Text
'a'           Text
's'           Text
'e'           Text
'.'           Operator
'base'        Name.Function
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'B'           Text
'a'           Text
's'           Text
'e'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'j'           Text
'a'           Text
'v'           Text
'a'           Text
'B'           Text
'a'           Text
's'           Text
'e'           Text
' '           Text.Whitespace
'!'           Operator
'='           Operator
'='           Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'base'        Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'e'           Text
'r'           Text
'r'           Text
'('           Punctuation
'"'           Punctuation
'C'           Literal.String
'a'           Literal.String
'n'           Literal.String
'n'           Literal.String
'o'           Literal.String
't'           Literal.String
' '           Literal.String
's'           Literal.String
'u'           Literal.String
'b'           Literal.String
'c'           Literal.String
'l'           Literal.String
'a'           Literal.String
's'           Literal.String
's'           Literal.String
' '           Literal.String
'J'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
' '           Literal.String
'c'           Literal.String
'l'           Literal.String
'a'           Literal.String
's'           Literal.String
's'           Literal.String
' '           Literal.String
'm'           Literal.String
'o'           Literal.String
'r'           Literal.String
'e'           Literal.String
' '           Literal.String
't'           Literal.String
'h'           Literal.String
'a'           Literal.String
'n'           Literal.String
' '           Literal.String
'o'           Literal.String
'n'           Literal.String
'e'           Literal.String
' '           Literal.String
'l'           Literal.String
'e'           Literal.String
'v'           Literal.String
'e'           Literal.String
'l'           Literal.String
':'           Literal.String
' '           Literal.String
'$javaBase'   Literal.String.Interpol
'"'           Punctuation
','           Text
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'loc'         Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// ensure that when we map Fantom constructors to Java' Comment.Single
'\n    '      Text.Whitespace
"// constructors that we don't have duplicate signatures" Comment.Single
'\n    '      Text.Whitespace
'ctors'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'f'           Text
'.'           Operator
'ctorDefs'    Name.Function
'\n    '      Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
's'           Text
'.'           Operator
'each'        Name.Function
' '           Text.Whitespace
'|'           Punctuation
'MethodDef'   Name.Class
' '           Text.Whitespace
'a'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'Int'         Name.Class
' '           Text.Whitespace
'i'           Name.Variable
'|'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
's'           Text
'.'           Operator
'each'        Name.Function
' '           Text.Whitespace
'|'           Punctuation
'MethodDef'   Name.Class
' '           Text.Whitespace
'b'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'Int'         Name.Class
' '           Text.Whitespace
'j'           Name.Variable
'|'           Punctuation
'\n      '    Text.Whitespace
'{'           Punctuation
'\n        '  Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'j'           Text
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'a'           Text
'r'           Text
'e'           Text
'P'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
's'           Text
'S'           Text
'a'           Text
'm'           Text
'e'           Text
'('           Punctuation
'a'           Text
','           Text
' '           Text.Whitespace
'b'           Text
')'           Punctuation
')'           Punctuation
'\n          ' Text.Whitespace
'e'           Text
'r'           Text
'r'           Text
'('           Punctuation
'"'           Punctuation
'D'           Literal.String
'u'           Literal.String
'p'           Literal.String
'l'           Literal.String
'i'           Literal.String
'c'           Literal.String
'a'           Literal.String
't'           Literal.String
'e'           Literal.String
' '           Literal.String
'J'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
' '           Literal.String
'F'           Literal.String
'F'           Literal.String
'I'           Literal.String
' '           Literal.String
'c'           Literal.String
'o'           Literal.String
'n'           Literal.String
's'           Literal.String
't'           Literal.String
'r'           Literal.String
'u'           Literal.String
'c'           Literal.String
't'           Literal.String
'o'           Literal.String
'r'           Literal.String
' '           Literal.String
's'           Literal.String
'i'           Literal.String
'g'           Literal.String
'n'           Literal.String
'a'           Literal.String
't'           Literal.String
'u'           Literal.String
'r'           Literal.String
'e'           Literal.String
's'           Literal.String
':'           Literal.String
' '           Literal.String
"'"           Literal.String
'$b'          Literal.String.Interpol
'.'           Literal.String
'n'           Literal.String
'a'           Literal.String
'm'           Literal.String
'e'           Literal.String
"'"           Literal.String
' '           Literal.String
'a'           Literal.String
'n'           Literal.String
'd'           Literal.String
' '           Literal.String
"'"           Literal.String
'$a'          Literal.String.Interpol
'.'           Literal.String
'n'           Literal.String
'a'           Literal.String
'm'           Literal.String
'e'           Literal.String
"'"           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'a'           Text
'.'           Operator
'loc'         Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Do the two methods have the exact same parameter types.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'Bool'        Name.Class
' '           Text.Whitespace
'areParamsSame' Name.Function
'('           Punctuation
'CMethod'     Name.Class
' '           Text.Whitespace
'a'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'CMethod'     Name.Class
' '           Text.Whitespace
'b'           Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'b'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'false'       Keyword.Constant
'\n    '      Text.Whitespace
'for'         Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Name.Variable
':='          Operator
'0'           Literal.Number.Integer
';'           Text
' '           Text.Whitespace
'i'           Text
'<'           Operator
'a'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
';'           Text
' '           Text.Whitespace
'++'          Operator
'i'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'.'           Operator
'params'      Name.Function
'['           Operator
'i'           Text
']'           Operator
'.'           Operator
'paramType'   Name.Function
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'b'           Text
'.'           Operator
'params'      Name.Function
'['           Operator
'i'           Text
']'           Operator
'.'           Operator
'paramType'   Name.Function
')'           Punctuation
'\n        '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'false'       Keyword.Constant
'\n    '      Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'true'        Keyword.Constant
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// Coercion' Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Return if we can make the actual type fit the expected' Comment.Special
'\n  '        Text.Whitespace
'** type, potentially using a coercion.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'Bool'        Name.Class
' '           Text.Whitespace
'fits'        Name.Function
'('           Punctuation
'CType'       Name.Class
' '           Text.Whitespace
'actual'      Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// use dummy expression and route to coerce code' Comment.Single
'\n    '      Text.Whitespace
'dummy'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'U'           Text
'n'           Text
'k'           Text
'n'           Text
'o'           Text
'w'           Text
'n'           Text
'V'           Text
'a'           Text
'r'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'L'           Text
'o'           Text
'c'           Text
'('           Punctuation
'"'           Punctuation
'd'           Literal.String
'u'           Literal.String
'm'           Literal.String
'm'           Literal.String
'y'           Literal.String
'"'           Punctuation
')'           Punctuation
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'"'           Punctuation
'd'           Literal.String
'u'           Literal.String
'm'           Literal.String
'm'           Literal.String
'y'           Literal.String
'"'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'c'           Text
't'           Text
'y'           Text
'p'           Text
'e'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'fits'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'true'        Keyword.Constant
'\n    '      Text.Whitespace
'c'           Text
'o'           Text
'e'           Text
'r'           Text
'c'           Text
'e'           Text
'('           Punctuation
'd'           Text
'u'           Text
'm'           Text
'm'           Text
'y'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
' '           Text.Whitespace
'|'           Text
'-'           Operator
'>'           Operator
'|'           Text
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'f'           Text
'i'           Text
't'           Text
's'           Text
'='           Operator
'false'       Keyword.Constant
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'f'           Text
'i'           Text
't'           Text
's'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Coerce expression to expected type.  If not a type match' Comment.Special
'\n  '        Text.Whitespace
'** then run the onErr function.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'coerce'      Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'|'           Punctuation
'-'           Punctuation
'>'           Punctuation
'|'           Punctuation
' '           Text.Whitespace
'onErr'       Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// handle easy case' Comment.Single
'\n    '      Text.Whitespace
'actual'      Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'\n    '      Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'deref'       Name.Function
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n\n    '    Text.Whitespace
'// handle null literal' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'id'          Name.Function
' '           Text.Whitespace
'='           Operator
'='           Operator
'='           Operator
' '           Text.Whitespace
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'I'           Text
'd'           Text
'.'           Operator
'nullLiteral' Name.Function
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isNullable'  Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n\n    '    Text.Whitespace
'// handle Fantom to Java primitives' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'pod'         Name.Function
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'p'           Text
'r'           Text
'i'           Text
'm'           Text
'i'           Text
't'           Text
'i'           Text
'v'           Text
'e'           Text
's'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'o'           Text
'e'           Text
'r'           Text
'c'           Text
'e'           Text
'T'           Text
'o'           Text
'P'           Text
'r'           Text
'i'           Text
'm'           Text
'i'           Text
't'           Text
'i'           Text
'v'           Text
'e'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
','           Text
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// handle Java primitives to Fan' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'pod'         Name.Function
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'p'           Text
'r'           Text
'i'           Text
'm'           Text
'i'           Text
't'           Text
'i'           Text
'v'           Text
'e'           Text
's'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'o'           Text
'e'           Text
'r'           Text
'c'           Text
'e'           Text
'F'           Text
'r'           Text
'o'           Text
'm'           Text
'P'           Text
'r'           Text
'i'           Text
'm'           Text
'i'           Text
't'           Text
'i'           Text
'v'           Text
'e'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
','           Text
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// handle Java array to Fantom list' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'name'        Name.Function
'['           Operator
'0'           Literal.Number.Integer
']'           Operator
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'['"         Literal.String.Char
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'o'           Text
'e'           Text
'r'           Text
'c'           Text
'e'           Text
'F'           Text
'r'           Text
'o'           Text
'm'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
','           Text
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// handle Fantom list to Java array' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'name'        Name.Function
'['           Operator
'0'           Literal.Number.Integer
']'           Operator
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
"'['"         Literal.String.Char
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'o'           Text
'e'           Text
'r'           Text
'c'           Text
'e'           Text
'T'           Text
'o'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
','           Text
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// handle sys::Func -> Java interface' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'actual'      Name.Class
' '           Text.Whitespace
'is'          Name.Variable
' '           Text.Whitespace
'F'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isMixin'     Name.Function
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
' '           Text.Whitespace
'is'          Keyword
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'o'           Text
'e'           Text
'r'           Text
'c'           Text
'e'           Text
'F'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'o'           Text
'I'           Text
'n'           Text
't'           Text
'e'           Text
'r'           Text
'f'           Text
'a'           Text
'c'           Text
'e'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
','           Text
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// handle special classes and interfaces for built-in Fantom' Comment.Single
'\n    '      Text.Whitespace
'// classes which actually map directly to Java built-in types' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isBool'      Name.Function
'    '        Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'b'           Text
'o'           Text
'o'           Text
'l'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
's'           Text
'.'           Operator
'contains'    Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
'.'           Operator
'signature'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'b'           Text
'o'           Text
'x'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isInt'       Name.Function
'     '       Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'i'           Text
'n'           Text
't'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
's'           Text
'.'           Operator
'contains'    Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
'.'           Operator
'signature'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'b'           Text
'o'           Text
'x'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isFloat'     Name.Function
'   '         Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'f'           Text
'l'           Text
'o'           Text
'a'           Text
't'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
's'           Text
'.'           Operator
'contains'    Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
'.'           Operator
'signature'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'b'           Text
'o'           Text
'x'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isDecimal'   Name.Function
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'd'           Text
'e'           Text
'c'           Text
'i'           Text
'm'           Text
'a'           Text
'l'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
's'           Text
'.'           Operator
'contains'    Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
'.'           Operator
'signature'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isStr'       Name.Function
'     '       Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
's'           Text
't'           Text
'r'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
's'           Text
'.'           Operator
'contains'    Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
'.'           Operator
'signature'   Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n\n     '   Text.Whitespace
'// use normal Fantom coercion behavior' Comment.Single
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'super'       Name.Builtin.Pseudo
'.'           Operator
'coerce'      Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
','           Text
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Ensure value type is boxed.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'private'     Keyword
' '           Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'box'         Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'.'           Operator
'isVal'       Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'C'           Text
'h'           Text
'e'           Text
'c'           Text
'k'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'coerce'      Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'.'           Operator
'toNullable'  Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'else'        Keyword
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Coerce a fan expression to a Java primitive (other' Comment.Special
'\n  '        Text.Whitespace
'** than the ones we support natively)' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'coerceToPrimitive' Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'JavaType'    Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'|'           Punctuation
'-'           Punctuation
'>'           Punctuation
'|'           Punctuation
' '           Text.Whitespace
'onErr'       Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'actual'      Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'\n\n    '    Text.Whitespace
'// sys::Int (long) -> int, short, byte' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isInt'       Name.Function
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isPrimitiveIntLike' Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'C'           Text
'h'           Text
'e'           Text
'c'           Text
'k'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'coerce'      Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// sys::Float (double) -> float' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isFloat'     Name.Function
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isPrimitiveFloat' Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'C'           Text
'h'           Text
'e'           Text
'c'           Text
'k'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'coerce'      Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// no coercion - type error' Comment.Single
'\n    '      Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Coerce a Java primitive to a Fantom type.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'coerceFromPrimitive' Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'|'           Punctuation
'-'           Punctuation
'>'           Punctuation
'|'           Punctuation
' '           Text.Whitespace
'onErr'       Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'actual'      Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'('           Punctuation
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'\n\n    '    Text.Whitespace
'// int, short, byte -> sys::Int (long)' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isPrimitiveIntLike' Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isInt'       Name.Function
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isObj'       Name.Function
')'           Punctuation
'\n        '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'C'           Text
'h'           Text
'e'           Text
'c'           Text
'k'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'coerce'      Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// float -> sys::Float (float)' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'isPrimitiveFloat' Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isFloat'     Name.Function
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isObj'       Name.Function
')'           Punctuation
'\n        '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'C'           Text
'h'           Text
'e'           Text
'c'           Text
'k'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'coerce'      Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// no coercion - type error' Comment.Single
'\n    '      Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Coerce a Java array to a Fantom list.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'coerceFromArray' Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'|'           Punctuation
'-'           Punctuation
'>'           Punctuation
'|'           Punctuation
' '           Text.Whitespace
'onErr'       Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'actual'      Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'('           Punctuation
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'.'           Operator
'toNonNullable' Name.Function
'\n\n    '    Text.Whitespace
'// if expected is array type' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'expected'    Name.Class
' '           Text.Whitespace
'is'          Name.Variable
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
' '           Text.Whitespace
'&&'          Operator
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
'.'           Operator
'isArray'     Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'arrayOf'     Name.Function
'.'           Operator
'fits'        Name.Function
'('           Punctuation
'('           Punctuation
'('           Punctuation
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
'.'           Operator
'arrayOf'     Name.Function
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n\n    '    Text.Whitespace
'// if expected is Obj' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'isObj'       Name.Function
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'a'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
'T'           Text
'o'           Text
'L'           Text
'i'           Text
's'           Text
't'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'inferredArrayOf' Name.Function
')'           Punctuation
'\n\n    '    Text.Whitespace
'// if expected is list type' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
' '           Text.Whitespace
'is'          Keyword
' '           Text.Whitespace
'L'           Text
'i'           Text
's'           Text
't'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'expectedOf'  Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'L'           Text
'i'           Text
's'           Text
't'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
')'           Punctuation
'.'           Operator
'v'           Name.Function
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'inferredArrayOf' Name.Function
'.'           Operator
'fits'        Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'O'           Text
'f'           Text
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'a'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
'T'           Text
'o'           Text
'L'           Text
'i'           Text
's'           Text
't'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'O'           Text
'f'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// no coercion available' Comment.Single
'\n    '      Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Generate List.make(of, expr) where expr is Object[]' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'private'     Keyword
' '           Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'arrayToList' Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'of'          Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'loc'         Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'loc'         Name.Function
'\n    '      Text.Whitespace
'ofExpr'      Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'L'           Text
'i'           Text
't'           Text
'e'           Text
'r'           Text
'a'           Text
'l'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'I'           Text
'd'           Text
'.'           Operator
'typeLiteral' Name.Function
','           Text
' '           Text.Whitespace
'n'           Text
's'           Text
'.'           Operator
'typeType'    Name.Function
','           Text
' '           Text.Whitespace
'o'           Text
'f'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'call'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'makeWithMethod' Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'l'           Text
'i'           Text
's'           Text
't'           Text
'M'           Text
'a'           Text
'k'           Text
'e'           Text
'F'           Text
'r'           Text
'o'           Text
'm'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
','           Text
' '           Text.Whitespace
'['           Operator
'o'           Text
'f'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
']'           Operator
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'synthetic'   Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Keyword.Constant
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Coerce a Fantom list to Java array.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'coerceToArray' Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'|'           Punctuation
'-'           Punctuation
'>'           Punctuation
'|'           Punctuation
' '           Text.Whitespace
'onErr'       Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'loc'         Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'loc'         Name.Function
'\n    '      Text.Whitespace
'expectedOf'  Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'toNonNullable' Name.Function
')'           Punctuation
'.'           Operator
'inferredArrayOf' Name.Function
'\n    '      Text.Whitespace
'actual'      Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'\n\n    '    Text.Whitespace
'// if actual is list type' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'toNonNullable' Name.Function
' '           Text.Whitespace
'is'          Keyword
' '           Text.Whitespace
'L'           Text
'i'           Text
's'           Text
't'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'actualOf'    Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'('           Punctuation
'('           Punctuation
'L'           Text
'i'           Text
's'           Text
't'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'.'           Operator
'toNonNullable' Name.Function
')'           Punctuation
'.'           Operator
'v'           Name.Function
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'c'           Text
't'           Text
'u'           Text
'a'           Text
'l'           Text
'O'           Text
'f'           Text
'.'           Operator
'fits'        Name.Function
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'O'           Text
'f'           Text
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'{'           Punctuation
'\n        '  Text.Whitespace
'// (Foo[])list.asArray(cls)' Comment.Single
'\n        '  Text.Whitespace
'clsLiteral'  Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'makeWithMethod' Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'.'           Operator
'classLiteral' Name.Function
'('           Punctuation
'this'        Name.Builtin.Pseudo
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'O'           Text
'f'           Text
')'           Punctuation
')'           Punctuation
'\n        '  Text.Whitespace
'asArray'     Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'makeWithMethod' Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'l'           Text
'i'           Text
's'           Text
't'           Text
'A'           Text
's'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
','           Text
' '           Text.Whitespace
'['           Operator
'c'           Text
'l'           Text
's'           Text
'L'           Text
'i'           Text
't'           Text
'e'           Text
'r'           Text
'a'           Text
'l'           Text
']'           Operator
')'           Punctuation
'\n        '  Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'C'           Text
'h'           Text
'e'           Text
'c'           Text
'k'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'coerce'      Name.Function
'('           Punctuation
'a'           Text
's'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// no coercion available' Comment.Single
'\n    '      Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
'('           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Attempt to coerce a parameterized sys::Func expr to a Java' Comment.Special
'\n  '        Text.Whitespace
'** interface if the interface supports exactly one matching method.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'Expr'        Name.Class
' '           Text.Whitespace
'coerceFuncToInterface' Name.Function
'('           Punctuation
'Expr'        Name.Class
' '           Text.Whitespace
'expr'        Name.Variable
','           Punctuation
' '           Text.Whitespace
'JavaType'    Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'|'           Punctuation
'-'           Punctuation
'>'           Punctuation
'|'           Punctuation
' '           Text.Whitespace
'onErr'       Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'// check if we have exactly one abstract method in the expected type' Comment.Single
'\n    '      Text.Whitespace
'loc'         Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'loc'         Name.Function
'\n    '      Text.Whitespace
'abstracts'   Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
'.'           Operator
'methods'     Name.Function
'.'           Operator
'findAll'     Name.Function
' '           Text.Whitespace
'|'           Punctuation
'CMethod'     Name.Class
' '           Text.Whitespace
'm'           Name.Variable
'->'          Punctuation
'Bool'        Name.Class
'|'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'm'           Text
'.'           Operator
'isAbstract'  Name.Function
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'a'           Text
'b'           Text
's'           Text
't'           Text
'r'           Text
'a'           Text
'c'           Text
't'           Text
's'           Text
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'!'           Operator
'='           Operator
' '           Text.Whitespace
'1'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
'('           Punctuation
')'           Punctuation
';'           Text
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'method'      Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'a'           Text
'b'           Text
's'           Text
't'           Text
'r'           Text
'a'           Text
'c'           Text
't'           Text
's'           Text
'.'           Operator
'first'       Name.Function
'\n\n    '    Text.Whitespace
'// check if we have a match' Comment.Single
'\n    '      Text.Whitespace
'FuncType'    Name.Class
' '           Text.Whitespace
'funcType'    Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'('           Punctuation
'F'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'ctype'       Name.Function
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'i'           Text
's'           Text
'F'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'o'           Text
'I'           Text
'n'           Text
't'           Text
'e'           Text
'r'           Text
'f'           Text
'a'           Text
'c'           Text
'e'           Text
'M'           Text
'a'           Text
't'           Text
'c'           Text
'h'           Text
'('           Punctuation
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
','           Text
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
')'           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'o'           Text
'n'           Text
'E'           Text
'r'           Text
'r'           Text
'('           Punctuation
')'           Punctuation
';'           Text
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'r'           Text
' '           Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
"// check if we've already generated a wrapper for this combo" Comment.Single
'\n    '      Text.Whitespace
'key'         Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'"'           Punctuation
'${funcType.signature}' Literal.String.Interpol
'+'           Literal.String
'${method.qname}' Literal.String.Interpol
'"'           Punctuation
'\n    '      Text.Whitespace
'ctor'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'W'           Text
'r'           Text
'a'           Text
'p'           Text
'p'           Text
'e'           Text
'r'           Text
's'           Text
'['           Operator
'k'           Text
'e'           Text
'y'           Text
']'           Operator
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'c'           Text
't'           Text
'o'           Text
'r'           Text
' '           Text.Whitespace
'='           Operator
'='           Operator
' '           Text.Whitespace
'null'        Keyword.Constant
')'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'g'           Text
'e'           Text
'n'           Text
'e'           Text
'r'           Text
'a'           Text
't'           Text
'e'           Text
'F'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'o'           Text
'I'           Text
'n'           Text
't'           Text
'e'           Text
'r'           Text
'f'           Text
'a'           Text
'c'           Text
'e'           Text
'W'           Text
'r'           Text
'a'           Text
'p'           Text
'p'           Text
'e'           Text
'r'           Text
'('           Punctuation
'e'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'loc'         Name.Function
','           Text
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
','           Text
' '           Text.Whitespace
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
','           Text
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
')'           Punctuation
'\n      '    Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'W'           Text
'r'           Text
'a'           Text
'p'           Text
'p'           Text
'e'           Text
'r'           Text
's'           Text
'['           Operator
'k'           Text
'e'           Text
'y'           Text
']'           Operator
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
'\n    '      Text.Whitespace
'}'           Punctuation
'\n\n    '    Text.Whitespace
'// replace expr with FuncWrapperX(expr)' Comment.Single
'\n    '      Text.Whitespace
'call'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'makeWithMethod' Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
','           Text
' '           Text.Whitespace
'['           Operator
'e'           Text
'x'           Text
'p'           Text
'r'           Text
']'           Operator
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'synthetic'   Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Keyword.Constant
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Return if the specified function type can be used to implement' Comment.Special
'\n  '        Text.Whitespace
'** the specified interface method.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'Bool'        Name.Class
' '           Text.Whitespace
'isFuncToInterfaceMatch' Name.Function
'('           Punctuation
'FuncType'    Name.Class
' '           Text.Whitespace
'funcType'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'CMethod'     Name.Class
' '           Text.Whitespace
'method'      Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
"// sanity check to map to callX method - can't handle more than 8 args" Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'8'           Literal.Number.Integer
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'false'       Keyword.Constant
'\n\n    '    Text.Whitespace
'// check if method is match for function; first check is that' Comment.Single
'\n    '      Text.Whitespace
'// method must supply all the arguments required by the function' Comment.Single
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
' '           Text.Whitespace
'>'           Operator
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'false'       Keyword.Constant
'\n\n    '    Text.Whitespace
'// check that func return type fits method return' Comment.Single
'\n    '      Text.Whitespace
'retOk'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'returnType'  Name.Function
'.'           Operator
'isVoid'      Name.Function
' '           Text.Whitespace
'||'          Operator
' '           Text.Whitespace
'f'           Text
'i'           Text
't'           Text
's'           Text
'('           Punctuation
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'.'           Operator
'ret'         Name.Function
','           Text
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'returnType'  Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'r'           Text
'e'           Text
't'           Text
'O'           Text
'k'           Text
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'false'       Keyword.Constant
'\n\n    '    Text.Whitespace
'// check all the method parameters fit the function parameters' Comment.Single
'\n    '      Text.Whitespace
'paramsOk'    Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'all'         Name.Function
' '           Text.Whitespace
'|'           Punctuation
'CType'       Name.Class
' '           Text.Whitespace
'f'           Name.Variable
','           Punctuation
' '           Text.Whitespace
'Int'         Name.Class
' '           Text.Whitespace
'i'           Name.Variable
'->'          Punctuation
'Bool'        Name.Class
'|'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'f'           Text
'i'           Text
't'           Text
's'           Text
'('           Punctuation
'f'           Text
','           Text
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'params'      Name.Function
'['           Operator
'i'           Text
']'           Operator
'.'           Operator
'paramType'   Name.Function
')'           Punctuation
' '           Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'!'           Operator
'p'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
's'           Text
'O'           Text
'k'           Text
')'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'false'       Keyword.Constant
'\n\n    '    Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'true'        Keyword.Constant
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'** Generate the wrapper which implements the specified expected interface' Comment.Special
'\n  '        Text.Whitespace
'** and overrides the specified method which calls the function.' Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'CMethod'     Name.Class
' '           Text.Whitespace
'generateFuncToInterfaceWrapper' Name.Function
'('           Punctuation
'Loc'         Name.Class
' '           Text.Whitespace
'loc'         Name.Variable
','           Punctuation
' '           Text.Whitespace
'FuncType'    Name.Class
' '           Text.Whitespace
'funcType'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'CType'       Name.Class
' '           Text.Whitespace
'expected'    Name.Variable
','           Punctuation
' '           Text.Whitespace
'CMethod'     Name.Class
' '           Text.Whitespace
'method'      Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'//   Fantom: func typed as |Str|' Comment.Single
'\n    '      Text.Whitespace
'//   Java:   interface Foo { void bar(String) }' Comment.Single
'\n    '      Text.Whitespace
'//   Result: FuncWrapperX(func)' Comment.Single
'\n    '      Text.Whitespace
'//'          Comment.Single
'\n    '      Text.Whitespace
'//   class FuncWrapperX : Foo' Comment.Single
'\n    '      Text.Whitespace
'//   {'      Comment.Single
'\n    '      Text.Whitespace
'//     new make(Func f) { _func = f }' Comment.Single
'\n    '      Text.Whitespace
'//     override Void bar(Str a) { _func.call(a) }' Comment.Single
'\n    '      Text.Whitespace
'//     Func _func' Comment.Single
'\n    '      Text.Whitespace
'//   }'      Comment.Single
'\n\n    '    Text.Whitespace
'// generate FuncWrapper class' Comment.Single
'\n    '      Text.Whitespace
'name'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'"'           Punctuation
'F'           Literal.String
'u'           Literal.String
'n'           Literal.String
'c'           Literal.String
'W'           Literal.String
'r'           Literal.String
'a'           Literal.String
'p'           Literal.String
'p'           Literal.String
'e'           Literal.String
'r'           Literal.String
'"'           Punctuation
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'W'           Text
'r'           Text
'a'           Text
'p'           Text
'p'           Text
'e'           Text
'r'           Text
's'           Text
'.'           Operator
'size'        Name.Function
'\n    '      Text.Whitespace
'cls'         Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'D'           Text
'e'           Text
'f'           Text
'('           Punctuation
'n'           Text
's'           Text
','           Text
' '           Text.Whitespace
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'c'           Text
'o'           Text
'm'           Text
'p'           Text
'i'           Text
'l'           Text
'e'           Text
'r'           Text
'.'           Operator
'types'       Name.Function
'['           Operator
'0'           Literal.Number.Integer
']'           Operator
'.'           Operator
'unit'        Name.Function
','           Text
' '           Text.Whitespace
'n'           Text
'a'           Text
'm'           Text
'e'           Text
','           Text
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Internal'    Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Synthetic'   Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
'l'           Text
's'           Text
'.'           Operator
'base'        Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'n'           Text
's'           Text
'.'           Operator
'objType'     Name.Function
'\n    '      Text.Whitespace
'c'           Text
'l'           Text
's'           Text
'.'           Operator
'mixins'      Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'['           Operator
'e'           Text
'x'           Text
'p'           Text
'e'           Text
'c'           Text
't'           Text
'e'           Text
'd'           Text
']'           Operator
'\n    '      Text.Whitespace
'a'           Text
'd'           Text
'd'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'D'           Text
'e'           Text
'f'           Text
'('           Punctuation
'c'           Text
'l'           Text
's'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// generate FuncWrapper._func field' Comment.Single
'\n    '      Text.Whitespace
'field'       Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'F'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
'D'           Text
'e'           Text
'f'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'c'           Text
'l'           Text
's'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'('           Punctuation
'S'           Text
'l'           Text
'o'           Text
't'           Text
'D'           Text
'e'           Text
'f'           Text
')'           Punctuation
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
')'           Punctuation
'.'           Operator
'name'        Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'"'           Punctuation
'_'           Literal.String
'f'           Literal.String
'u'           Literal.String
'n'           Literal.String
'c'           Literal.String
'"'           Punctuation
'\n    '      Text.Whitespace
'('           Punctuation
'('           Punctuation
'D'           Text
'e'           Text
'f'           Text
'N'           Text
'o'           Text
'd'           Text
'e'           Text
')'           Punctuation
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
')'           Punctuation
'.'           Operator
'flags'       Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Private'     Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Storage'     Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Synthetic'   Name.Function
'\n    '      Text.Whitespace
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
'.'           Operator
'fieldType'   Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'\n    '      Text.Whitespace
'c'           Text
'l'           Text
's'           Text
'.'           Operator
'addSlot'     Name.Function
'('           Punctuation
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// generate FuncWrapper.make constructor' Comment.Single
'\n    '      Text.Whitespace
'ctor'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'D'           Text
'e'           Text
'f'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'c'           Text
'l'           Text
's'           Text
','           Text
' '           Text.Whitespace
'"'           Punctuation
'm'           Literal.String
'a'           Literal.String
'k'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Internal'    Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Ctor'        Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Synthetic'   Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
'.'           Operator
'ret'         Name.Function
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'n'           Text
's'           Text
'.'           Operator
'voidType'    Name.Function
'\n    '      Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
'.'           Operator
'paramDefs'   Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'['           Operator
'P'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'D'           Text
'e'           Text
'f'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
','           Text
' '           Text.Whitespace
'"'           Punctuation
'f'           Literal.String
'"'           Punctuation
')'           Punctuation
']'           Operator
'\n    '      Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
'.'           Operator
'code'        Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'B'           Text
'l'           Text
'o'           Text
'c'           Text
'k'           Text
'.'           Operator
'make'        Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
'.'           Operator
'code'        Name.Function
'.'           Operator
'stmts'       Name.Function
'.'           Operator
'add'         Name.Function
'('           Punctuation
'B'           Text
'i'           Text
'n'           Text
'a'           Text
'r'           Text
'y'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'makeAssign'  Name.Function
'('           Punctuation
'\n      '    Text.Whitespace
'F'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'T'           Text
'h'           Text
'i'           Text
's'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
')'           Punctuation
','           Text
' '           Text.Whitespace
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
')'           Punctuation
','           Text
'\n      '    Text.Whitespace
'U'           Text
'n'           Text
'k'           Text
'n'           Text
'o'           Text
'w'           Text
'n'           Text
'V'           Text
'a'           Text
'r'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'"'           Punctuation
'f'           Literal.String
'"'           Punctuation
')'           Punctuation
')'           Punctuation
'.'           Operator
'toStmt'      Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
'.'           Operator
'code'        Name.Function
'.'           Operator
'stmts'       Name.Function
'.'           Operator
'add'         Name.Function
'('           Punctuation
'R'           Text
'e'           Text
't'           Text
'u'           Text
'r'           Text
'n'           Text
'S'           Text
't'           Text
'm'           Text
't'           Text
'.'           Operator
'make'        Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
'l'           Text
's'           Text
'.'           Operator
'addSlot'     Name.Function
'('           Punctuation
'c'           Text
't'           Text
'o'           Text
'r'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// generate FuncWrapper override of abstract method' Comment.Single
'\n    '      Text.Whitespace
'over'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'D'           Text
'e'           Text
'f'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'c'           Text
'l'           Text
's'           Text
','           Text
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'name'        Name.Function
','           Text
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Public'      Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Override'    Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Synthetic'   Name.Function
')'           Punctuation
'\n    '      Text.Whitespace
'o'           Text
'v'           Text
'e'           Text
'r'           Text
'.'           Operator
'ret'         Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'returnType'  Name.Function
'\n    '      Text.Whitespace
'o'           Text
'v'           Text
'e'           Text
'r'           Text
'.'           Operator
'paramDefs'   Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ParamDef'    Name.Class
'[,]'         Literal
'\n    '      Text.Whitespace
'o'           Text
'v'           Text
'e'           Text
'r'           Text
'.'           Operator
'code'        Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'B'           Text
'l'           Text
'o'           Text
'c'           Text
'k'           Text
'.'           Operator
'make'        Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
')'           Punctuation
'\n    '      Text.Whitespace
'callArity'   Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'"'           Punctuation
'c'           Literal.String
'a'           Literal.String
'l'           Literal.String
'l'           Literal.String
'"'           Punctuation
'\n    '      Text.Whitespace
'call'        Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'C'           Text
'a'           Text
'l'           Text
'l'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'.'           Operator
'makeWithMethod' Name.Function
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'F'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'T'           Text
'h'           Text
'i'           Text
's'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
')'           Punctuation
','           Text
' '           Text.Whitespace
'f'           Text
'i'           Text
'e'           Text
'l'           Text
'd'           Text
')'           Punctuation
','           Text
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'.'           Operator
'method'      Name.Function
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'A'           Text
'r'           Text
'i'           Text
't'           Text
'y'           Text
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'each'        Name.Function
' '           Text.Whitespace
'|'           Punctuation
'CParam'      Name.Class
' '           Text.Whitespace
'param'       Name.Variable
','           Punctuation
' '           Text.Whitespace
'Int'         Name.Class
' '           Text.Whitespace
'i'           Name.Variable
'|'           Punctuation
'\n    '      Text.Whitespace
'{'           Punctuation
'\n      '    Text.Whitespace
'paramName'   Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'"'           Punctuation
'p'           Literal.String
'$i'          Literal.String.Interpol
'"'           Punctuation
'\n      '    Text.Whitespace
'o'           Text
'v'           Text
'e'           Text
'r'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'add'         Name.Function
'('           Punctuation
'P'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'D'           Text
'e'           Text
'f'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'p'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'.'           Operator
'paramType'   Name.Function
','           Text
' '           Text.Whitespace
'p'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'N'           Text
'a'           Text
'm'           Text
'e'           Text
')'           Punctuation
')'           Punctuation
'\n      '    Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'i'           Text
' '           Text.Whitespace
'<'           Operator
' '           Text.Whitespace
'f'           Text
'u'           Text
'n'           Text
'c'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
'.'           Operator
'params'      Name.Function
'.'           Operator
'size'        Name.Function
')'           Punctuation
'\n        '  Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'args'        Name.Function
'.'           Operator
'add'         Name.Function
'('           Punctuation
'U'           Text
'n'           Text
'k'           Text
'n'           Text
'o'           Text
'w'           Text
'n'           Text
'V'           Text
'a'           Text
'r'           Text
'E'           Text
'x'           Text
'p'           Text
'r'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'null'        Keyword.Constant
','           Text
' '           Text.Whitespace
'p'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'N'           Text
'a'           Text
'm'           Text
'e'           Text
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'}'           Punctuation
'\n    '      Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'('           Punctuation
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'returnType'  Name.Function
'.'           Operator
'isVoid'      Name.Function
')'           Punctuation
'\n      '    Text.Whitespace
'o'           Text
'v'           Text
'e'           Text
'r'           Text
'.'           Operator
'code'        Name.Function
'.'           Operator
'stmts'       Name.Function
'.'           Operator
'add'         Name.Function
'('           Punctuation
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'toStmt'      Name.Function
')'           Punctuation
'.'           Operator
'add'         Name.Function
'('           Punctuation
'R'           Text
'e'           Text
't'           Text
'u'           Text
'r'           Text
'n'           Text
'S'           Text
't'           Text
'm'           Text
't'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'else'        Keyword
'\n      '    Text.Whitespace
'o'           Text
'v'           Text
'e'           Text
'r'           Text
'.'           Operator
'code'        Name.Function
'.'           Operator
'stmts'       Name.Function
'.'           Operator
'add'         Name.Function
'('           Punctuation
'R'           Text
'e'           Text
't'           Text
'u'           Text
'r'           Text
'n'           Text
'S'           Text
't'           Text
'm'           Text
't'           Text
'('           Punctuation
'l'           Text
'o'           Text
'c'           Text
','           Text
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
')'           Punctuation
')'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
'l'           Text
's'           Text
'.'           Operator
'addSlot'     Name.Function
'('           Punctuation
'o'           Text
'v'           Text
'e'           Text
'r'           Text
')'           Punctuation
'\n\n    '    Text.Whitespace
'// return the ctor which we use for coercion' Comment.Single
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
't'           Text
'o'           Text
'r'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// Reflection' Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
"** Get a CMethod representation for 'List.make(Type, Object[])'" Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'once'        Keyword
' '           Text.Whitespace
'CMethod'     Name.Class
' '           Text.Whitespace
'listMakeFromArray' Name.Function
'('           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'('           Punctuation
'\n      '    Text.Whitespace
'this'        Name.Builtin.Pseudo
'.'           Operator
'ns'          Name.Function
'.'           Operator
'listType'    Name.Function
','           Text
'\n      '    Text.Whitespace
'"'           Punctuation
'm'           Literal.String
'a'           Literal.String
'k'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n      '    Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Public'      Name.Function
' '           Text.Whitespace
'+'           Operator
' '           Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Static'      Name.Function
','           Text
'\n      '    Text.Whitespace
'this'        Name.Builtin.Pseudo
'.'           Operator
'ns'          Name.Function
'.'           Operator
'listType'    Name.Function
'.'           Operator
'toNullable'  Name.Function
','           Text
'\n      '    Text.Whitespace
'['           Operator
'\n        '  Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'P'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'('           Punctuation
'"'           Punctuation
'o'           Literal.String
'f'           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'this'        Name.Builtin.Pseudo
'.'           Operator
'ns'          Name.Function
'.'           Operator
'typeType'    Name.Function
')'           Punctuation
','           Text
'\n        '  Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'P'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'('           Punctuation
'"'           Punctuation
'a'           Literal.String
'r'           Literal.String
'r'           Literal.String
'a'           Literal.String
'y'           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'o'           Text
'b'           Text
'j'           Text
'e'           Text
'c'           Text
't'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
'\n      '    Text.Whitespace
']'           Operator
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
"** Get a CMethod representation for 'Object[] List.asArray()'" Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'once'        Keyword
' '           Text.Whitespace
'CMethod'     Name.Class
' '           Text.Whitespace
'listAsArray' Name.Function
'('           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'M'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'('           Punctuation
'\n      '    Text.Whitespace
'this'        Name.Builtin.Pseudo
'.'           Operator
'ns'          Name.Function
'.'           Operator
'listType'    Name.Function
','           Text
'\n      '    Text.Whitespace
'"'           Punctuation
'a'           Literal.String
's'           Literal.String
'A'           Literal.String
'r'           Literal.String
'r'           Literal.String
'a'           Literal.String
'y'           Literal.String
'"'           Punctuation
','           Text
'\n      '    Text.Whitespace
'F'           Text
'C'           Text
'o'           Text
'n'           Text
's'           Text
't'           Text
'.'           Operator
'Public'      Name.Function
','           Text
'\n      '    Text.Whitespace
'o'           Text
'b'           Text
'j'           Text
'e'           Text
'c'           Text
't'           Text
'A'           Text
'r'           Text
'r'           Text
'a'           Text
'y'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
','           Text
'\n      '    Text.Whitespace
'['           Operator
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'P'           Text
'a'           Text
'r'           Text
'a'           Text
'm'           Text
'('           Punctuation
'"'           Punctuation
'c'           Literal.String
'l'           Literal.String
's'           Literal.String
'"'           Punctuation
','           Text
' '           Text.Whitespace
'c'           Text
'l'           Text
'a'           Text
's'           Text
's'           Text
'T'           Text
'y'           Text
'p'           Text
'e'           Text
')'           Punctuation
']'           Operator
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
"** Get a CType representation for 'java.lang.Class'" Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'once'        Keyword
' '           Text.Whitespace
'JavaType'    Name.Class
' '           Text.Whitespace
'classType'   Name.Function
'('           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'n'           Text
's'           Text
'.'           Operator
'resolveType' Name.Function
'('           Punctuation
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'C'           Literal.String
'l'           Literal.String
'a'           Literal.String
's'           Literal.String
's'           Literal.String
'"'           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
"** Get a CType representation for 'java.lang.Object[]'" Comment.Special
'\n  '        Text.Whitespace
'**'          Comment.Special
'\n  '        Text.Whitespace
'once'        Keyword
' '           Text.Whitespace
'JavaType'    Name.Class
' '           Text.Whitespace
'objectArrayType' Name.Function
'('           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'n'           Text
's'           Text
'.'           Operator
'resolveType' Name.Function
'('           Punctuation
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'['           Literal.String
'O'           Literal.String
'b'           Literal.String
'j'           Literal.String
'e'           Literal.String
'c'           Literal.String
't'           Literal.String
'"'           Punctuation
')'           Punctuation
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n'        Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n'          Text.Whitespace

'// Fields'   Comment.Single
'\n'          Text.Whitespace

'//////////////////////////////////////////////////////////////////////////' Comment.Single
'\n\n  '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'Str'         Name.Class
'['           Punctuation
']'           Punctuation
' '           Text.Whitespace
'boolTypes'   Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'S'           Text
't'           Text
'r'           Text
'['           Operator
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'i'           Literal.String
'o'           Literal.String
':'           Literal.String
':'           Literal.String
'S'           Literal.String
'e'           Literal.String
'r'           Literal.String
'i'           Literal.String
'a'           Literal.String
'l'           Literal.String
'i'           Literal.String
'z'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'C'           Literal.String
'o'           Literal.String
'm'           Literal.String
'p'           Literal.String
'a'           Literal.String
'r'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n  '        Text.Whitespace
']'           Operator
'\n\n  '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'Str'         Name.Class
'['           Punctuation
']'           Punctuation
' '           Text.Whitespace
'intTypes'    Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'S'           Text
't'           Text
'r'           Text
'['           Operator
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'N'           Literal.String
'u'           Literal.String
'm'           Literal.String
'b'           Literal.String
'e'           Literal.String
'r'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'i'           Literal.String
'o'           Literal.String
':'           Literal.String
':'           Literal.String
'S'           Literal.String
'e'           Literal.String
'r'           Literal.String
'i'           Literal.String
'a'           Literal.String
'l'           Literal.String
'i'           Literal.String
'z'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'C'           Literal.String
'o'           Literal.String
'm'           Literal.String
'p'           Literal.String
'a'           Literal.String
'r'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n  '        Text.Whitespace
']'           Operator
'\n\n  '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'Str'         Name.Class
'['           Punctuation
']'           Punctuation
' '           Text.Whitespace
'floatTypes'  Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'S'           Text
't'           Text
'r'           Text
'['           Operator
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'N'           Literal.String
'u'           Literal.String
'm'           Literal.String
'b'           Literal.String
'e'           Literal.String
'r'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'i'           Literal.String
'o'           Literal.String
':'           Literal.String
':'           Literal.String
'S'           Literal.String
'e'           Literal.String
'r'           Literal.String
'i'           Literal.String
'a'           Literal.String
'l'           Literal.String
'i'           Literal.String
'z'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'C'           Literal.String
'o'           Literal.String
'm'           Literal.String
'p'           Literal.String
'a'           Literal.String
'r'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n  '        Text.Whitespace
']'           Operator
'\n\n  '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'Str'         Name.Class
'['           Punctuation
']'           Punctuation
' '           Text.Whitespace
'decimalTypes' Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'S'           Text
't'           Text
'r'           Text
'['           Operator
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'N'           Literal.String
'u'           Literal.String
'm'           Literal.String
'b'           Literal.String
'e'           Literal.String
'r'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'i'           Literal.String
'o'           Literal.String
':'           Literal.String
':'           Literal.String
'S'           Literal.String
'e'           Literal.String
'r'           Literal.String
'i'           Literal.String
'a'           Literal.String
'l'           Literal.String
'i'           Literal.String
'z'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'C'           Literal.String
'o'           Literal.String
'm'           Literal.String
'p'           Literal.String
'a'           Literal.String
'r'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n  '        Text.Whitespace
']'           Operator
'\n\n  '      Text.Whitespace
'const'       Keyword
' '           Text.Whitespace
'static'      Keyword
' '           Text.Whitespace
'Str'         Name.Class
'['           Punctuation
']'           Punctuation
' '           Text.Whitespace
'strTypes'    Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'S'           Text
't'           Text
'r'           Text
'['           Operator
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'i'           Literal.String
'o'           Literal.String
':'           Literal.String
':'           Literal.String
'S'           Literal.String
'e'           Literal.String
'r'           Literal.String
'i'           Literal.String
'a'           Literal.String
'l'           Literal.String
'i'           Literal.String
'z'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'C'           Literal.String
'h'           Literal.String
'a'           Literal.String
'r'           Literal.String
'S'           Literal.String
'e'           Literal.String
'q'           Literal.String
'u'           Literal.String
'e'           Literal.String
'n'           Literal.String
'c'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n    '      Text.Whitespace
'"'           Punctuation
'['           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
']'           Literal.String
'j'           Literal.String
'a'           Literal.String
'v'           Literal.String
'a'           Literal.String
'.'           Literal.String
'l'           Literal.String
'a'           Literal.String
'n'           Literal.String
'g'           Literal.String
':'           Literal.String
':'           Literal.String
'C'           Literal.String
'o'           Literal.String
'm'           Literal.String
'p'           Literal.String
'a'           Literal.String
'r'           Literal.String
'a'           Literal.String
'b'           Literal.String
'l'           Literal.String
'e'           Literal.String
'"'           Punctuation
','           Text
'\n  '        Text.Whitespace
']'           Operator
'\n\n  '      Text.Whitespace
'JavaPrimitives' Name.Class
' '           Text.Whitespace
'primitives'  Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'J'           Text
'a'           Text
'v'           Text
'a'           Text
'P'           Text
'r'           Text
'i'           Text
'm'           Text
'i'           Text
't'           Text
'i'           Text
'v'           Text
'e'           Text
's'           Text
'('           Punctuation
'this'        Name.Builtin.Pseudo
')'           Punctuation
'\n  '        Text.Whitespace
'ClassPath'   Name.Class
' '           Text.Whitespace
'cp'          Name.Variable
'\n\n  '      Text.Whitespace
'private'     Keyword
' '           Text.Whitespace
'Str'         Name.Class
':'           Punctuation
'CMethod'     Name.Class
' '           Text.Whitespace
'funcWrappers' Name.Variable
' '           Text.Whitespace
':='          Operator
' '           Text.Whitespace
'Str'         Name.Class
':'           Punctuation
'CMethod'     Name.Class
'[:]'         Literal
'  '          Text.Whitespace
'// funcType+method:ctor' Comment.Single
'\n\n'        Text.Whitespace

'}'           Text
'\n\n'        Text.Whitespace

'**************************************************************************' Comment.Special
'\n'          Text.Whitespace

'** CallMatch' Comment.Special
'\n'          Text.Whitespace

'**************************************************************************' Comment.Special
'\n\n'        Text.Whitespace

'internal'    Keyword
' '           Text.Whitespace
'class'       Keyword
' '           Text.Whitespace
'CallMatch'   Name.Class
'\n'          Text.Whitespace

'{'           Punctuation
'\n  '        Text.Whitespace
'CallExpr'    Name.Class
' '           Text.Whitespace
'apply'       Name.Function
'('           Punctuation
'CallExpr'    Name.Class
' '           Text.Whitespace
'call'        Name.Variable
')'           Punctuation
'\n  '        Text.Whitespace
'{'           Punctuation
'\n    '      Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'args'        Name.Function
'   '         Text.Whitespace
'='           Operator
' '           Text.Whitespace
'a'           Text
'r'           Text
'g'           Text
's'           Text
'\n    '      Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'method'      Name.Function
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'\n    '      Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'.'           Operator
'ctype'       Name.Function
'  '          Text.Whitespace
'='           Operator
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'isCtor'      Name.Function
' '           Text.Whitespace
'?'           Text
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'parent'      Name.Function
' '           Text.Whitespace
':'           Text
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'returnType'  Name.Function
'\n    '      Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'c'           Text
'a'           Text
'l'           Text
'l'           Text
'\n  '        Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'Str'         Name.Class
' '           Text.Whitespace
'toStr'       Name.Function
'('           Punctuation
')'           Punctuation
' '           Text.Whitespace
'{'           Punctuation
' '           Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'm'           Text
'e'           Text
't'           Text
'h'           Text
'o'           Text
'd'           Text
'.'           Operator
'signature'   Name.Function
' '           Text.Whitespace
'}'           Punctuation
'\n\n  '      Text.Whitespace
'CMethod'     Name.Class
'?'           Punctuation
' '           Text.Whitespace
'method'      Name.Variable
'    '        Text.Whitespace
'// matched method' Comment.Single
'\n  '        Text.Whitespace
'Expr'        Name.Class
'['           Punctuation
']'           Punctuation
'?'           Punctuation
' '           Text.Whitespace
'args'        Name.Variable
'       '     Text.Whitespace
'// coerced arguments' Comment.Single
'\n'          Text.Whitespace

'}'           Text
'\n'          Text.Whitespace
