[
    FullOpeningTag(
        FullOpeningTagStatement {
            span: Span {
                line: 1,
                column: 1,
                position: 0,
            },
        },
    ),
    If(
        IfStatement {
            if: Span {
                line: 3,
                column: 1,
                position: 7,
            },
            left_parenthesis: Span {
                line: 3,
                column: 4,
                position: 10,
            },
            condition: Variable(
                SimpleVariable(
                    SimpleVariable {
                        span: Span {
                            line: 3,
                            column: 5,
                            position: 11,
                        },
                        name: "$a",
                    },
                ),
            ),
            right_parenthesis: Span {
                line: 3,
                column: 7,
                position: 13,
            },
            body: Statement {
                statement: Expression(
                    ExpressionStatement {
                        expression: Variable(
                            SimpleVariable(
                                SimpleVariable {
                                    span: Span {
                                        line: 3,
                                        column: 9,
                                        position: 15,
                                    },
                                    name: "$A",
                                },
                            ),
                        ),
                        ending: Semicolon(
                            Span {
                                line: 3,
                                column: 11,
                                position: 17,
                            },
                        ),
                    },
                ),
                elseifs: [
                    IfStatementElseIf {
                        elseif: Span {
                            line: 4,
                            column: 1,
                            position: 19,
                        },
                        left_parenthesis: Span {
                            line: 4,
                            column: 8,
                            position: 26,
                        },
                        condition: Variable(
                            SimpleVariable(
                                SimpleVariable {
                                    span: Span {
                                        line: 4,
                                        column: 9,
                                        position: 27,
                                    },
                                    name: "$b",
                                },
                            ),
                        ),
                        right_parenthesis: Span {
                            line: 4,
                            column: 11,
                            position: 29,
                        },
                        statement: Expression(
                            ExpressionStatement {
                                expression: Variable(
                                    SimpleVariable(
                                        SimpleVariable {
                                            span: Span {
                                                line: 4,
                                                column: 13,
                                                position: 31,
                                            },
                                            name: "$B",
                                        },
                                    ),
                                ),
                                ending: Semicolon(
                                    Span {
                                        line: 4,
                                        column: 15,
                                        position: 33,
                                    },
                                ),
                            },
                        ),
                    },
                ],
                else: Some(
                    IfStatementElse {
                        else: Span {
                            line: 5,
                            column: 1,
                            position: 35,
                        },
                        statement: Expression(
                            ExpressionStatement {
                                expression: Variable(
                                    SimpleVariable(
                                        SimpleVariable {
                                            span: Span {
                                                line: 5,
                                                column: 6,
                                                position: 40,
                                            },
                                            name: "$C",
                                        },
                                    ),
                                ),
                                ending: Semicolon(
                                    Span {
                                        line: 5,
                                        column: 8,
                                        position: 42,
                                    },
                                ),
                            },
                        ),
                    },
                ),
            },
        },
    ),
    For(
        ForStatement {
            for: Span {
                line: 7,
                column: 1,
                position: 45,
            },
            left_parenthesis: Span {
                line: 7,
                column: 5,
                position: 49,
            },
            iterator: ForStatementIterator {
                initializations: CommaSeparated {
                    inner: [],
                    commas: [],
                },
                initializations_semicolon: Span {
                    line: 7,
                    column: 6,
                    position: 50,
                },
                conditions: CommaSeparated {
                    inner: [],
                    commas: [],
                },
                conditions_semicolon: Span {
                    line: 7,
                    column: 7,
                    position: 51,
                },
                loop: CommaSeparated {
                    inner: [],
                    commas: [],
                },
            },
            right_parenthesis: Span {
                line: 7,
                column: 8,
                position: 52,
            },
            body: Statement {
                statement: Expression(
                    ExpressionStatement {
                        expression: Variable(
                            SimpleVariable(
                                SimpleVariable {
                                    span: Span {
                                        line: 7,
                                        column: 10,
                                        position: 54,
                                    },
                                    name: "$foo",
                                },
                            ),
                        ),
                        ending: Semicolon(
                            Span {
                                line: 7,
                                column: 14,
                                position: 58,
                            },
                        ),
                    },
                ),
            },
        },
    ),
    Foreach(
        ForeachStatement {
            foreach: Span {
                line: 9,
                column: 1,
                position: 61,
            },
            left_parenthesis: Span {
                line: 9,
                column: 9,
                position: 69,
            },
            iterator: Value {
                expression: Variable(
                    SimpleVariable(
                        SimpleVariable {
                            span: Span {
                                line: 9,
                                column: 10,
                                position: 70,
                            },
                            name: "$a",
                        },
                    ),
                ),
                as: Span {
                    line: 9,
                    column: 13,
                    position: 73,
                },
                ampersand: None,
                value: Variable(
                    SimpleVariable(
                        SimpleVariable {
                            span: Span {
                                line: 9,
                                column: 16,
                                position: 76,
                            },
                            name: "$b",
                        },
                    ),
                ),
            },
            right_parenthesis: Span {
                line: 9,
                column: 18,
                position: 78,
            },
            body: Statement {
                statement: Expression(
                    ExpressionStatement {
                        expression: Variable(
                            SimpleVariable(
                                SimpleVariable {
                                    span: Span {
                                        line: 9,
                                        column: 20,
                                        position: 80,
                                    },
                                    name: "$AB",
                                },
                            ),
                        ),
                        ending: Semicolon(
                            Span {
                                line: 9,
                                column: 23,
                                position: 83,
                            },
                        ),
                    },
                ),
            },
        },
    ),
    While(
        WhileStatement {
            while: Span {
                line: 11,
                column: 1,
                position: 86,
            },
            left_parenthesis: Span {
                line: 11,
                column: 7,
                position: 92,
            },
            condition: Variable(
                SimpleVariable(
                    SimpleVariable {
                        span: Span {
                            line: 11,
                            column: 8,
                            position: 93,
                        },
                        name: "$a",
                    },
                ),
            ),
            right_parenthesis: Span {
                line: 11,
                column: 10,
                position: 95,
            },
            body: Statement {
                statement: Expression(
                    ExpressionStatement {
                        expression: Variable(
                            SimpleVariable(
                                SimpleVariable {
                                    span: Span {
                                        line: 11,
                                        column: 12,
                                        position: 97,
                                    },
                                    name: "$A",
                                },
                            ),
                        ),
                        ending: Semicolon(
                            Span {
                                line: 11,
                                column: 14,
                                position: 99,
                            },
                        ),
                    },
                ),
            },
        },
    ),
    DoWhile(
        DoWhileStatement {
            do: Span {
                line: 13,
                column: 1,
                position: 102,
            },
            body: Expression(
                ExpressionStatement {
                    expression: Variable(
                        SimpleVariable(
                            SimpleVariable {
                                span: Span {
                                    line: 13,
                                    column: 4,
                                    position: 105,
                                },
                                name: "$A",
                            },
                        ),
                    ),
                    ending: Semicolon(
                        Span {
                            line: 13,
                            column: 6,
                            position: 107,
                        },
                    ),
                },
            ),
            while: Span {
                line: 13,
                column: 8,
                position: 109,
            },
            left_parenthesis: Span {
                line: 13,
                column: 14,
                position: 115,
            },
            condition: Variable(
                SimpleVariable(
                    SimpleVariable {
                        span: Span {
                            line: 13,
                            column: 15,
                            position: 116,
                        },
                        name: "$a",
                    },
                ),
            ),
            right_parenthesis: Span {
                line: 13,
                column: 17,
                position: 118,
            },
            semicolon: Span {
                line: 13,
                column: 18,
                position: 119,
            },
        },
    ),
    Declare(
        DeclareStatement {
            declare: Span {
                line: 15,
                column: 1,
                position: 122,
            },
            entries: DeclareEntryGroup {
                left_parenthesis: Span {
                    line: 15,
                    column: 9,
                    position: 130,
                },
                right_parenthesis: Span {
                    line: 15,
                    column: 15,
                    position: 136,
                },
                entries: [
                    DeclareEntry {
                        key: SimpleIdentifier {
                            span: Span {
                                line: 15,
                                column: 10,
                                position: 131,
                            },
                            value: "a",
                        },
                        equals: Span {
                            line: 15,
                            column: 11,
                            position: 132,
                        },
                        value: String(
                            LiteralString {
                                value: "b",
                                span: Span {
                                    line: 15,
                                    column: 12,
                                    position: 133,
                                },
                                kind: SingleQuoted,
                            },
                        ),
                    },
                ],
            },
            body: Expression {
                expression: Variable(
                    SimpleVariable(
                        SimpleVariable {
                            span: Span {
                                line: 15,
                                column: 17,
                                position: 138,
                            },
                            name: "$C",
                        },
                    ),
                ),
                semicolon: Span {
                    line: 15,
                    column: 19,
                    position: 140,
                },
            },
        },
    ),
]
