[
    FullOpeningTag(
        FullOpeningTagStatement {
            span: Span {
                line: 1,
                column: 1,
                position: 0,
            },
        },
    ),
    Function(
        FunctionStatement {
            comments: CommentGroup {
                comments: [],
            },
            attributes: [
                AttributeGroup {
                    start: Span {
                        line: 3,
                        column: 1,
                        position: 7,
                    },
                    end: Span {
                        line: 8,
                        column: 1,
                        position: 53,
                    },
                    members: [
                        Attribute {
                            start: Span {
                                line: 4,
                                column: 5,
                                position: 14,
                            },
                            end: Span {
                                line: 4,
                                column: 7,
                                position: 16,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 4,
                                    column: 5,
                                    position: 14,
                                },
                                value: "A1",
                            },
                            arguments: None,
                        },
                        Attribute {
                            start: Span {
                                line: 5,
                                column: 5,
                                position: 22,
                            },
                            end: Span {
                                line: 5,
                                column: 9,
                                position: 26,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 5,
                                    column: 5,
                                    position: 22,
                                },
                                value: "A2",
                            },
                            arguments: Some(
                                ArgumentList {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: Span {
                                        line: 5,
                                        column: 7,
                                        position: 24,
                                    },
                                    arguments: [],
                                    right_parenthesis: Span {
                                        line: 5,
                                        column: 8,
                                        position: 25,
                                    },
                                },
                            ),
                        },
                        Attribute {
                            start: Span {
                                line: 6,
                                column: 5,
                                position: 32,
                            },
                            end: Span {
                                line: 6,
                                column: 10,
                                position: 37,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 6,
                                    column: 5,
                                    position: 32,
                                },
                                value: "A3",
                            },
                            arguments: Some(
                                ArgumentList {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: Span {
                                        line: 6,
                                        column: 7,
                                        position: 34,
                                    },
                                    arguments: [
                                        Positional(
                                            PositionalArgument {
                                                comments: CommentGroup {
                                                    comments: [],
                                                },
                                                ellipsis: None,
                                                value: Literal(
                                                    Integer(
                                                        LiteralInteger {
                                                            value: "0",
                                                            span: Span {
                                                                line: 6,
                                                                column: 8,
                                                                position: 35,
                                                            },
                                                        },
                                                    ),
                                                ),
                                            },
                                        ),
                                    ],
                                    right_parenthesis: Span {
                                        line: 6,
                                        column: 9,
                                        position: 36,
                                    },
                                },
                            ),
                        },
                        Attribute {
                            start: Span {
                                line: 7,
                                column: 5,
                                position: 43,
                            },
                            end: Span {
                                line: 7,
                                column: 13,
                                position: 51,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 7,
                                    column: 5,
                                    position: 43,
                                },
                                value: "A4",
                            },
                            arguments: Some(
                                ArgumentList {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: Span {
                                        line: 7,
                                        column: 7,
                                        position: 45,
                                    },
                                    arguments: [
                                        Named(
                                            NamedArgument {
                                                comments: CommentGroup {
                                                    comments: [],
                                                },
                                                name: SimpleIdentifier {
                                                    span: Span {
                                                        line: 7,
                                                        column: 8,
                                                        position: 46,
                                                    },
                                                    value: "x",
                                                },
                                                colon: Span {
                                                    line: 7,
                                                    column: 9,
                                                    position: 47,
                                                },
                                                ellipsis: None,
                                                value: Literal(
                                                    Integer(
                                                        LiteralInteger {
                                                            value: "1",
                                                            span: Span {
                                                                line: 7,
                                                                column: 11,
                                                                position: 49,
                                                            },
                                                        },
                                                    ),
                                                ),
                                            },
                                        ),
                                    ],
                                    right_parenthesis: Span {
                                        line: 7,
                                        column: 12,
                                        position: 50,
                                    },
                                },
                            ),
                        },
                    ],
                },
            ],
            function: Span {
                line: 9,
                column: 1,
                position: 55,
            },
            ampersand: None,
            name: SimpleIdentifier {
                span: Span {
                    line: 9,
                    column: 10,
                    position: 64,
                },
                value: "a",
            },
            parameters: FunctionParameterList {
                comments: CommentGroup {
                    comments: [],
                },
                left_parenthesis: Span {
                    line: 9,
                    column: 11,
                    position: 65,
                },
                parameters: CommaSeparated {
                    inner: [
                        FunctionParameter {
                            comments: CommentGroup {
                                comments: [],
                            },
                            name: SimpleVariable {
                                span: Span {
                                    line: 11,
                                    column: 15,
                                    position: 91,
                                },
                                name: "$a",
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 10,
                                        column: 5,
                                        position: 71,
                                    },
                                    end: Span {
                                        line: 10,
                                        column: 9,
                                        position: 75,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 10,
                                                column: 7,
                                                position: 73,
                                            },
                                            end: Span {
                                                line: 10,
                                                column: 9,
                                                position: 75,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 10,
                                                    column: 7,
                                                    position: 73,
                                                },
                                                value: "A5",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            data_type: Some(
                                Union(
                                    [
                                        Integer(
                                            Span {
                                                line: 11,
                                                column: 5,
                                                position: 81,
                                            },
                                        ),
                                        Float(
                                            Span {
                                                line: 11,
                                                column: 9,
                                                position: 85,
                                            },
                                        ),
                                    ],
                                ),
                            ),
                            ellipsis: None,
                            default: None,
                            ampersand: None,
                        },
                        FunctionParameter {
                            comments: CommentGroup {
                                comments: [],
                            },
                            name: SimpleVariable {
                                span: Span {
                                    line: 13,
                                    column: 5,
                                    position: 109,
                                },
                                name: "$c",
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 12,
                                        column: 5,
                                        position: 99,
                                    },
                                    end: Span {
                                        line: 12,
                                        column: 9,
                                        position: 103,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 12,
                                                column: 7,
                                                position: 101,
                                            },
                                            end: Span {
                                                line: 12,
                                                column: 9,
                                                position: 103,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 12,
                                                    column: 7,
                                                    position: 101,
                                                },
                                                value: "A6",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            data_type: None,
                            ellipsis: None,
                            default: None,
                            ampersand: None,
                        },
                        FunctionParameter {
                            comments: CommentGroup {
                                comments: [],
                            },
                            name: SimpleVariable {
                                span: Span {
                                    line: 14,
                                    column: 18,
                                    position: 130,
                                },
                                name: "$b",
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 14,
                                        column: 5,
                                        position: 117,
                                    },
                                    end: Span {
                                        line: 14,
                                        column: 9,
                                        position: 121,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 14,
                                                column: 7,
                                                position: 119,
                                            },
                                            end: Span {
                                                line: 14,
                                                column: 9,
                                                position: 121,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 14,
                                                    column: 7,
                                                    position: 119,
                                                },
                                                value: "A7",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            data_type: Some(
                                String(
                                    Span {
                                        line: 14,
                                        column: 11,
                                        position: 123,
                                    },
                                ),
                            ),
                            ellipsis: None,
                            default: None,
                            ampersand: None,
                        },
                    ],
                    commas: [
                        Span {
                            line: 11,
                            column: 17,
                            position: 93,
                        },
                        Span {
                            line: 13,
                            column: 7,
                            position: 111,
                        },
                        Span {
                            line: 14,
                            column: 20,
                            position: 132,
                        },
                    ],
                },
                right_parenthesis: Span {
                    line: 15,
                    column: 1,
                    position: 134,
                },
            },
            return_type: None,
            body: FunctionBody {
                comments: CommentGroup {
                    comments: [],
                },
                left_brace: Span {
                    line: 15,
                    column: 3,
                    position: 136,
                },
                statements: [],
                right_brace: Span {
                    line: 16,
                    column: 1,
                    position: 138,
                },
            },
        },
    ),
    Class(
        ClassStatement {
            attributes: [
                AttributeGroup {
                    start: Span {
                        line: 19,
                        column: 1,
                        position: 142,
                    },
                    end: Span {
                        line: 19,
                        column: 26,
                        position: 167,
                    },
                    members: [
                        Attribute {
                            start: Span {
                                line: 19,
                                column: 3,
                                position: 144,
                            },
                            end: Span {
                                line: 19,
                                column: 5,
                                position: 146,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 19,
                                    column: 3,
                                    position: 144,
                                },
                                value: "A8",
                            },
                            arguments: None,
                        },
                        Attribute {
                            start: Span {
                                line: 19,
                                column: 7,
                                position: 148,
                            },
                            end: Span {
                                line: 19,
                                column: 11,
                                position: 152,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 19,
                                    column: 7,
                                    position: 148,
                                },
                                value: "A9",
                            },
                            arguments: Some(
                                ArgumentList {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: Span {
                                        line: 19,
                                        column: 9,
                                        position: 150,
                                    },
                                    arguments: [],
                                    right_parenthesis: Span {
                                        line: 19,
                                        column: 10,
                                        position: 151,
                                    },
                                },
                            ),
                        },
                        Attribute {
                            start: Span {
                                line: 19,
                                column: 13,
                                position: 154,
                            },
                            end: Span {
                                line: 19,
                                column: 26,
                                position: 167,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 19,
                                    column: 13,
                                    position: 154,
                                },
                                value: "A10",
                            },
                            arguments: Some(
                                ArgumentList {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: Span {
                                        line: 19,
                                        column: 16,
                                        position: 157,
                                    },
                                    arguments: [
                                        Named(
                                            NamedArgument {
                                                comments: CommentGroup {
                                                    comments: [],
                                                },
                                                name: SimpleIdentifier {
                                                    span: Span {
                                                        line: 19,
                                                        column: 17,
                                                        position: 158,
                                                    },
                                                    value: "foo",
                                                },
                                                colon: Span {
                                                    line: 19,
                                                    column: 20,
                                                    position: 161,
                                                },
                                                ellipsis: None,
                                                value: Identifier(
                                                    SimpleIdentifier(
                                                        SimpleIdentifier {
                                                            span: Span {
                                                                line: 19,
                                                                column: 22,
                                                                position: 163,
                                                            },
                                                            value: "bar",
                                                        },
                                                    ),
                                                ),
                                            },
                                        ),
                                    ],
                                    right_parenthesis: Span {
                                        line: 19,
                                        column: 25,
                                        position: 166,
                                    },
                                },
                            ),
                        },
                    ],
                },
            ],
            modifiers: ClassModifierGroup {
                modifiers: [],
            },
            class: Span {
                line: 20,
                column: 1,
                position: 169,
            },
            name: SimpleIdentifier {
                span: Span {
                    line: 20,
                    column: 7,
                    position: 175,
                },
                value: "C",
            },
            extends: None,
            implements: None,
            body: ClassBody {
                left_brace: Span {
                    line: 20,
                    column: 9,
                    position: 177,
                },
                members: [
                    ConcreteConstructor(
                        ConcreteConstructor {
                            comments: CommentGroup {
                                comments: [],
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 21,
                                        column: 5,
                                        position: 183,
                                    },
                                    end: Span {
                                        line: 21,
                                        column: 10,
                                        position: 188,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 21,
                                                column: 7,
                                                position: 185,
                                            },
                                            end: Span {
                                                line: 21,
                                                column: 10,
                                                position: 188,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 21,
                                                    column: 7,
                                                    position: 185,
                                                },
                                                value: "A11",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            modifiers: MethodModifierGroup {
                                modifiers: [
                                    Public(
                                        Span {
                                            line: 22,
                                            column: 5,
                                            position: 194,
                                        },
                                    ),
                                ],
                            },
                            function: Span {
                                line: 22,
                                column: 12,
                                position: 201,
                            },
                            ampersand: None,
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 22,
                                    column: 21,
                                    position: 210,
                                },
                                value: "__construct",
                            },
                            parameters: ConstructorParameterList {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_parenthesis: Span {
                                    line: 22,
                                    column: 32,
                                    position: 221,
                                },
                                parameters: CommaSeparated {
                                    inner: [
                                        ConstructorParameter {
                                            attributes: [
                                                AttributeGroup {
                                                    start: Span {
                                                        line: 23,
                                                        column: 9,
                                                        position: 231,
                                                    },
                                                    end: Span {
                                                        line: 23,
                                                        column: 14,
                                                        position: 236,
                                                    },
                                                    members: [
                                                        Attribute {
                                                            start: Span {
                                                                line: 23,
                                                                column: 11,
                                                                position: 233,
                                                            },
                                                            end: Span {
                                                                line: 23,
                                                                column: 14,
                                                                position: 236,
                                                            },
                                                            name: SimpleIdentifier {
                                                                span: Span {
                                                                    line: 23,
                                                                    column: 11,
                                                                    position: 233,
                                                                },
                                                                value: "A12",
                                                            },
                                                            arguments: None,
                                                        },
                                                    ],
                                                },
                                            ],
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            ampersand: None,
                                            name: SimpleVariable {
                                                span: Span {
                                                    line: 24,
                                                    column: 32,
                                                    position: 269,
                                                },
                                                name: "$s",
                                            },
                                            data_type: Some(
                                                String(
                                                    Span {
                                                        line: 24,
                                                        column: 25,
                                                        position: 262,
                                                    },
                                                ),
                                            ),
                                            ellipsis: None,
                                            default: None,
                                            modifiers: PromotedPropertyModifierGroup {
                                                modifiers: [
                                                    Public(
                                                        Span {
                                                            line: 24,
                                                            column: 9,
                                                            position: 246,
                                                        },
                                                    ),
                                                    Readonly(
                                                        Span {
                                                            line: 24,
                                                            column: 16,
                                                            position: 253,
                                                        },
                                                    ),
                                                ],
                                            },
                                        },
                                    ],
                                    commas: [
                                        Span {
                                            line: 24,
                                            column: 34,
                                            position: 271,
                                        },
                                    ],
                                },
                                right_parenthesis: Span {
                                    line: 25,
                                    column: 5,
                                    position: 277,
                                },
                            },
                            body: MethodBody {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_brace: Span {
                                    line: 25,
                                    column: 7,
                                    position: 279,
                                },
                                statements: [],
                                right_brace: Span {
                                    line: 25,
                                    column: 8,
                                    position: 280,
                                },
                            },
                        },
                    ),
                    ConcreteMethod(
                        ConcreteMethod {
                            comments: CommentGroup {
                                comments: [],
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 27,
                                        column: 5,
                                        position: 287,
                                    },
                                    end: Span {
                                        line: 27,
                                        column: 10,
                                        position: 292,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 27,
                                                column: 7,
                                                position: 289,
                                            },
                                            end: Span {
                                                line: 27,
                                                column: 10,
                                                position: 292,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 27,
                                                    column: 7,
                                                    position: 289,
                                                },
                                                value: "A13",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            modifiers: MethodModifierGroup {
                                modifiers: [
                                    Public(
                                        Span {
                                            line: 28,
                                            column: 5,
                                            position: 298,
                                        },
                                    ),
                                ],
                            },
                            function: Span {
                                line: 28,
                                column: 12,
                                position: 305,
                            },
                            ampersand: None,
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 28,
                                    column: 21,
                                    position: 314,
                                },
                                value: "m",
                            },
                            parameters: FunctionParameterList {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_parenthesis: Span {
                                    line: 28,
                                    column: 22,
                                    position: 315,
                                },
                                parameters: CommaSeparated {
                                    inner: [
                                        FunctionParameter {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            name: SimpleVariable {
                                                span: Span {
                                                    line: 29,
                                                    column: 16,
                                                    position: 332,
                                                },
                                                name: "$param",
                                            },
                                            attributes: [
                                                AttributeGroup {
                                                    start: Span {
                                                        line: 29,
                                                        column: 9,
                                                        position: 325,
                                                    },
                                                    end: Span {
                                                        line: 29,
                                                        column: 14,
                                                        position: 330,
                                                    },
                                                    members: [
                                                        Attribute {
                                                            start: Span {
                                                                line: 29,
                                                                column: 11,
                                                                position: 327,
                                                            },
                                                            end: Span {
                                                                line: 29,
                                                                column: 14,
                                                                position: 330,
                                                            },
                                                            name: SimpleIdentifier {
                                                                span: Span {
                                                                    line: 29,
                                                                    column: 11,
                                                                    position: 327,
                                                                },
                                                                value: "A14",
                                                            },
                                                            arguments: None,
                                                        },
                                                    ],
                                                },
                                            ],
                                            data_type: None,
                                            ellipsis: None,
                                            default: None,
                                            ampersand: None,
                                        },
                                    ],
                                    commas: [
                                        Span {
                                            line: 29,
                                            column: 22,
                                            position: 338,
                                        },
                                    ],
                                },
                                right_parenthesis: Span {
                                    line: 30,
                                    column: 5,
                                    position: 344,
                                },
                            },
                            return_type: None,
                            body: MethodBody {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_brace: Span {
                                    line: 30,
                                    column: 7,
                                    position: 346,
                                },
                                statements: [],
                                right_brace: Span {
                                    line: 30,
                                    column: 8,
                                    position: 347,
                                },
                            },
                        },
                    ),
                    Property(
                        Property {
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 32,
                                        column: 5,
                                        position: 354,
                                    },
                                    end: Span {
                                        line: 32,
                                        column: 10,
                                        position: 359,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 32,
                                                column: 7,
                                                position: 356,
                                            },
                                            end: Span {
                                                line: 32,
                                                column: 10,
                                                position: 359,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 32,
                                                    column: 7,
                                                    position: 356,
                                                },
                                                value: "A15",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            modifiers: PropertyModifierGroup {
                                modifiers: [
                                    Public(
                                        Span {
                                            line: 33,
                                            column: 5,
                                            position: 365,
                                        },
                                    ),
                                ],
                            },
                            type: None,
                            entries: [
                                Uninitialized {
                                    variable: SimpleVariable {
                                        span: Span {
                                            line: 33,
                                            column: 12,
                                            position: 372,
                                        },
                                        name: "$prop",
                                    },
                                },
                            ],
                            end: Span {
                                line: 33,
                                column: 17,
                                position: 377,
                            },
                        },
                    ),
                ],
                right_brace: Span {
                    line: 34,
                    column: 1,
                    position: 379,
                },
            },
        },
    ),
    Trait(
        TraitStatement {
            trait: Span {
                line: 37,
                column: 1,
                position: 389,
            },
            name: SimpleIdentifier {
                span: Span {
                    line: 37,
                    column: 7,
                    position: 395,
                },
                value: "F",
            },
            attributes: [
                AttributeGroup {
                    start: Span {
                        line: 36,
                        column: 1,
                        position: 382,
                    },
                    end: Span {
                        line: 36,
                        column: 6,
                        position: 387,
                    },
                    members: [
                        Attribute {
                            start: Span {
                                line: 36,
                                column: 3,
                                position: 384,
                            },
                            end: Span {
                                line: 36,
                                column: 6,
                                position: 387,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 36,
                                    column: 3,
                                    position: 384,
                                },
                                value: "A16",
                            },
                            arguments: None,
                        },
                    ],
                },
            ],
            body: TraitBody {
                left_brace: Span {
                    line: 37,
                    column: 9,
                    position: 397,
                },
                members: [],
                right_brace: Span {
                    line: 37,
                    column: 10,
                    position: 398,
                },
            },
        },
    ),
    UnitEnum(
        UnitEnumStatement {
            attributes: [
                AttributeGroup {
                    start: Span {
                        line: 39,
                        column: 1,
                        position: 401,
                    },
                    end: Span {
                        line: 39,
                        column: 6,
                        position: 406,
                    },
                    members: [
                        Attribute {
                            start: Span {
                                line: 39,
                                column: 3,
                                position: 403,
                            },
                            end: Span {
                                line: 39,
                                column: 6,
                                position: 406,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 39,
                                    column: 3,
                                    position: 403,
                                },
                                value: "A17",
                            },
                            arguments: None,
                        },
                    ],
                },
            ],
            enum: Span {
                line: 40,
                column: 1,
                position: 408,
            },
            name: SimpleIdentifier {
                span: Span {
                    line: 40,
                    column: 6,
                    position: 413,
                },
                value: "P",
            },
            implements: [],
            body: UnitEnumBody {
                left_brace: Span {
                    line: 40,
                    column: 8,
                    position: 415,
                },
                members: [],
                right_brace: Span {
                    line: 40,
                    column: 9,
                    position: 416,
                },
            },
        },
    ),
    BackedEnum(
        BackedEnumStatement {
            attributes: [
                AttributeGroup {
                    start: Span {
                        line: 42,
                        column: 1,
                        position: 419,
                    },
                    end: Span {
                        line: 42,
                        column: 6,
                        position: 424,
                    },
                    members: [
                        Attribute {
                            start: Span {
                                line: 42,
                                column: 3,
                                position: 421,
                            },
                            end: Span {
                                line: 42,
                                column: 6,
                                position: 424,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 42,
                                    column: 3,
                                    position: 421,
                                },
                                value: "A18",
                            },
                            arguments: None,
                        },
                    ],
                },
            ],
            enum: Span {
                line: 43,
                column: 1,
                position: 426,
            },
            name: SimpleIdentifier {
                span: Span {
                    line: 43,
                    column: 6,
                    position: 431,
                },
                value: "B",
            },
            backed_type: Int(
                Span {
                    line: 43,
                    column: 7,
                    position: 432,
                },
                Span {
                    line: 43,
                    column: 9,
                    position: 434,
                },
            ),
            implements: [],
            body: BackedEnumBody {
                left_brace: Span {
                    line: 43,
                    column: 13,
                    position: 438,
                },
                members: [],
                right_brace: Span {
                    line: 43,
                    column: 14,
                    position: 439,
                },
            },
        },
    ),
    Interface(
        InterfaceStatement {
            attributes: [
                AttributeGroup {
                    start: Span {
                        line: 45,
                        column: 1,
                        position: 442,
                    },
                    end: Span {
                        line: 45,
                        column: 6,
                        position: 447,
                    },
                    members: [
                        Attribute {
                            start: Span {
                                line: 45,
                                column: 3,
                                position: 444,
                            },
                            end: Span {
                                line: 45,
                                column: 6,
                                position: 447,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 45,
                                    column: 3,
                                    position: 444,
                                },
                                value: "A19",
                            },
                            arguments: None,
                        },
                    ],
                },
            ],
            interface: Span {
                line: 46,
                column: 1,
                position: 449,
            },
            name: SimpleIdentifier {
                span: Span {
                    line: 46,
                    column: 11,
                    position: 459,
                },
                value: "I",
            },
            extends: None,
            body: InterfaceBody {
                left_brace: Span {
                    line: 46,
                    column: 13,
                    position: 461,
                },
                members: [],
                right_brace: Span {
                    line: 46,
                    column: 14,
                    position: 462,
                },
            },
        },
    ),
    Trait(
        TraitStatement {
            trait: Span {
                line: 49,
                column: 1,
                position: 472,
            },
            name: SimpleIdentifier {
                span: Span {
                    line: 49,
                    column: 7,
                    position: 478,
                },
                value: "T",
            },
            attributes: [
                AttributeGroup {
                    start: Span {
                        line: 48,
                        column: 1,
                        position: 465,
                    },
                    end: Span {
                        line: 48,
                        column: 6,
                        position: 470,
                    },
                    members: [
                        Attribute {
                            start: Span {
                                line: 48,
                                column: 3,
                                position: 467,
                            },
                            end: Span {
                                line: 48,
                                column: 6,
                                position: 470,
                            },
                            name: SimpleIdentifier {
                                span: Span {
                                    line: 48,
                                    column: 3,
                                    position: 467,
                                },
                                value: "A20",
                            },
                            arguments: None,
                        },
                    ],
                },
            ],
            body: TraitBody {
                left_brace: Span {
                    line: 49,
                    column: 9,
                    position: 480,
                },
                members: [],
                right_brace: Span {
                    line: 49,
                    column: 10,
                    position: 481,
                },
            },
        },
    ),
    Expression(
        ExpressionStatement {
            expression: AssignmentOperation(
                Assign {
                    left: Variable(
                        SimpleVariable(
                            SimpleVariable {
                                span: Span {
                                    line: 51,
                                    column: 1,
                                    position: 484,
                                },
                                name: "$x",
                            },
                        ),
                    ),
                    equals: Span {
                        line: 51,
                        column: 4,
                        position: 487,
                    },
                    right: Closure(
                        ClosureExpression {
                            comments: CommentGroup {
                                comments: [],
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 51,
                                        column: 6,
                                        position: 489,
                                    },
                                    end: Span {
                                        line: 51,
                                        column: 11,
                                        position: 494,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 51,
                                                column: 8,
                                                position: 491,
                                            },
                                            end: Span {
                                                line: 51,
                                                column: 11,
                                                position: 494,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 51,
                                                    column: 8,
                                                    position: 491,
                                                },
                                                value: "A21",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            static: None,
                            function: Span {
                                line: 51,
                                column: 13,
                                position: 496,
                            },
                            ampersand: None,
                            parameters: FunctionParameterList {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_parenthesis: Span {
                                    line: 51,
                                    column: 21,
                                    position: 504,
                                },
                                parameters: CommaSeparated {
                                    inner: [],
                                    commas: [],
                                },
                                right_parenthesis: Span {
                                    line: 51,
                                    column: 22,
                                    position: 505,
                                },
                            },
                            uses: None,
                            return_type: None,
                            body: FunctionBody {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_brace: Span {
                                    line: 51,
                                    column: 24,
                                    position: 507,
                                },
                                statements: [],
                                right_brace: Span {
                                    line: 51,
                                    column: 25,
                                    position: 508,
                                },
                            },
                        },
                    ),
                },
            ),
            ending: Semicolon(
                Span {
                    line: 51,
                    column: 26,
                    position: 509,
                },
            ),
        },
    ),
    Expression(
        ExpressionStatement {
            expression: AssignmentOperation(
                Assign {
                    left: Variable(
                        SimpleVariable(
                            SimpleVariable {
                                span: Span {
                                    line: 52,
                                    column: 1,
                                    position: 511,
                                },
                                name: "$y",
                            },
                        ),
                    ),
                    equals: Span {
                        line: 52,
                        column: 4,
                        position: 514,
                    },
                    right: ArrowFunction(
                        ArrowFunctionExpression {
                            comments: CommentGroup {
                                comments: [],
                            },
                            static: None,
                            ampersand: None,
                            fn: Span {
                                line: 52,
                                column: 13,
                                position: 523,
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 52,
                                        column: 6,
                                        position: 516,
                                    },
                                    end: Span {
                                        line: 52,
                                        column: 11,
                                        position: 521,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 52,
                                                column: 8,
                                                position: 518,
                                            },
                                            end: Span {
                                                line: 52,
                                                column: 11,
                                                position: 521,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 52,
                                                    column: 8,
                                                    position: 518,
                                                },
                                                value: "A22",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            parameters: FunctionParameterList {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_parenthesis: Span {
                                    line: 52,
                                    column: 15,
                                    position: 525,
                                },
                                parameters: CommaSeparated {
                                    inner: [],
                                    commas: [],
                                },
                                right_parenthesis: Span {
                                    line: 52,
                                    column: 16,
                                    position: 526,
                                },
                            },
                            return_type: None,
                            double_arrow: Span {
                                line: 52,
                                column: 18,
                                position: 528,
                            },
                            body: Literal(
                                Integer(
                                    LiteralInteger {
                                        value: "0",
                                        span: Span {
                                            line: 52,
                                            column: 21,
                                            position: 531,
                                        },
                                    },
                                ),
                            ),
                        },
                    ),
                },
            ),
            ending: Semicolon(
                Span {
                    line: 52,
                    column: 22,
                    position: 532,
                },
            ),
        },
    ),
    Expression(
        ExpressionStatement {
            expression: AssignmentOperation(
                Assign {
                    left: Variable(
                        SimpleVariable(
                            SimpleVariable {
                                span: Span {
                                    line: 53,
                                    column: 1,
                                    position: 534,
                                },
                                name: "$a",
                            },
                        ),
                    ),
                    equals: Span {
                        line: 53,
                        column: 4,
                        position: 537,
                    },
                    right: Closure(
                        ClosureExpression {
                            comments: CommentGroup {
                                comments: [],
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 53,
                                        column: 6,
                                        position: 539,
                                    },
                                    end: Span {
                                        line: 53,
                                        column: 11,
                                        position: 544,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 53,
                                                column: 8,
                                                position: 541,
                                            },
                                            end: Span {
                                                line: 53,
                                                column: 11,
                                                position: 544,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 53,
                                                    column: 8,
                                                    position: 541,
                                                },
                                                value: "A23",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            static: Some(
                                Span {
                                    line: 53,
                                    column: 13,
                                    position: 546,
                                },
                            ),
                            function: Span {
                                line: 53,
                                column: 20,
                                position: 553,
                            },
                            ampersand: None,
                            parameters: FunctionParameterList {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_parenthesis: Span {
                                    line: 53,
                                    column: 28,
                                    position: 561,
                                },
                                parameters: CommaSeparated {
                                    inner: [],
                                    commas: [],
                                },
                                right_parenthesis: Span {
                                    line: 53,
                                    column: 29,
                                    position: 562,
                                },
                            },
                            uses: None,
                            return_type: None,
                            body: FunctionBody {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_brace: Span {
                                    line: 53,
                                    column: 31,
                                    position: 564,
                                },
                                statements: [],
                                right_brace: Span {
                                    line: 53,
                                    column: 32,
                                    position: 565,
                                },
                            },
                        },
                    ),
                },
            ),
            ending: Semicolon(
                Span {
                    line: 53,
                    column: 33,
                    position: 566,
                },
            ),
        },
    ),
    Expression(
        ExpressionStatement {
            expression: AssignmentOperation(
                Assign {
                    left: Variable(
                        SimpleVariable(
                            SimpleVariable {
                                span: Span {
                                    line: 54,
                                    column: 1,
                                    position: 568,
                                },
                                name: "$b",
                            },
                        ),
                    ),
                    equals: Span {
                        line: 54,
                        column: 4,
                        position: 571,
                    },
                    right: ArrowFunction(
                        ArrowFunctionExpression {
                            comments: CommentGroup {
                                comments: [],
                            },
                            static: Some(
                                Span {
                                    line: 54,
                                    column: 13,
                                    position: 580,
                                },
                            ),
                            ampersand: None,
                            fn: Span {
                                line: 54,
                                column: 20,
                                position: 587,
                            },
                            attributes: [
                                AttributeGroup {
                                    start: Span {
                                        line: 54,
                                        column: 6,
                                        position: 573,
                                    },
                                    end: Span {
                                        line: 54,
                                        column: 11,
                                        position: 578,
                                    },
                                    members: [
                                        Attribute {
                                            start: Span {
                                                line: 54,
                                                column: 8,
                                                position: 575,
                                            },
                                            end: Span {
                                                line: 54,
                                                column: 11,
                                                position: 578,
                                            },
                                            name: SimpleIdentifier {
                                                span: Span {
                                                    line: 54,
                                                    column: 8,
                                                    position: 575,
                                                },
                                                value: "A24",
                                            },
                                            arguments: None,
                                        },
                                    ],
                                },
                            ],
                            parameters: FunctionParameterList {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                left_parenthesis: Span {
                                    line: 54,
                                    column: 22,
                                    position: 589,
                                },
                                parameters: CommaSeparated {
                                    inner: [],
                                    commas: [],
                                },
                                right_parenthesis: Span {
                                    line: 54,
                                    column: 23,
                                    position: 590,
                                },
                            },
                            return_type: None,
                            double_arrow: Span {
                                line: 54,
                                column: 25,
                                position: 592,
                            },
                            body: Literal(
                                Integer(
                                    LiteralInteger {
                                        value: "0",
                                        span: Span {
                                            line: 54,
                                            column: 28,
                                            position: 595,
                                        },
                                    },
                                ),
                            ),
                        },
                    ),
                },
            ),
            ending: Semicolon(
                Span {
                    line: 54,
                    column: 29,
                    position: 596,
                },
            ),
        },
    ),
    Expression(
        ExpressionStatement {
            expression: AssignmentOperation(
                Assign {
                    left: Variable(
                        SimpleVariable(
                            SimpleVariable {
                                span: Span {
                                    line: 55,
                                    column: 1,
                                    position: 598,
                                },
                                name: "$z",
                            },
                        ),
                    ),
                    equals: Span {
                        line: 55,
                        column: 4,
                        position: 601,
                    },
                    right: New(
                        NewExpression {
                            new: Span {
                                line: 55,
                                column: 6,
                                position: 603,
                            },
                            target: AnonymousClass(
                                AnonymousClassExpression {
                                    attributes: [
                                        AttributeGroup {
                                            start: Span {
                                                line: 55,
                                                column: 10,
                                                position: 607,
                                            },
                                            end: Span {
                                                line: 55,
                                                column: 15,
                                                position: 612,
                                            },
                                            members: [
                                                Attribute {
                                                    start: Span {
                                                        line: 55,
                                                        column: 12,
                                                        position: 609,
                                                    },
                                                    end: Span {
                                                        line: 55,
                                                        column: 15,
                                                        position: 612,
                                                    },
                                                    name: SimpleIdentifier {
                                                        span: Span {
                                                            line: 55,
                                                            column: 12,
                                                            position: 609,
                                                        },
                                                        value: "A25",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                        },
                                    ],
                                    class: Span {
                                        line: 55,
                                        column: 17,
                                        position: 614,
                                    },
                                    extends: None,
                                    implements: None,
                                    body: AnonymousClassBody {
                                        left_brace: Span {
                                            line: 55,
                                            column: 23,
                                            position: 620,
                                        },
                                        members: [
                                            VariableProperty(
                                                VariableProperty {
                                                    attributes: [
                                                        AttributeGroup {
                                                            start: Span {
                                                                line: 56,
                                                                column: 5,
                                                                position: 626,
                                                            },
                                                            end: Span {
                                                                line: 56,
                                                                column: 10,
                                                                position: 631,
                                                            },
                                                            members: [
                                                                Attribute {
                                                                    start: Span {
                                                                        line: 56,
                                                                        column: 7,
                                                                        position: 628,
                                                                    },
                                                                    end: Span {
                                                                        line: 56,
                                                                        column: 10,
                                                                        position: 631,
                                                                    },
                                                                    name: SimpleIdentifier {
                                                                        span: Span {
                                                                            line: 56,
                                                                            column: 7,
                                                                            position: 628,
                                                                        },
                                                                        value: "A26",
                                                                    },
                                                                    arguments: None,
                                                                },
                                                            ],
                                                        },
                                                    ],
                                                    type: None,
                                                    entries: [
                                                        Uninitialized {
                                                            variable: SimpleVariable {
                                                                span: Span {
                                                                    line: 57,
                                                                    column: 9,
                                                                    position: 641,
                                                                },
                                                                name: "$s",
                                                            },
                                                        },
                                                    ],
                                                    end: Span {
                                                        line: 57,
                                                        column: 11,
                                                        position: 643,
                                                    },
                                                },
                                            ),
                                        ],
                                        right_brace: Span {
                                            line: 58,
                                            column: 1,
                                            position: 645,
                                        },
                                    },
                                },
                            ),
                            arguments: None,
                        },
                    ),
                },
            ),
            ending: Semicolon(
                Span {
                    line: 58,
                    column: 2,
                    position: 646,
                },
            ),
        },
    ),
]
