'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