[ FullOpeningTag( FullOpeningTagStatement { span: Span { line: 1, column: 1, position: 0, }, }, ), Function( FunctionStatement { comments: CommentGroup { comments: [], }, attributes: [], function: Span { line: 3, column: 1, position: 7, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 3, column: 10, position: 16, }, value: "a", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 3, column: 11, position: 17, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 3, column: 12, position: 18, }, }, return_type: Some( ReturnType { colon: Span { line: 3, column: 13, position: 19, }, data_type: Null( Span { line: 3, column: 15, position: 21, }, ), }, ), body: FunctionBody { comments: CommentGroup { comments: [], }, left_brace: Span { line: 3, column: 20, position: 26, }, statements: [ Echo( EchoStatement { echo: Span { line: 4, column: 5, position: 32, }, values: [ Literal( String( LiteralString { value: "looping..\n", span: Span { line: 4, column: 10, position: 37, }, kind: DoubleQuoted, }, ), ), ], ending: Semicolon( Span { line: 4, column: 23, position: 50, }, ), }, ), Return( ReturnStatement { return: Span { line: 6, column: 5, position: 57, }, value: Some( Null, ), ending: Semicolon( Span { line: 6, column: 16, position: 68, }, ), }, ), ], right_brace: Span { line: 7, column: 1, position: 70, }, }, }, ), Expression( ExpressionStatement { expression: AssignmentOperation( Assign { left: Variable( SimpleVariable( SimpleVariable { span: Span { line: 9, column: 1, position: 73, }, name: "$bar", }, ), ), equals: Span { line: 9, column: 6, position: 78, }, right: FunctionClosureCreation( FunctionClosureCreationExpression { target: Identifier( SimpleIdentifier( SimpleIdentifier { span: Span { line: 9, column: 8, position: 80, }, value: "a", }, ), ), placeholder: ArgumentPlaceholder { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 9, column: 9, position: 81, }, ellipsis: Span { line: 9, column: 10, position: 82, }, right_parenthesis: Span { line: 9, column: 13, position: 85, }, }, }, ), }, ), ending: Semicolon( Span { line: 9, column: 14, position: 86, }, ), }, ), Label( LabelStatement { comments: CommentGroup { comments: [], }, label: SimpleIdentifier { span: Span { line: 11, column: 1, position: 89, }, value: "foo", }, colon: Span { line: 11, column: 4, position: 92, }, }, ), Expression( ExpressionStatement { expression: FunctionCall( FunctionCallExpression { target: Variable( SimpleVariable( SimpleVariable { span: Span { line: 12, column: 5, position: 98, }, name: "$bar", }, ), ), arguments: ArgumentList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 12, column: 9, position: 102, }, arguments: [], right_parenthesis: Span { line: 12, column: 10, position: 103, }, }, }, ), ending: Semicolon( Span { line: 12, column: 11, position: 104, }, ), }, ), Goto( GotoStatement { comments: CommentGroup { comments: [], }, keyword: Span { line: 13, column: 5, position: 110, }, label: SimpleIdentifier { span: Span { line: 13, column: 10, position: 115, }, value: "foo", }, semicolon: Span { line: 13, column: 13, position: 118, }, }, ), ]