[ FullOpeningTag( FullOpeningTagStatement { span: Span { line: 1, column: 1, position: 0, }, }, ), Function( FunctionStatement { comments: CommentGroup { comments: [], }, attributes: [], function: Span { line: 3, column: 1, position: 8, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 3, column: 10, position: 17, }, value: "foo", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 3, column: 13, position: 20, }, parameters: CommaSeparated { inner: [ FunctionParameter { comments: CommentGroup { comments: [], }, name: SimpleVariable { span: Span { line: 3, column: 14, position: 21, }, name: "$a", }, attributes: [], data_type: None, ellipsis: None, default: None, ampersand: None, }, ], commas: [], }, right_parenthesis: Span { line: 3, column: 16, position: 23, }, }, return_type: None, body: FunctionBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 3, column: 18, position: 25, }, statements: [ Global( GlobalStatement { global: Span { line: 4, column: 5, position: 31, }, variables: [ BracedVariableVariable( BracedVariableVariable { start: Span { line: 4, column: 12, position: 38, }, variable: New( NewExpression { new: Span { line: 4, column: 14, position: 40, }, target: AnonymousClass( AnonymousClassExpression { attributes: [], class: Span { line: 4, column: 18, position: 44, }, extends: None, implements: None, body: AnonymousClassBody { left_brace: Span { line: 4, column: 26, position: 52, }, members: [ ConcreteMethod( ConcreteMethod { comments: CommentGroup { comments: [], }, attributes: [], modifiers: MethodModifierGroup { modifiers: [ Public( Span { line: 5, column: 9, position: 62, }, ), ], }, function: Span { line: 5, column: 16, position: 69, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 5, column: 25, position: 78, }, value: "__toString", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 5, column: 35, position: 88, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 5, column: 36, position: 89, }, }, return_type: None, body: MethodBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 5, column: 38, position: 91, }, statements: [ Return( ReturnStatement { return: Span { line: 6, column: 13, position: 105, }, value: Some( Literal( String( LiteralString { value: "p", span: Span { line: 6, column: 20, position: 112, }, kind: SingleQuoted, }, ), ), ), ending: Semicolon( Span { line: 6, column: 23, position: 115, }, ), }, ), ], right_brace: Span { line: 7, column: 9, position: 125, }, }, }, ), ], right_brace: Span { line: 8, column: 5, position: 131, }, }, }, ), arguments: Some( ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 4, column: 23, position: 49, }, arguments: [], right_parenthesis: Span { line: 4, column: 24, position: 50, }, }, ), }, ), end: Span { line: 8, column: 6, position: 132, }, }, ), ], }, ), Echo( EchoStatement { echo: Span { line: 10, column: 5, position: 140, }, values: [ Variable( SimpleVariable( SimpleVariable { span: Span { line: 10, column: 10, position: 145, }, name: "$p", }, ), ), ], ending: Semicolon( Span { line: 10, column: 12, position: 147, }, ), }, ), ], right_brace: Span { line: 11, column: 1, position: 149, }, }, }, ), Expression( ExpressionStatement { expression: AssignmentOperation( Assign { left: Variable( SimpleVariable( SimpleVariable { span: Span { line: 13, column: 1, position: 152, }, name: "$p", }, ), ), equals: Span { line: 13, column: 4, position: 155, }, right: Literal( String( LiteralString { value: "why!", span: Span { line: 13, column: 6, position: 157, }, kind: SingleQuoted, }, ), ), }, ), ending: Semicolon( Span { line: 13, column: 12, position: 163, }, ), }, ), Expression( ExpressionStatement { expression: AssignmentOperation( Assign { left: Variable( SimpleVariable( SimpleVariable { span: Span { line: 14, column: 1, position: 165, }, name: "$m", }, ), ), equals: Span { line: 14, column: 4, position: 168, }, right: Literal( String( LiteralString { value: "foo", span: Span { line: 14, column: 6, position: 170, }, kind: SingleQuoted, }, ), ), }, ), ending: Semicolon( Span { line: 14, column: 11, position: 175, }, ), }, ), Class( ClassStatement { attributes: [], modifiers: ClassModifierGroup { modifiers: [], }, class: Span { line: 16, column: 1, position: 178, }, name: SimpleIdentifier { span: Span { line: 16, column: 7, position: 184, }, value: "f", }, extends: None, implements: None, body: ClassBody { left_brace: Span { line: 16, column: 9, position: 186, }, members: [ ConcreteMethod( ConcreteMethod { comments: CommentGroup { comments: [], }, attributes: [], modifiers: MethodModifierGroup { modifiers: [ Public( Span { line: 17, column: 5, position: 192, }, ), Static( Span { line: 17, column: 12, position: 199, }, ), ], }, function: Span { line: 17, column: 19, position: 206, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 17, column: 28, position: 215, }, value: "foo", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 17, column: 31, position: 218, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 17, column: 32, position: 219, }, }, return_type: None, body: MethodBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 17, column: 34, position: 221, }, statements: [ Return( ReturnStatement { return: Span { line: 18, column: 9, position: 231, }, value: Some( FunctionCall( FunctionCallExpression { target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 18, column: 16, position: 238, }, value: "foo", }, ), ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 18, column: 19, position: 241, }, arguments: [ Positional( PositionalArgument { comments: CommentGroup { comments: [], }, ellipsis: None, value: ShortArray( ShortArrayExpression { start: Span { line: 18, column: 20, position: 242, }, items: CommaSeparated { inner: [], commas: [], }, end: Span { line: 18, column: 21, position: 243, }, }, ), }, ), ], right_parenthesis: Span { line: 18, column: 22, position: 244, }, }, }, ), ), ending: Semicolon( Span { line: 18, column: 23, position: 245, }, ), }, ), ], right_brace: Span { line: 19, column: 5, position: 251, }, }, }, ), ], right_brace: Span { line: 20, column: 1, position: 253, }, }, }, ), Expression( ExpressionStatement { expression: StaticVariableMethodCall( StaticVariableMethodCallExpression { target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 22, column: 1, position: 256, }, value: "f", }, ), ), double_colon: Span { line: 22, column: 2, position: 257, }, method: BracedVariableVariable( BracedVariableVariable { start: Span { line: 22, column: 4, position: 259, }, variable: FunctionCall( FunctionCallExpression { target: Parenthesized( ParenthesizedExpression { start: Span { line: 22, column: 6, position: 261, }, expr: Closure( ClosureExpression { comments: CommentGroup { comments: [], }, attributes: [], static: None, function: Span { line: 22, column: 7, position: 262, }, ampersand: None, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 22, column: 15, position: 270, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 22, column: 16, position: 271, }, }, uses: None, return_type: None, body: FunctionBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 22, column: 18, position: 273, }, statements: [ Return( ReturnStatement { return: Span { line: 23, column: 5, position: 279, }, value: Some( Literal( String( LiteralString { value: "m", span: Span { line: 23, column: 12, position: 286, }, kind: SingleQuoted, }, ), ), ), ending: Semicolon( Span { line: 23, column: 15, position: 289, }, ), }, ), ], right_brace: Span { line: 24, column: 1, position: 291, }, }, }, ), end: Span { line: 24, column: 2, position: 292, }, }, ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 24, column: 3, position: 293, }, arguments: [], right_parenthesis: Span { line: 24, column: 4, position: 294, }, }, }, ), end: Span { line: 24, column: 5, position: 295, }, }, ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 24, column: 6, position: 296, }, arguments: [], right_parenthesis: Span { line: 24, column: 7, position: 297, }, }, }, ), ending: Semicolon( Span { line: 24, column: 8, position: 298, }, ), }, ), ]