DefinitionTree { definitions: [ Class( ClassDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 0, modifiers: [], }, class: Keyword { value: "class", position: 0, }, name: Identifier { position: 6, value: "foo", }, templates: None, extends: None, implements: None, body: ClassDefinitionBody { left_brace: 10, members: [ Method( MethodDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 23, modifiers: [ Public( Keyword { value: "public", position: 16, }, ), ], }, function: Keyword { value: "function", position: 23, }, name: Identifier { position: 32, value: "bar", }, templates: None, parameters: MethodParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 35, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 36, }, return_type: Some( FunctionLikeReturnTypeDefinition { colon: 37, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 39, value: "parent", }, templates: None, }, ), }, ), constraints: None, body: Concrete( BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 46, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: ExitConstruct( ExitWith { comments: CommentGroup { comments: [], }, exit: Keyword { value: "exit", position: 56, }, left_parenthesis: 60, value: Some( Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 61, }, ), ), ), right_parenthesis: 62, }, ), semicolon: 63, }, ), ], right_brace: 69, }, ), }, ), ], right_brace: 71, }, }, ), ], eof: 73, }