'import'      Keyword
' '           Text.Whitespace
'System'      Name
'\n'          Text.Whitespace

'import'      Keyword
' '           Text.Whitespace
'Boo'         Name
'.'           Punctuation
'Lang'        Name
'.'           Punctuation
'Interpreter' Name
' '           Text.Whitespace
'from'        Keyword
' '           Text.Whitespace
'Boo'         Name
'.'           Punctuation
'Lang'        Name
'.'           Punctuation
'Interpreter' Name
'\n\n'        Text.Whitespace

'class'       Keyword
' '           Text.Whitespace
'ObjectInterpreter' Name.Class
'('           Punctuation
'AbstractInterpreter' Name
')'           Punctuation
':'           Punctuation
'\n\n        ' Text.Whitespace
'_context'    Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'object'      Name
'\n\n        ' Text.Whitespace
'['           Punctuation
'getter'      Name.Builtin
'('           Punctuation
'Value'       Name
')'           Punctuation
']'           Punctuation
'\n        '  Text.Whitespace
'_value'      Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'object'      Name
'\n\n        ' Text.Whitespace
'def'         Keyword
' '           Text.Whitespace
'constructor' Name.Function
'('           Punctuation
'context'     Name
')'           Punctuation
':'           Punctuation
'\n            ' Text.Whitespace
'_context'    Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'context'     Name
'\n            ' Text.Whitespace
'self'        Name.Builtin
'.'           Punctuation
'RememberLastValue' Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'true'        Name.Builtin
'\n\n        ' Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'def'         Keyword
' '           Text.Whitespace
'Lookup'      Name.Function
'('           Punctuation
'name'        Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'string'      Name
')'           Punctuation
':'           Punctuation
'\n            ' Text.Whitespace
'property'    Name.Builtin
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'_context'    Name
'.'           Punctuation
'GetType'     Name
'('           Punctuation
')'           Punctuation
'.'           Punctuation
'GetProperty' Name
'('           Punctuation
'name'        Name
')'           Punctuation
'\n            ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'property'    Name.Builtin
'.'           Punctuation
'PropertyType' Name
' '           Text.Whitespace
'if'          Keyword
' '           Text.Whitespace
'property'    Name.Builtin
' '           Text.Whitespace
'is'          Operator.Word
' '           Text.Whitespace
'not'         Operator.Word
' '           Text.Whitespace
'null'        Name.Builtin
'\n\n        ' Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'def'         Keyword
' '           Text.Whitespace
'GetValue'    Name.Function
'('           Punctuation
'name'        Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'string'      Name
')'           Punctuation
':'           Punctuation
'\n            ' Text.Whitespace
'return'      Keyword
' '           Text.Whitespace
'_context'    Name
'.'           Punctuation
'GetType'     Name
'('           Punctuation
')'           Punctuation
'.'           Punctuation
'GetProperty' Name
'('           Punctuation
'name'        Name
')'           Punctuation
'.'           Punctuation
'GetValue'    Name
'('           Punctuation
'\n                                          ' Text.Whitespace
'_context'    Name
','           Punctuation
' '           Text.Whitespace
'null'        Name.Builtin
')'           Punctuation
'\n\n        ' Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'def'         Keyword
' '           Text.Whitespace
'SetLastValue' Name.Function
'('           Punctuation
'value'       Name
')'           Punctuation
':'           Punctuation
'\n            ' Text.Whitespace
'_value'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'value'       Name
'\n\n        ' Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'def'         Keyword
' '           Text.Whitespace
'SetValue'    Name.Function
'('           Punctuation
'name'        Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'string'      Name
','           Punctuation
' '           Text.Whitespace
'value'       Name
')'           Punctuation
':'           Punctuation
'\n            ' Text.Whitespace
'raise'       Keyword
' '           Text.Whitespace
'InvalidOperationException' Name
'('           Punctuation
')'           Punctuation
'\n\n        ' Text.Whitespace
'override'    Keyword
' '           Text.Whitespace
'def'         Keyword
' '           Text.Whitespace
'Declare'     Name.Function
'('           Punctuation
'name'        Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'string'      Name
','           Punctuation
' '           Text.Whitespace
'type'        Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'Type'        Name
')'           Punctuation
':'           Punctuation
'\n            ' Text.Whitespace
'raise'       Keyword
' '           Text.Whitespace
'InvalidOperationException' Name
'('           Punctuation
')'           Punctuation
'\n\n'        Text.Whitespace

'class'       Keyword
' '           Text.Whitespace
'Person'      Name.Class
':'           Punctuation
'\n        '  Text.Whitespace
'['           Punctuation
'property'    Name.Builtin
'('           Punctuation
'FirstName'   Name
')'           Punctuation
']'           Punctuation
'\n        '  Text.Whitespace
'_fname'      Name
' '           Text.Whitespace
'as'          Keyword
' '           Text.Whitespace
'string'      Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'""'          Literal.String.Double
'\n\n'        Text.Whitespace

'p'           Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'Person'      Name
'('           Punctuation
'FirstName'   Name
':'           Punctuation
' '           Text.Whitespace
'"Homer"'     Literal.String.Double
')'           Punctuation
'\n'          Text.Whitespace

'i'           Name
' '           Text.Whitespace
'='           Operator
' '           Text.Whitespace
'ObjectInterpreter' Name
'('           Punctuation
'p'           Name
')'           Punctuation
'\n'          Text.Whitespace

'i'           Name
'.'           Punctuation
'Eval'        Name
'('           Punctuation
'\'"Hello, ${FirstName.ToUpper()}!"\'' Literal.String.Single
')'           Punctuation
'\n'          Text.Whitespace

'print'       Name.Builtin
' '           Text.Whitespace
'i'           Name
'.'           Punctuation
'Value'       Name
'\n'          Text.Whitespace
