[ 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, }, ), }, ), ]