DefinitionTree { definitions: [ Constant( ConstantDefinition { comments: CommentGroup { comments: [], }, const: Keyword { value: "const", position: 0, }, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 6, value: "Foo", }, templates: None, }, ), name: Identifier { position: 10, value: "ONE", }, equals: 14, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 16, }, class: Identifier( Identifier { position: 20, value: "Foo", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 23, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 24, }, }, ), semicolon: 25, }, ), Class( ClassDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 28, modifiers: [], }, class: Keyword { value: "class", position: 28, }, name: Identifier { position: 34, value: "Foo", }, templates: None, extends: None, implements: None, body: ClassDefinitionBody { left_brace: 38, members: [ Constant( ClassishConstantDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 44, modifiers: [], }, const: Keyword { value: "const", position: 44, }, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 50, value: "\Closure", }, templates: None, }, ), name: Identifier { position: 59, value: "FOO", }, equals: 63, value: ArrowFunction( ArrowFunctionExpression { comments: CommentGroup { comments: [], }, attributes: [], static: None, fn: Keyword { value: "fn", position: 65, }, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 67, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 68, }, return_type: FunctionLikeReturnTypeDefinition { colon: 69, type_definition: SignedInteger( Default( Keyword { value: "int", position: 71, }, ), ), }, double_arrow: 75, body: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 78, }, ), ), }, ), semicolon: 79, }, ), Property( PropertyDefinition { attributes: [], modifiers: ModifierGroupDefinition { position: 152, modifiers: [ Public( Keyword { value: "public", position: 86, }, ), Static( Keyword { value: "static", position: 93, }, ), Abstract( Keyword { value: "abstract", position: 100, }, ), Abstract( Keyword { value: "Abstract", position: 109, }, ), Readonly( Keyword { value: "readonly", position: 118, }, ), Private( Keyword { value: "private", position: 127, }, ), Static( Keyword { value: "static", position: 135, }, ), Protected( Keyword { value: "protected", position: 142, }, ), ], }, type_definition: String( Keyword { value: "string", position: 152, }, ), entry: Initialized { variable: Variable { position: 159, name: "$baz", }, equals: 164, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'baz'", position: 166, }, ), ), }, semicolon: 171, }, ), Property( PropertyDefinition { attributes: [], modifiers: ModifierGroupDefinition { position: 185, modifiers: [ Public( Keyword { value: "public", position: 178, }, ), ], }, type_definition: SignedInteger( Default( Keyword { value: "int", position: 185, }, ), ), entry: Initialized { variable: Variable { position: 189, name: "$bar", }, equals: 194, value: ArrowFunction( ArrowFunctionExpression { comments: CommentGroup { comments: [], }, attributes: [], static: None, fn: Keyword { value: "fn", position: 196, }, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 198, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 199, }, return_type: FunctionLikeReturnTypeDefinition { colon: 200, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 202, value: "Foo", }, templates: None, }, ), }, double_arrow: 206, body: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 209, }, class: Identifier( Identifier { position: 213, value: "Foo", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 216, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 217, }, }, ), }, ), }, semicolon: 218, }, ), Property( PropertyDefinition { attributes: [], modifiers: ModifierGroupDefinition { position: 232, modifiers: [ Public( Keyword { value: "public", position: 225, }, ), ], }, type_definition: SignedInteger( Default( Keyword { value: "int", position: 232, }, ), ), entry: Initialized { variable: Variable { position: 236, name: "$foo", }, equals: 241, value: ObjectOperation( PropertyFetch { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 243, name: "$this", }, ), arrow: 248, property: Identifier { position: 250, value: "bar", }, }, ), }, semicolon: 253, }, ), ], right_brace: 255, }, }, ), ], eof: 257, }