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, }