DefinitionTree {
    definitions: [
        Class(
            ClassDefinition {
                comments: CommentGroup {
                    comments: [],
                },
                attributes: [],
                modifiers: ClassModifierDefinitionGroup {
                    modifiers: [],
                },
                class: Keyword {
                    value: "class",
                    position: 0,
                },
                name: Identifier {
                    position: 6,
                    value: "Foo",
                },
                templates: None,
                extends: None,
                implements: None,
                body: ClassDefinitionBody {
                    left_brace: 10,
                    members: [
                        Constant(
                            ClassishConstantDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [],
                                modifiers: ConstantModifierDefinitionGroup {
                                    modifiers: [],
                                },
                                const: Keyword {
                                    value: "const",
                                    position: 16,
                                },
                                entries: CommaSeparated {
                                    inner: [
                                        ConstantDefinitionEntry {
                                            name: Identifier {
                                                position: 22,
                                                value: "foo",
                                            },
                                            equals: 26,
                                            value: Literal(
                                                Integer(
                                                    LiteralInteger {
                                                        comments: CommentGroup {
                                                            comments: [],
                                                        },
                                                        value: "1",
                                                        position: 28,
                                                    },
                                                ),
                                            ),
                                        },
                                    ],
                                    commas: [],
                                },
                                semicolon: 29,
                            },
                        ),
                        ConcreteMethod(
                            ConcreteMethodDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [],
                                modifiers: MethodModifierDefinitionGroup {
                                    modifiers: [
                                        Public(
                                            36,
                                        ),
                                        Static(
                                            43,
                                        ),
                                    ],
                                },
                                function: Keyword {
                                    value: "function",
                                    position: 50,
                                },
                                name: Identifier {
                                    position: 59,
                                    value: "foo",
                                },
                                templates: None,
                                parameters: FunctionLikeParameterListDefinition {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: 62,
                                    parameters: CommaSeparated {
                                        inner: [],
                                        commas: [],
                                    },
                                    right_parenthesis: 63,
                                },
                                return_type: FunctionLikeReturnTypeDefinition {
                                    colon: 64,
                                    type_definition: Void(
                                        Keyword {
                                            value: "void",
                                            position: 66,
                                        },
                                    ),
                                },
                                constraints: None,
                                body: BlockStatement {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_brace: 71,
                                    statements: [
                                        Expression(
                                            ExpressionStatement {
                                                comments: CommentGroup {
                                                    comments: [],
                                                },
                                                expression: AssignmentOperation(
                                                    Assignment {
                                                        comments: CommentGroup {
                                                            comments: [],
                                                        },
                                                        left: Variable(
                                                            Variable {
                                                                position: 81,
                                                                name: "$a",
                                                            },
                                                        ),
                                                        equals: 84,
                                                        right: ClassOperation(
                                                            ConstantFetch {
                                                                comments: CommentGroup {
                                                                    comments: [],
                                                                },
                                                                class: Identifier(
                                                                    Identifier {
                                                                        position: 86,
                                                                        value: "static",
                                                                    },
                                                                ),
                                                                double_colon: 92,
                                                                constant: Identifier {
                                                                    position: 94,
                                                                    value: "foo",
                                                                },
                                                            },
                                                        ),
                                                    },
                                                ),
                                                semicolon: 97,
                                            },
                                        ),
                                        Expression(
                                            ExpressionStatement {
                                                comments: CommentGroup {
                                                    comments: [],
                                                },
                                                expression: ClassOperation(
                                                    StaticMethodCall {
                                                        comments: CommentGroup {
                                                            comments: [],
                                                        },
                                                        class: Identifier(
                                                            Identifier {
                                                                position: 108,
                                                                value: "static",
                                                            },
                                                        ),
                                                        double_colon: 114,
                                                        method: Identifier {
                                                            position: 116,
                                                            value: "foo",
                                                        },
                                                        generics: None,
                                                        arguments: ArgumentListExpression {
                                                            comments: CommentGroup {
                                                                comments: [],
                                                            },
                                                            left_parenthesis: 119,
                                                            arguments: CommaSeparated {
                                                                inner: [],
                                                                commas: [],
                                                            },
                                                            right_parenthesis: 120,
                                                        },
                                                    },
                                                ),
                                                semicolon: 121,
                                            },
                                        ),
                                    ],
                                    right_brace: 127,
                                },
                            },
                        ),
                    ],
                    right_brace: 129,
                },
            },
        ),
    ],
    eof: 131,
}