[ FullOpeningTag( FullOpeningTagStatement { span: Span { line: 1, column: 1, position: 0, }, }, ), Namespace( Unbraced( UnbracedNamespace { start: Span { line: 3, column: 1, position: 7, }, name: SimpleIdentifier { span: Span { line: 3, column: 11, position: 17, }, value: "f", }, end: Span { line: 3, column: 12, position: 18, }, statements: [ Class( ClassStatement { attributes: [], modifiers: ClassModifierGroup { modifiers: [], }, class: Span { line: 5, column: 1, position: 21, }, name: SimpleIdentifier { span: Span { line: 5, column: 7, position: 27, }, value: "s", }, extends: None, implements: None, body: ClassBody { left_brace: Span { line: 5, column: 9, position: 29, }, members: [ ConcreteMethod( ConcreteMethod { comments: CommentGroup { comments: [], }, attributes: [], modifiers: MethodModifierGroup { modifiers: [ Public( Span { line: 6, column: 5, position: 35, }, ), Static( Span { line: 6, column: 12, position: 42, }, ), ], }, function: Span { line: 6, column: 19, position: 49, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 6, column: 28, position: 58, }, value: "foo", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 6, column: 31, position: 61, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 6, column: 32, position: 62, }, }, return_type: None, body: MethodBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 6, column: 34, position: 64, }, statements: [ Echo( EchoStatement { echo: Span { line: 7, column: 9, position: 74, }, values: [ Literal( String( LiteralString { value: "huh?\n", span: Span { line: 7, column: 14, position: 79, }, kind: DoubleQuoted, }, ), ), ], ending: Semicolon( Span { line: 7, column: 22, position: 87, }, ), }, ), ], right_brace: Span { line: 8, column: 5, position: 93, }, }, }, ), ], right_brace: Span { line: 9, column: 1, position: 95, }, }, }, ), Constant( ConstantStatement { comments: CommentGroup { comments: [], }, const: Span { line: 11, column: 1, position: 98, }, entries: [ ConstantEntry { name: SimpleIdentifier { span: Span { line: 11, column: 7, position: 104, }, value: "self", }, equals: Span { line: 11, column: 12, position: 109, }, value: New( NewExpression { new: Span { line: 11, column: 14, position: 111, }, target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 11, column: 18, position: 115, }, value: "s", }, ), ), arguments: None, }, ), }, ], semicolon: Span { line: 11, column: 19, position: 116, }, }, ), Constant( ConstantStatement { comments: CommentGroup { comments: [], }, const: Span { line: 12, column: 1, position: 118, }, entries: [ ConstantEntry { name: SimpleIdentifier { span: Span { line: 12, column: 7, position: 124, }, value: "parent", }, equals: Span { line: 12, column: 14, position: 131, }, value: New( NewExpression { new: Span { line: 12, column: 16, position: 133, }, target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 12, column: 20, position: 137, }, value: "s", }, ), ), arguments: None, }, ), }, ], semicolon: Span { line: 12, column: 21, position: 138, }, }, ), Class( ClassStatement { attributes: [], modifiers: ClassModifierGroup { modifiers: [], }, class: Span { line: 14, column: 1, position: 141, }, name: SimpleIdentifier { span: Span { line: 14, column: 7, position: 147, }, value: "a", }, extends: None, implements: None, body: ClassBody { left_brace: Span { line: 14, column: 9, position: 149, }, members: [ ConcreteMethod( ConcreteMethod { comments: CommentGroup { comments: [], }, attributes: [], modifiers: MethodModifierGroup { modifiers: [ Private( Span { line: 15, column: 5, position: 155, }, ), Static( Span { line: 15, column: 13, position: 163, }, ), ], }, function: Span { line: 15, column: 20, position: 170, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 15, column: 29, position: 179, }, value: "foo", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 15, column: 32, position: 182, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 15, column: 33, position: 183, }, }, return_type: None, body: MethodBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 15, column: 35, position: 185, }, statements: [ Echo( EchoStatement { echo: Span { line: 16, column: 9, position: 195, }, values: [ Literal( String( LiteralString { value: "here!\n", span: Span { line: 16, column: 14, position: 200, }, kind: DoubleQuoted, }, ), ), ], ending: Semicolon( Span { line: 16, column: 23, position: 209, }, ), }, ), ], right_brace: Span { line: 17, column: 5, position: 215, }, }, }, ), ConcreteMethod( ConcreteMethod { comments: CommentGroup { comments: [], }, attributes: [], modifiers: MethodModifierGroup { modifiers: [ Public( Span { line: 19, column: 5, position: 222, }, ), ], }, function: Span { line: 19, column: 12, position: 229, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 19, column: 21, position: 238, }, value: "f", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 19, column: 22, position: 239, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 19, column: 23, position: 240, }, }, return_type: None, body: MethodBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 19, column: 25, position: 242, }, statements: [ Expression( ExpressionStatement { expression: FunctionCall( FunctionCallExpression { target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 20, column: 9, position: 252, }, value: "var_dump", }, ), ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 20, column: 17, position: 260, }, arguments: [ Positional( PositionalArgument { comments: CommentGroup { comments: [], }, ellipsis: None, value: Self_, }, ), ], right_parenthesis: Span { line: 20, column: 22, position: 265, }, }, }, ), ending: Semicolon( Span { line: 20, column: 23, position: 266, }, ), }, ), Expression( ExpressionStatement { expression: FunctionCall( FunctionCallExpression { target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 21, column: 9, position: 276, }, value: "var_dump", }, ), ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 21, column: 17, position: 284, }, arguments: [ Positional( PositionalArgument { comments: CommentGroup { comments: [], }, ellipsis: None, value: Parent, }, ), ], right_parenthesis: Span { line: 21, column: 24, position: 291, }, }, }, ), ending: Semicolon( Span { line: 21, column: 25, position: 292, }, ), }, ), Expression( ExpressionStatement { expression: StaticMethodCall( StaticMethodCallExpression { target: Self_, double_colon: Span { line: 23, column: 13, position: 307, }, method: SimpleIdentifier( SimpleIdentifier { span: Span { line: 23, column: 15, position: 309, }, value: "foo", }, ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 23, column: 18, position: 312, }, arguments: [], right_parenthesis: Span { line: 23, column: 19, position: 313, }, }, }, ), ending: Semicolon( Span { line: 23, column: 20, position: 314, }, ), }, ), Expression( ExpressionStatement { expression: StaticMethodCall( StaticMethodCallExpression { target: Parenthesized( ParenthesizedExpression { start: Span { line: 24, column: 9, position: 324, }, expr: Self_, end: Span { line: 24, column: 14, position: 329, }, }, ), double_colon: Span { line: 24, column: 15, position: 330, }, method: SimpleIdentifier( SimpleIdentifier { span: Span { line: 24, column: 17, position: 332, }, value: "foo", }, ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 24, column: 20, position: 335, }, arguments: [], right_parenthesis: Span { line: 24, column: 21, position: 336, }, }, }, ), ending: Semicolon( Span { line: 24, column: 22, position: 337, }, ), }, ), Expression( ExpressionStatement { expression: StaticMethodCall( StaticMethodCallExpression { target: Parenthesized( ParenthesizedExpression { start: Span { line: 25, column: 9, position: 347, }, expr: Parent, end: Span { line: 25, column: 16, position: 354, }, }, ), double_colon: Span { line: 25, column: 17, position: 355, }, method: SimpleIdentifier( SimpleIdentifier { span: Span { line: 25, column: 19, position: 357, }, value: "foo", }, ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 25, column: 22, position: 360, }, arguments: [], right_parenthesis: Span { line: 25, column: 23, position: 361, }, }, }, ), ending: Semicolon( Span { line: 25, column: 24, position: 362, }, ), }, ), ], right_brace: Span { line: 26, column: 5, position: 368, }, }, }, ), ], right_brace: Span { line: 27, column: 1, position: 370, }, }, }, ), Expression( ExpressionStatement { expression: MethodCall( MethodCallExpression { target: Parenthesized( ParenthesizedExpression { start: Span { line: 29, column: 1, position: 373, }, expr: New( NewExpression { new: Span { line: 29, column: 2, position: 374, }, target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 29, column: 6, position: 378, }, value: "a", }, ), ), arguments: None, }, ), end: Span { line: 29, column: 7, position: 379, }, }, ), arrow: Span { line: 29, column: 8, position: 380, }, method: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 29, column: 10, position: 382, }, value: "f", }, ), ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 29, column: 11, position: 383, }, arguments: [], right_parenthesis: Span { line: 29, column: 12, position: 384, }, }, }, ), ending: Semicolon( Span { line: 29, column: 13, position: 385, }, ), }, ), ], }, ), ), ]