[ FullOpeningTag( FullOpeningTagStatement { span: Span { line: 1, column: 1, position: 0, }, }, ), Interface( InterfaceStatement { attributes: [ AttributeGroup { start: Span { line: 3, column: 1, position: 7, }, end: Span { line: 3, column: 7, position: 13, }, members: [ Attribute { start: Span { line: 3, column: 3, position: 9, }, end: Span { line: 3, column: 4, position: 10, }, name: SimpleIdentifier { span: Span { line: 3, column: 3, position: 9, }, value: "A", }, arguments: None, }, Attribute { start: Span { line: 3, column: 6, position: 12, }, end: Span { line: 3, column: 7, position: 13, }, name: SimpleIdentifier { span: Span { line: 3, column: 6, position: 12, }, value: "B", }, arguments: None, }, ], }, AttributeGroup { start: Span { line: 4, column: 1, position: 15, }, end: Span { line: 4, column: 7, position: 21, }, members: [ Attribute { start: Span { line: 4, column: 3, position: 17, }, end: Span { line: 4, column: 4, position: 18, }, name: SimpleIdentifier { span: Span { line: 4, column: 3, position: 17, }, value: "C", }, arguments: None, }, Attribute { start: Span { line: 4, column: 6, position: 20, }, end: Span { line: 4, column: 7, position: 21, }, name: SimpleIdentifier { span: Span { line: 4, column: 6, position: 20, }, value: "D", }, arguments: None, }, ], }, ], interface: Span { line: 5, column: 1, position: 23, }, name: SimpleIdentifier { span: Span { line: 5, column: 11, position: 33, }, value: "A", }, extends: Some( InterfaceExtends { extends: Span { line: 5, column: 13, position: 35, }, parents: CommaSeparated { inner: [ SimpleIdentifier { span: Span { line: 5, column: 21, position: 43, }, value: "B", }, SimpleIdentifier { span: Span { line: 5, column: 24, position: 46, }, value: "C", }, ], commas: [ Span { line: 5, column: 22, position: 44, }, ], }, }, ), body: InterfaceBody { left_brace: Span { line: 5, column: 26, position: 48, }, members: [ Constant( ClassishConstant { comments: CommentGroup { comments: [], }, attributes: [ AttributeGroup { start: Span { line: 6, column: 5, position: 54, }, end: Span { line: 6, column: 8, position: 57, }, members: [ Attribute { start: Span { line: 6, column: 7, position: 56, }, end: Span { line: 6, column: 8, position: 57, }, name: SimpleIdentifier { span: Span { line: 6, column: 7, position: 56, }, value: "R", }, arguments: None, }, ], }, ], modifiers: ConstantModifierGroup { modifiers: [], }, const: Span { line: 7, column: 5, position: 63, }, entries: [ ConstantEntry { name: SimpleIdentifier { span: Span { line: 7, column: 11, position: 69, }, value: "F", }, equals: Span { line: 7, column: 13, position: 71, }, value: Literal( Integer( LiteralInteger { value: "344", span: Span { line: 7, column: 15, position: 73, }, }, ), ), }, ], semicolon: Span { line: 7, column: 18, position: 76, }, }, ), Constant( ClassishConstant { comments: CommentGroup { comments: [], }, attributes: [ AttributeGroup { start: Span { line: 9, column: 5, position: 83, }, end: Span { line: 9, column: 8, position: 86, }, members: [ Attribute { start: Span { line: 9, column: 7, position: 85, }, end: Span { line: 9, column: 8, position: 86, }, name: SimpleIdentifier { span: Span { line: 9, column: 7, position: 85, }, value: "R", }, arguments: None, }, ], }, ], modifiers: ConstantModifierGroup { modifiers: [ Public( Span { line: 10, column: 5, position: 92, }, ), ], }, const: Span { line: 10, column: 12, position: 99, }, entries: [ ConstantEntry { name: SimpleIdentifier { span: Span { line: 10, column: 18, position: 105, }, value: "O", }, equals: Span { line: 10, column: 20, position: 107, }, value: Literal( Integer( LiteralInteger { value: "344", span: Span { line: 10, column: 22, position: 109, }, }, ), ), }, ], semicolon: Span { line: 10, column: 25, position: 112, }, }, ), Constant( ClassishConstant { comments: CommentGroup { comments: [], }, attributes: [ AttributeGroup { start: Span { line: 12, column: 5, position: 119, }, end: Span { line: 12, column: 8, position: 122, }, members: [ Attribute { start: Span { line: 12, column: 7, position: 121, }, end: Span { line: 12, column: 8, position: 122, }, name: SimpleIdentifier { span: Span { line: 12, column: 7, position: 121, }, value: "R", }, arguments: None, }, ], }, AttributeGroup { start: Span { line: 13, column: 5, position: 128, }, end: Span { line: 13, column: 8, position: 131, }, members: [ Attribute { start: Span { line: 13, column: 7, position: 130, }, end: Span { line: 13, column: 8, position: 131, }, name: SimpleIdentifier { span: Span { line: 13, column: 7, position: 130, }, value: "P", }, arguments: None, }, ], }, ], modifiers: ConstantModifierGroup { modifiers: [ Final( Span { line: 14, column: 5, position: 137, }, ), Public( Span { line: 14, column: 11, position: 143, }, ), ], }, const: Span { line: 14, column: 18, position: 150, }, entries: [ ConstantEntry { name: SimpleIdentifier { span: Span { line: 14, column: 24, position: 156, }, value: "R", }, equals: Span { line: 14, column: 26, position: 158, }, value: Literal( Integer( LiteralInteger { value: "344", span: Span { line: 14, column: 28, position: 160, }, }, ), ), }, ConstantEntry { name: SimpleIdentifier { span: Span { line: 14, column: 33, position: 165, }, value: "P", }, equals: Span { line: 14, column: 35, position: 167, }, value: Literal( Integer( LiteralInteger { value: "214", span: Span { line: 14, column: 37, position: 169, }, }, ), ), }, ], semicolon: Span { line: 14, column: 40, position: 172, }, }, ), Constant( ClassishConstant { comments: CommentGroup { comments: [], }, attributes: [ AttributeGroup { start: Span { line: 16, column: 5, position: 179, }, end: Span { line: 16, column: 8, position: 182, }, members: [ Attribute { start: Span { line: 16, column: 7, position: 181, }, end: Span { line: 16, column: 8, position: 182, }, name: SimpleIdentifier { span: Span { line: 16, column: 7, position: 181, }, value: "R", }, arguments: None, }, ], }, AttributeGroup { start: Span { line: 17, column: 5, position: 188, }, end: Span { line: 17, column: 8, position: 191, }, members: [ Attribute { start: Span { line: 17, column: 7, position: 190, }, end: Span { line: 17, column: 8, position: 191, }, name: SimpleIdentifier { span: Span { line: 17, column: 7, position: 190, }, value: "P", }, arguments: None, }, ], }, ], modifiers: ConstantModifierGroup { modifiers: [ Final( Span { line: 18, column: 5, position: 197, }, ), ], }, const: Span { line: 18, column: 11, position: 203, }, entries: [ ConstantEntry { name: SimpleIdentifier { span: Span { line: 18, column: 17, position: 209, }, value: "M", }, equals: Span { line: 18, column: 19, position: 211, }, value: Literal( Integer( LiteralInteger { value: "34", span: Span { line: 18, column: 21, position: 213, }, }, ), ), }, ], semicolon: Span { line: 18, column: 23, position: 215, }, }, ), Method( AbstractMethod { comments: CommentGroup { comments: [], }, attributes: [ AttributeGroup { start: Span { line: 20, column: 5, position: 222, }, end: Span { line: 20, column: 8, position: 225, }, members: [ Attribute { start: Span { line: 20, column: 7, position: 224, }, end: Span { line: 20, column: 8, position: 225, }, name: SimpleIdentifier { span: Span { line: 20, column: 7, position: 224, }, value: "M", }, arguments: None, }, ], }, ], modifiers: MethodModifierGroup { modifiers: [ Public( Span { line: 21, column: 5, position: 231, }, ), ], }, function: Span { line: 21, column: 12, position: 238, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 21, column: 21, position: 247, }, value: "bar", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 21, column: 24, position: 250, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 21, column: 25, position: 251, }, }, return_type: Some( ReturnType { colon: Span { line: 21, column: 26, position: 252, }, data_type: Void( Span { line: 21, column: 28, position: 254, }, ), }, ), semicolon: Span { line: 21, column: 32, position: 258, }, }, ), Method( AbstractMethod { comments: CommentGroup { comments: [], }, attributes: [ AttributeGroup { start: Span { line: 23, column: 5, position: 265, }, end: Span { line: 23, column: 8, position: 268, }, members: [ Attribute { start: Span { line: 23, column: 7, position: 267, }, end: Span { line: 23, column: 8, position: 268, }, name: SimpleIdentifier { span: Span { line: 23, column: 7, position: 267, }, value: "Q", }, arguments: None, }, ], }, AttributeGroup { start: Span { line: 24, column: 5, position: 274, }, end: Span { line: 24, column: 8, position: 277, }, members: [ Attribute { start: Span { line: 24, column: 7, position: 276, }, end: Span { line: 24, column: 8, position: 277, }, name: SimpleIdentifier { span: Span { line: 24, column: 7, position: 276, }, value: "S", }, arguments: None, }, ], }, ], modifiers: MethodModifierGroup { modifiers: [ Public( Span { line: 25, column: 5, position: 283, }, ), Static( Span { line: 25, column: 12, position: 290, }, ), ], }, function: Span { line: 25, column: 19, position: 297, }, ampersand: None, name: SimpleIdentifier { span: Span { line: 25, column: 28, position: 306, }, value: "baz", }, parameters: FunctionParameterList { comments: CommentGroup { comments: [], }, left_parenthesis: Span { line: 25, column: 31, position: 309, }, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: Span { line: 25, column: 32, position: 310, }, }, return_type: Some( ReturnType { colon: Span { line: 25, column: 33, position: 311, }, data_type: Void( Span { line: 25, column: 35, position: 313, }, ), }, ), semicolon: Span { line: 25, column: 39, position: 317, }, }, ), ], right_brace: Span { line: 26, column: 1, position: 319, }, }, }, ), ]