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