DefinitionTree {
    definitions: [
        Interface(
            InterfaceDefinition {
                comments: CommentGroup {
                    comments: [],
                },
                attributes: [
                    AttributeGroupDefinition {
                        hash_left_bracket: 0,
                        members: CommaSeparated {
                            inner: [
                                AttributeDefinition {
                                    name: Identifier {
                                        position: 2,
                                        value: "A",
                                    },
                                    arguments: None,
                                },
                                AttributeDefinition {
                                    name: Identifier {
                                        position: 5,
                                        value: "B",
                                    },
                                    arguments: None,
                                },
                            ],
                            commas: [
                                3,
                            ],
                        },
                        right_bracket: 6,
                    },
                    AttributeGroupDefinition {
                        hash_left_bracket: 8,
                        members: CommaSeparated {
                            inner: [
                                AttributeDefinition {
                                    name: Identifier {
                                        position: 10,
                                        value: "C",
                                    },
                                    arguments: None,
                                },
                                AttributeDefinition {
                                    name: Identifier {
                                        position: 13,
                                        value: "D",
                                    },
                                    arguments: None,
                                },
                            ],
                            commas: [
                                11,
                            ],
                        },
                        right_bracket: 14,
                    },
                ],
                interface: Keyword {
                    value: "interface",
                    position: 16,
                },
                name: Identifier {
                    position: 26,
                    value: "A",
                },
                templates: None,
                extends: Some(
                    InterfaceDefinitionExtends {
                        extends: Keyword {
                            value: "extends",
                            position: 28,
                        },
                        parents: CommaSeparated {
                            inner: [
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 36,
                                        value: "B",
                                    },
                                    templates: None,
                                },
                                TemplatedIdentifier {
                                    name: Identifier {
                                        position: 39,
                                        value: "C",
                                    },
                                    templates: None,
                                },
                            ],
                            commas: [
                                37,
                            ],
                        },
                    },
                ),
                body: InterfaceDefinitionBody {
                    left_brace: 41,
                    members: [
                        Constant(
                            ClassishConstantDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 47,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 49,
                                                        value: "R",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 50,
                                    },
                                ],
                                modifiers: ModifierGroupDefinition {
                                    position: 56,
                                    modifiers: [],
                                },
                                const: Keyword {
                                    value: "const",
                                    position: 56,
                                },
                                type_definition: SignedInteger(
                                    Default(
                                        Keyword {
                                            value: "int",
                                            position: 62,
                                        },
                                    ),
                                ),
                                name: Identifier {
                                    position: 66,
                                    value: "F",
                                },
                                equals: 68,
                                value: Literal(
                                    Integer(
                                        LiteralInteger {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            value: "344",
                                            position: 70,
                                        },
                                    ),
                                ),
                                semicolon: 73,
                            },
                        ),
                        Constant(
                            ClassishConstantDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 80,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 82,
                                                        value: "R",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 83,
                                    },
                                ],
                                modifiers: ModifierGroupDefinition {
                                    position: 96,
                                    modifiers: [
                                        Public(
                                            Keyword {
                                                value: "public",
                                                position: 89,
                                            },
                                        ),
                                    ],
                                },
                                const: Keyword {
                                    value: "const",
                                    position: 96,
                                },
                                type_definition: SignedInteger(
                                    Default(
                                        Keyword {
                                            value: "int",
                                            position: 102,
                                        },
                                    ),
                                ),
                                name: Identifier {
                                    position: 106,
                                    value: "O",
                                },
                                equals: 108,
                                value: Literal(
                                    Integer(
                                        LiteralInteger {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            value: "344",
                                            position: 110,
                                        },
                                    ),
                                ),
                                semicolon: 113,
                            },
                        ),
                        Constant(
                            ClassishConstantDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 120,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 122,
                                                        value: "R",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 123,
                                    },
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 129,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 131,
                                                        value: "P",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 132,
                                    },
                                ],
                                modifiers: ModifierGroupDefinition {
                                    position: 151,
                                    modifiers: [
                                        Final(
                                            Keyword {
                                                value: "final",
                                                position: 138,
                                            },
                                        ),
                                        Public(
                                            Keyword {
                                                value: "public",
                                                position: 144,
                                            },
                                        ),
                                    ],
                                },
                                const: Keyword {
                                    value: "const",
                                    position: 151,
                                },
                                type_definition: SignedInteger(
                                    Default(
                                        Keyword {
                                            value: "int",
                                            position: 157,
                                        },
                                    ),
                                ),
                                name: Identifier {
                                    position: 161,
                                    value: "R",
                                },
                                equals: 163,
                                value: Literal(
                                    Integer(
                                        LiteralInteger {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            value: "344",
                                            position: 165,
                                        },
                                    ),
                                ),
                                semicolon: 168,
                            },
                        ),
                        Constant(
                            ClassishConstantDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 175,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 177,
                                                        value: "R",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 178,
                                    },
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 184,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 186,
                                                        value: "P",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 187,
                                    },
                                ],
                                modifiers: ModifierGroupDefinition {
                                    position: 199,
                                    modifiers: [
                                        Final(
                                            Keyword {
                                                value: "final",
                                                position: 193,
                                            },
                                        ),
                                    ],
                                },
                                const: Keyword {
                                    value: "const",
                                    position: 199,
                                },
                                type_definition: SignedInteger(
                                    Default(
                                        Keyword {
                                            value: "int",
                                            position: 205,
                                        },
                                    ),
                                ),
                                name: Identifier {
                                    position: 209,
                                    value: "M",
                                },
                                equals: 211,
                                value: Literal(
                                    Integer(
                                        LiteralInteger {
                                            comments: CommentGroup {
                                                comments: [],
                                            },
                                            value: "34",
                                            position: 213,
                                        },
                                    ),
                                ),
                                semicolon: 215,
                            },
                        ),
                        Method(
                            MethodDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 222,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 224,
                                                        value: "M",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 225,
                                    },
                                ],
                                modifiers: ModifierGroupDefinition {
                                    position: 238,
                                    modifiers: [
                                        Public(
                                            Keyword {
                                                value: "public",
                                                position: 231,
                                            },
                                        ),
                                    ],
                                },
                                function: Keyword {
                                    value: "function",
                                    position: 238,
                                },
                                name: Identifier {
                                    position: 247,
                                    value: "bar",
                                },
                                templates: None,
                                parameters: MethodParameterListDefinition {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: 250,
                                    parameters: CommaSeparated {
                                        inner: [],
                                        commas: [],
                                    },
                                    right_parenthesis: 251,
                                },
                                return_type: Some(
                                    FunctionLikeReturnTypeDefinition {
                                        colon: 252,
                                        type_definition: Void(
                                            Keyword {
                                                value: "void",
                                                position: 254,
                                            },
                                        ),
                                    },
                                ),
                                constraints: None,
                                body: Abstract(
                                    258,
                                ),
                            },
                        ),
                        Method(
                            MethodDefinition {
                                comments: CommentGroup {
                                    comments: [],
                                },
                                attributes: [
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 265,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 267,
                                                        value: "Q",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 268,
                                    },
                                    AttributeGroupDefinition {
                                        hash_left_bracket: 274,
                                        members: CommaSeparated {
                                            inner: [
                                                AttributeDefinition {
                                                    name: Identifier {
                                                        position: 276,
                                                        value: "S",
                                                    },
                                                    arguments: None,
                                                },
                                            ],
                                            commas: [],
                                        },
                                        right_bracket: 277,
                                    },
                                ],
                                modifiers: ModifierGroupDefinition {
                                    position: 297,
                                    modifiers: [
                                        Public(
                                            Keyword {
                                                value: "public",
                                                position: 283,
                                            },
                                        ),
                                        Static(
                                            Keyword {
                                                value: "static",
                                                position: 290,
                                            },
                                        ),
                                    ],
                                },
                                function: Keyword {
                                    value: "function",
                                    position: 297,
                                },
                                name: Identifier {
                                    position: 306,
                                    value: "baz",
                                },
                                templates: None,
                                parameters: MethodParameterListDefinition {
                                    comments: CommentGroup {
                                        comments: [],
                                    },
                                    left_parenthesis: 309,
                                    parameters: CommaSeparated {
                                        inner: [],
                                        commas: [],
                                    },
                                    right_parenthesis: 310,
                                },
                                return_type: Some(
                                    FunctionLikeReturnTypeDefinition {
                                        colon: 311,
                                        type_definition: Void(
                                            Keyword {
                                                value: "void",
                                                position: 313,
                                            },
                                        ),
                                    },
                                ),
                                constraints: None,
                                body: Abstract(
                                    317,
                                ),
                            },
                        ),
                    ],
                    right_brace: 319,
                },
            },
        ),
    ],
    eof: 321,
}