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: [ Constant( ClassishConstantDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 16, modifiers: [], }, const: Keyword { value: "const", position: 16, }, type_definition: UnsignedInteger( U8( Keyword { value: "u8", position: 22, }, ), ), name: Identifier { position: 25, value: "foo", }, equals: 29, value: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 31, }, ), ), semicolon: 32, }, ), Method( MethodDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 53, modifiers: [ Public( Keyword { value: "public", position: 39, }, ), Static( Keyword { value: "static", position: 46, }, ), ], }, function: Keyword { value: "function", position: 53, }, name: Identifier { position: 62, value: "foo", }, templates: None, parameters: MethodParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 65, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 66, }, return_type: Some( FunctionLikeReturnTypeDefinition { colon: 67, type_definition: Void( Keyword { value: "void", position: 69, }, ), }, ), constraints: None, body: Concrete( BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 74, statements: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: AssignmentOperation( Assignment { comments: CommentGroup { comments: [], }, left: Variable( Variable { position: 84, name: "$a", }, ), equals: 87, right: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 89, value: "static", }, ), double_colon: 95, constant: Identifier { position: 97, value: "foo", }, }, ), }, ), semicolon: 100, }, ), Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: ClassOperation( StaticMethodCall { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 111, value: "static", }, ), double_colon: 117, method: Identifier { position: 119, value: "foo", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 122, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 123, }, }, ), semicolon: 124, }, ), ], right_brace: 130, }, ), }, ), ], right_brace: 132, }, }, ), ], eof: 134, }