[
    FullOpeningTag(
        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,
                                            },
                                        },
                                    ),
                                ),
                            ],
                            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 {
                        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 {
                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,
            },
        },
    ),
]
