DefinitionTree { definitions: [ Constant( ConstantDefinition { comments: CommentGroup { comments: [], }, const: Keyword { value: "const", position: 0, }, type_definition: Vec( Keyword { value: "vec", position: 6, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 9, members: CommaSeparated { inner: [ Mixed( Keyword { value: "mixed", position: 10, }, ), ], commas: [], }, greater_than: 15, }, ), name: Identifier { position: 17, value: "FOO", }, equals: 21, value: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 23, }, left_bracket: 26, elements: CommaSeparated { inner: [ VecElementExpression { value: Identifier( Identifier { position: 32, value: "Qux", }, ), }, VecElementExpression { value: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 41, value: "Foo", }, ), double_colon: 44, constant: Identifier { position: 46, value: "Bar", }, }, ), }, VecElementExpression { value: ArithmeticOperation( Addition { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 55, }, ), ), plus: 57, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 59, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Subtraction { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 66, }, ), ), minus: 68, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 70, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Multiplication { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 77, }, ), ), asterisk: 79, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "6", position: 81, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Division { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "7", position: 88, }, ), ), slash: 90, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "8", position: 92, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Modulo { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "9", position: 99, }, ), ), percent: 101, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 103, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "11", position: 111, }, ), ), pow: 114, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "12", position: 117, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( LeftShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "13", position: 125, }, ), ), left_shift: 128, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "14", position: 131, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( RightShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "15", position: 139, }, ), ), right_shift: 142, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "16", position: 145, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "17", position: 153, }, ), ), and: 156, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "18", position: 158, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "19", position: 166, }, ), ), or: 169, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "20", position: 171, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Xor { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "21", position: 179, }, ), ), xor: 182, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "22", position: 184, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "23", position: 192, }, ), ), double_ampersand: 195, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "24", position: 198, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "25", position: 206, }, ), ), double_pipe: 209, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "26", position: 212, }, ), ), }, ), }, VecElementExpression { value: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "27", position: 220, }, ), ), double_question: 223, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "28", position: 226, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Spaceship { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "29", position: 234, }, ), ), spaceship: 237, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "30", position: 241, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Identical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "31", position: 249, }, ), ), triple_equals: 252, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "32", position: 256, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotIdentical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "33", position: 264, }, ), ), bang_double_equals: 267, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "34", position: 271, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "35", position: 279, }, ), ), double_equals: 282, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "36", position: 285, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "37", position: 293, }, ), ), bang_equals: 296, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "38", position: 299, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "39", position: 307, }, ), ), less_than_equals: 310, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "40", position: 313, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "41", position: 321, }, ), ), greater_than_equals: 324, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "42", position: 327, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "43", position: 335, }, ), ), less_than: 338, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "44", position: 340, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "45", position: 348, }, ), ), greater_than: 351, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "46", position: 353, }, ), ), }, ), }, VecElementExpression { value: StringOperation( Concat { comments: CommentGroup { comments: [], }, left: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 361, }, ), ), dot: 365, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 367, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Not { comments: CommentGroup { comments: [], }, bang: 376, right: Identifier( Identifier { position: 377, value: "Biz", }, ), }, ), }, VecElementExpression { value: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 386, right: Identifier( Identifier { position: 387, value: "Baz", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 396, right: Identifier( Identifier { position: 397, value: "Qux", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Negative { comments: CommentGroup { comments: [], }, minus: 406, right: Identifier( Identifier { position: 407, value: "Foo", }, ), }, ), }, VecElementExpression { value: Tuple( TupleExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 416, elements: CommaSeparated { inner: [ Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 417, }, ), ), Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 420, }, ), ), Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 423, }, ), ), ], commas: [ 418, 421, ], }, right_parenthesis: 424, }, ), }, VecElementExpression { value: Dict( DictExpression { comments: CommentGroup { comments: [], }, dict: Keyword { value: "dict", position: 431, }, left_bracket: 435, elements: CommaSeparated { inner: [ DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 445, }, ), ), double_arrow: 447, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 450, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 463, }, ), ), double_arrow: 465, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 468, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 481, }, ), ), double_arrow: 483, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""c"", position: 486, }, ), ), }, ], commas: [ 453, 471, 489, ], }, right_bracket: 495, }, ), }, ], commas: [ 35, 49, 60, 71, 82, 93, 105, 119, 133, 147, 160, 173, 186, 200, 214, 228, 243, 258, 273, 287, 301, 315, 329, 342, 355, 370, 380, 390, 400, 410, 425, 496, ], }, right_bracket: 498, }, ), semicolon: 499, }, ), Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [ AttributeGroupDefinition { hash_left_bracket: 502, members: CommaSeparated { inner: [ AttributeDefinition { name: Identifier { position: 504, value: "Foo", }, arguments: Some( ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 507, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 508, }, class: Identifier( Identifier { position: 512, value: "Bar", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 515, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 516, }, left_bracket: 519, elements: CommaSeparated { inner: [ VecElementExpression { value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 525, }, class: Identifier( Identifier { position: 529, value: "Baz", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 532, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 533, }, }, ), }, VecElementExpression { value: Identifier( Identifier { position: 540, value: "Qux", }, ), }, VecElementExpression { value: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 549, value: "Foo", }, ), double_colon: 552, constant: Identifier { position: 554, value: "Bar", }, }, ), }, VecElementExpression { value: ArithmeticOperation( Addition { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 563, }, ), ), plus: 565, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 567, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Subtraction { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 574, }, ), ), minus: 576, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 578, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Multiplication { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 585, }, ), ), asterisk: 587, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "6", position: 589, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Division { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "7", position: 596, }, ), ), slash: 598, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "8", position: 600, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Modulo { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "9", position: 607, }, ), ), percent: 609, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 611, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "11", position: 619, }, ), ), pow: 622, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "12", position: 625, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( LeftShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "13", position: 633, }, ), ), left_shift: 636, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "14", position: 639, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( RightShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "15", position: 647, }, ), ), right_shift: 650, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "16", position: 653, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "17", position: 661, }, ), ), and: 664, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "18", position: 666, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "19", position: 674, }, ), ), or: 677, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "20", position: 679, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Xor { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "21", position: 687, }, ), ), xor: 690, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "22", position: 692, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "23", position: 700, }, ), ), double_ampersand: 703, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "24", position: 706, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "25", position: 714, }, ), ), double_pipe: 717, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "26", position: 720, }, ), ), }, ), }, VecElementExpression { value: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "27", position: 728, }, ), ), double_question: 731, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "28", position: 734, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Spaceship { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "29", position: 742, }, ), ), spaceship: 745, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "30", position: 749, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Identical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "31", position: 757, }, ), ), triple_equals: 760, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "32", position: 764, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotIdentical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "33", position: 772, }, ), ), bang_double_equals: 775, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "34", position: 779, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "35", position: 787, }, ), ), double_equals: 790, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "36", position: 793, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "37", position: 801, }, ), ), bang_equals: 804, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "38", position: 807, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "39", position: 815, }, ), ), less_than_equals: 818, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "40", position: 821, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "41", position: 829, }, ), ), greater_than_equals: 832, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "42", position: 835, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "43", position: 843, }, ), ), less_than: 846, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "44", position: 848, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "45", position: 856, }, ), ), greater_than: 859, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "46", position: 861, }, ), ), }, ), }, VecElementExpression { value: StringOperation( Concat { comments: CommentGroup { comments: [], }, left: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 869, }, ), ), dot: 873, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 875, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Not { comments: CommentGroup { comments: [], }, bang: 884, right: Identifier( Identifier { position: 885, value: "Biz", }, ), }, ), }, VecElementExpression { value: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 894, right: Identifier( Identifier { position: 895, value: "Baz", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 904, right: Identifier( Identifier { position: 905, value: "Qux", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Negative { comments: CommentGroup { comments: [], }, minus: 914, right: Identifier( Identifier { position: 915, value: "Foo", }, ), }, ), }, ], commas: [ 534, 543, 557, 568, 579, 590, 601, 613, 627, 641, 655, 668, 681, 694, 708, 722, 736, 751, 766, 781, 795, 809, 823, 837, 850, 863, 878, 888, 898, 908, 918, ], }, right_bracket: 920, }, ), }, ], commas: [], }, right_parenthesis: 921, }, }, ), }, ], commas: [], }, right_parenthesis: 922, }, ), }, ], commas: [], }, right_bracket: 923, }, ], function: Keyword { value: "function", position: 925, }, name: Identifier { position: 934, value: "foo", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 937, parameters: CommaSeparated { inner: [ FunctionLikeParameterDefinition { comments: CommentGroup { comments: [], }, attributes: [], type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 943, value: "Foo", }, templates: None, }, ), ellipsis: None, variable: Variable { position: 947, name: "$foo", }, default: Some( FunctionLikeParameterDefaultValueDefinition { equals: 952, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 954, }, class: Identifier( Identifier { position: 958, value: "Foo", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 961, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 962, }, class: Identifier( Identifier { position: 966, value: "Bar", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 969, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 970, }, left_bracket: 973, elements: CommaSeparated { inner: [ VecElementExpression { value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 983, }, class: Identifier( Identifier { position: 987, value: "Baz", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 990, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 991, }, }, ), }, VecElementExpression { value: Identifier( Identifier { position: 1002, value: "Qux", }, ), }, VecElementExpression { value: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 1015, value: "Foo", }, ), double_colon: 1018, constant: Identifier { position: 1020, value: "Bar", }, }, ), }, VecElementExpression { value: ArithmeticOperation( Addition { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 1033, }, ), ), plus: 1035, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 1037, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Subtraction { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 1048, }, ), ), minus: 1050, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 1052, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Multiplication { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 1063, }, ), ), asterisk: 1065, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "6", position: 1067, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Division { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "7", position: 1078, }, ), ), slash: 1080, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "8", position: 1082, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Modulo { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "9", position: 1093, }, ), ), percent: 1095, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 1097, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "11", position: 1109, }, ), ), pow: 1112, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "12", position: 1115, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( LeftShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "13", position: 1127, }, ), ), left_shift: 1130, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "14", position: 1133, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( RightShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "15", position: 1145, }, ), ), right_shift: 1148, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "16", position: 1151, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "17", position: 1163, }, ), ), and: 1166, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "18", position: 1168, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "19", position: 1180, }, ), ), or: 1183, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "20", position: 1185, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Xor { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "21", position: 1197, }, ), ), xor: 1200, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "22", position: 1202, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "23", position: 1214, }, ), ), double_ampersand: 1217, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "24", position: 1220, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "25", position: 1232, }, ), ), double_pipe: 1235, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "26", position: 1238, }, ), ), }, ), }, VecElementExpression { value: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "27", position: 1250, }, ), ), double_question: 1253, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "28", position: 1256, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Spaceship { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "29", position: 1268, }, ), ), spaceship: 1271, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "30", position: 1275, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Identical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "31", position: 1287, }, ), ), triple_equals: 1290, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "32", position: 1294, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotIdentical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "33", position: 1306, }, ), ), bang_double_equals: 1309, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "34", position: 1313, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "35", position: 1325, }, ), ), double_equals: 1328, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "36", position: 1331, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "37", position: 1343, }, ), ), bang_equals: 1346, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "38", position: 1349, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "39", position: 1361, }, ), ), less_than_equals: 1364, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "40", position: 1367, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "41", position: 1379, }, ), ), greater_than_equals: 1382, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "42", position: 1385, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "43", position: 1397, }, ), ), less_than: 1400, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "44", position: 1402, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "45", position: 1414, }, ), ), greater_than: 1417, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "46", position: 1419, }, ), ), }, ), }, VecElementExpression { value: StringOperation( Concat { comments: CommentGroup { comments: [], }, left: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 1431, }, ), ), dot: 1435, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 1437, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Not { comments: CommentGroup { comments: [], }, bang: 1450, right: Identifier( Identifier { position: 1451, value: "Biz", }, ), }, ), }, VecElementExpression { value: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 1464, right: Identifier( Identifier { position: 1465, value: "Baz", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 1478, right: Identifier( Identifier { position: 1479, value: "Qux", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Negative { comments: CommentGroup { comments: [], }, minus: 1492, right: Identifier( Identifier { position: 1493, value: "Foo", }, ), }, ), }, ], commas: [ 992, 1005, 1023, 1038, 1053, 1068, 1083, 1099, 1117, 1135, 1153, 1170, 1187, 1204, 1222, 1240, 1258, 1277, 1296, 1315, 1333, 1351, 1369, 1387, 1404, 1421, 1440, 1454, 1468, 1482, 1496, ], }, right_bracket: 1502, }, ), }, ], commas: [], }, right_parenthesis: 1503, }, }, ), }, ], commas: [], }, right_parenthesis: 1504, }, }, ), }, ), }, ], commas: [], }, right_parenthesis: 1506, }, return_type: FunctionLikeReturnTypeDefinition { colon: 1507, type_definition: Void( Keyword { value: "void", position: 1509, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 1514, statements: [], right_brace: 1517, }, }, ), Class( ClassDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 1520, modifiers: [], }, class: Keyword { value: "class", position: 1520, }, name: Identifier { position: 1526, value: "Bar", }, templates: None, extends: None, implements: None, body: ClassDefinitionBody { left_brace: 1530, members: [ Constant( ClassishConstantDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 1544, modifiers: [ Private( Keyword { value: "private", position: 1536, }, ), ], }, const: Keyword { value: "const", position: 1544, }, type_definition: Vec( Keyword { value: "vec", position: 1550, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 1553, members: CommaSeparated { inner: [ Mixed( Keyword { value: "mixed", position: 1554, }, ), ], commas: [], }, greater_than: 1559, }, ), name: Identifier { position: 1561, value: "FOO", }, equals: 1565, value: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 1567, }, left_bracket: 1570, elements: CommaSeparated { inner: [ VecElementExpression { value: Identifier( Identifier { position: 1580, value: "Qux", }, ), }, VecElementExpression { value: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 1593, value: "Foo", }, ), double_colon: 1596, constant: Identifier { position: 1598, value: "Bar", }, }, ), }, VecElementExpression { value: ArithmeticOperation( Addition { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 1611, }, ), ), plus: 1613, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 1615, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Subtraction { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 1626, }, ), ), minus: 1628, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 1630, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Multiplication { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 1641, }, ), ), asterisk: 1643, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "6", position: 1645, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Division { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "7", position: 1656, }, ), ), slash: 1658, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "8", position: 1660, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Modulo { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "9", position: 1671, }, ), ), percent: 1673, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 1675, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "11", position: 1687, }, ), ), pow: 1690, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "12", position: 1693, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( LeftShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "13", position: 1705, }, ), ), left_shift: 1708, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "14", position: 1711, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( RightShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "15", position: 1723, }, ), ), right_shift: 1726, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "16", position: 1729, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "17", position: 1741, }, ), ), and: 1744, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "18", position: 1746, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "19", position: 1758, }, ), ), or: 1761, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "20", position: 1763, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Xor { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "21", position: 1775, }, ), ), xor: 1778, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "22", position: 1780, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "23", position: 1792, }, ), ), double_ampersand: 1795, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "24", position: 1798, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "25", position: 1810, }, ), ), double_pipe: 1813, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "26", position: 1816, }, ), ), }, ), }, VecElementExpression { value: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "27", position: 1828, }, ), ), double_question: 1831, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "28", position: 1834, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Spaceship { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "29", position: 1846, }, ), ), spaceship: 1849, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "30", position: 1853, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Identical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "31", position: 1865, }, ), ), triple_equals: 1868, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "32", position: 1872, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotIdentical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "33", position: 1884, }, ), ), bang_double_equals: 1887, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "34", position: 1891, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "35", position: 1903, }, ), ), double_equals: 1906, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "36", position: 1909, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "37", position: 1921, }, ), ), bang_equals: 1924, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "38", position: 1927, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "39", position: 1939, }, ), ), less_than_equals: 1942, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "40", position: 1945, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "41", position: 1957, }, ), ), greater_than_equals: 1960, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "42", position: 1963, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "43", position: 1975, }, ), ), less_than: 1978, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "44", position: 1980, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "45", position: 1992, }, ), ), greater_than: 1995, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "46", position: 1997, }, ), ), }, ), }, VecElementExpression { value: StringOperation( Concat { comments: CommentGroup { comments: [], }, left: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 2009, }, ), ), dot: 2013, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 2015, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Not { comments: CommentGroup { comments: [], }, bang: 2028, right: Identifier( Identifier { position: 2029, value: "Biz", }, ), }, ), }, VecElementExpression { value: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 2042, right: Identifier( Identifier { position: 2043, value: "Baz", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 2056, right: Identifier( Identifier { position: 2057, value: "Qux", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Negative { comments: CommentGroup { comments: [], }, minus: 2070, right: Identifier( Identifier { position: 2071, value: "Foo", }, ), }, ), }, VecElementExpression { value: Tuple( TupleExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 2084, elements: CommaSeparated { inner: [ Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 2085, }, ), ), Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 2088, }, ), ), Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 2091, }, ), ), ], commas: [ 2086, 2089, ], }, right_parenthesis: 2092, }, ), }, VecElementExpression { value: Dict( DictExpression { comments: CommentGroup { comments: [], }, dict: Keyword { value: "dict", position: 2103, }, left_bracket: 2107, elements: CommaSeparated { inner: [ DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 2121, }, ), ), double_arrow: 2123, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 2126, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 2143, }, ), ), double_arrow: 2145, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 2148, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 2165, }, ), ), double_arrow: 2167, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""c"", position: 2170, }, ), ), }, ], commas: [ 2129, 2151, 2173, ], }, right_bracket: 2183, }, ), }, ], commas: [ 1583, 1601, 1616, 1631, 1646, 1661, 1677, 1695, 1713, 1731, 1748, 1765, 1782, 1800, 1818, 1836, 1855, 1874, 1893, 1911, 1929, 1947, 1965, 1982, 1999, 2018, 2032, 2046, 2060, 2074, 2093, 2184, ], }, right_bracket: 2190, }, ), semicolon: 2191, }, ), Property( PropertyDefinition { attributes: [], modifiers: ModifierGroupDefinition { position: 2210, modifiers: [ Private( Keyword { value: "private", position: 2202, }, ), ], }, type_definition: Vec( Keyword { value: "vec", position: 2210, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 2213, members: CommaSeparated { inner: [ Mixed( Keyword { value: "mixed", position: 2214, }, ), ], commas: [], }, greater_than: 2219, }, ), entry: Initialized { variable: Variable { position: 2221, name: "$bar", }, equals: 2226, value: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 2228, }, left_bracket: 2231, elements: CommaSeparated { inner: [ VecElementExpression { value: Identifier( Identifier { position: 2241, value: "Qux", }, ), }, VecElementExpression { value: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 2254, value: "Foo", }, ), double_colon: 2257, constant: Identifier { position: 2259, value: "Bar", }, }, ), }, VecElementExpression { value: ArithmeticOperation( Addition { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 2272, }, ), ), plus: 2274, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 2276, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Subtraction { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 2287, }, ), ), minus: 2289, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 2291, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Multiplication { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 2302, }, ), ), asterisk: 2304, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "6", position: 2306, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Division { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "7", position: 2317, }, ), ), slash: 2319, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "8", position: 2321, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Modulo { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "9", position: 2332, }, ), ), percent: 2334, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 2336, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "11", position: 2348, }, ), ), pow: 2351, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "12", position: 2354, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( LeftShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "13", position: 2366, }, ), ), left_shift: 2369, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "14", position: 2372, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( RightShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "15", position: 2384, }, ), ), right_shift: 2387, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "16", position: 2390, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "17", position: 2402, }, ), ), and: 2405, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "18", position: 2407, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "19", position: 2419, }, ), ), or: 2422, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "20", position: 2424, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Xor { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "21", position: 2436, }, ), ), xor: 2439, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "22", position: 2441, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "23", position: 2453, }, ), ), double_ampersand: 2456, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "24", position: 2459, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "25", position: 2471, }, ), ), double_pipe: 2474, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "26", position: 2477, }, ), ), }, ), }, VecElementExpression { value: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "27", position: 2489, }, ), ), double_question: 2492, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "28", position: 2495, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Spaceship { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "29", position: 2507, }, ), ), spaceship: 2510, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "30", position: 2514, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Identical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "31", position: 2526, }, ), ), triple_equals: 2529, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "32", position: 2533, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotIdentical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "33", position: 2545, }, ), ), bang_double_equals: 2548, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "34", position: 2552, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "35", position: 2564, }, ), ), double_equals: 2567, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "36", position: 2570, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "37", position: 2582, }, ), ), bang_equals: 2585, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "38", position: 2588, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "39", position: 2600, }, ), ), less_than_equals: 2603, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "40", position: 2606, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "41", position: 2618, }, ), ), greater_than_equals: 2621, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "42", position: 2624, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "43", position: 2636, }, ), ), less_than: 2639, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "44", position: 2641, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "45", position: 2653, }, ), ), greater_than: 2656, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "46", position: 2658, }, ), ), }, ), }, VecElementExpression { value: StringOperation( Concat { comments: CommentGroup { comments: [], }, left: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 2670, }, ), ), dot: 2674, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 2676, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Not { comments: CommentGroup { comments: [], }, bang: 2689, right: Identifier( Identifier { position: 2690, value: "Biz", }, ), }, ), }, VecElementExpression { value: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 2703, right: Identifier( Identifier { position: 2704, value: "Baz", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 2717, right: Identifier( Identifier { position: 2718, value: "Qux", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Negative { comments: CommentGroup { comments: [], }, minus: 2731, right: Identifier( Identifier { position: 2732, value: "Foo", }, ), }, ), }, VecElementExpression { value: Tuple( TupleExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 2745, elements: CommaSeparated { inner: [ Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 2746, }, ), ), Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 2749, }, ), ), Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 2752, }, ), ), ], commas: [ 2747, 2750, ], }, right_parenthesis: 2753, }, ), }, VecElementExpression { value: Dict( DictExpression { comments: CommentGroup { comments: [], }, dict: Keyword { value: "dict", position: 2764, }, left_bracket: 2768, elements: CommaSeparated { inner: [ DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 2782, }, ), ), double_arrow: 2784, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 2787, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 2804, }, ), ), double_arrow: 2806, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 2809, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 2826, }, ), ), double_arrow: 2828, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""c"", position: 2831, }, ), ), }, ], commas: [ 2790, 2812, 2834, ], }, right_bracket: 2844, }, ), }, ], commas: [ 2244, 2262, 2277, 2292, 2307, 2322, 2338, 2356, 2374, 2392, 2409, 2426, 2443, 2461, 2479, 2497, 2516, 2535, 2554, 2572, 2590, 2608, 2626, 2643, 2660, 2679, 2693, 2707, 2721, 2735, 2754, 2845, ], }, right_bracket: 2851, }, ), }, semicolon: 2852, }, ), Method( MethodDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 2866, modifiers: [ Public( Keyword { value: "public", position: 2859, }, ), ], }, function: Keyword { value: "function", position: 2866, }, name: Identifier { position: 2875, value: "__construct", }, templates: None, parameters: MethodParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 2886, parameters: CommaSeparated { inner: [ MethodParameterDefinition { attributes: [], comments: CommentGroup { comments: [], }, modifiers: ModifierGroupDefinition { position: 2896, modifiers: [], }, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 2896, value: "Foo", }, templates: None, }, ), ellipsis: None, variable: Variable { position: 2900, name: "$foo", }, default: Some( FunctionLikeParameterDefaultValueDefinition { equals: 2905, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 2907, }, class: Identifier( Identifier { position: 2911, value: "Foo", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 2914, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 2915, }, class: Identifier( Identifier { position: 2919, value: "Bar", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 2922, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 2923, }, left_bracket: 2926, elements: CommaSeparated { inner: [ VecElementExpression { value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 2940, }, class: Identifier( Identifier { position: 2944, value: "Baz", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 2947, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 2948, }, }, ), }, VecElementExpression { value: Identifier( Identifier { position: 2963, value: "Qux", }, ), }, VecElementExpression { value: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 2980, value: "Foo", }, ), double_colon: 2983, constant: Identifier { position: 2985, value: "Bar", }, }, ), }, VecElementExpression { value: ArithmeticOperation( Addition { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 3002, }, ), ), plus: 3004, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 3006, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Subtraction { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 3021, }, ), ), minus: 3023, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 3025, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Multiplication { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 3040, }, ), ), asterisk: 3042, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "6", position: 3044, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Division { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "7", position: 3059, }, ), ), slash: 3061, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "8", position: 3063, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Modulo { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "9", position: 3078, }, ), ), percent: 3080, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 3082, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "11", position: 3098, }, ), ), pow: 3101, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "12", position: 3104, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( LeftShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "13", position: 3120, }, ), ), left_shift: 3123, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "14", position: 3126, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( RightShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "15", position: 3142, }, ), ), right_shift: 3145, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "16", position: 3148, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "17", position: 3164, }, ), ), and: 3167, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "18", position: 3169, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "19", position: 3185, }, ), ), or: 3188, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "20", position: 3190, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Xor { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "21", position: 3206, }, ), ), xor: 3209, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "22", position: 3211, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "23", position: 3227, }, ), ), double_ampersand: 3230, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "24", position: 3233, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "25", position: 3249, }, ), ), double_pipe: 3252, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "26", position: 3255, }, ), ), }, ), }, VecElementExpression { value: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "27", position: 3271, }, ), ), double_question: 3274, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "28", position: 3277, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Spaceship { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "29", position: 3293, }, ), ), spaceship: 3296, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "30", position: 3300, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Identical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "31", position: 3316, }, ), ), triple_equals: 3319, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "32", position: 3323, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotIdentical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "33", position: 3339, }, ), ), bang_double_equals: 3342, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "34", position: 3346, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "35", position: 3362, }, ), ), double_equals: 3365, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "36", position: 3368, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "37", position: 3384, }, ), ), bang_equals: 3387, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "38", position: 3390, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "39", position: 3406, }, ), ), less_than_equals: 3409, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "40", position: 3412, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "41", position: 3428, }, ), ), greater_than_equals: 3431, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "42", position: 3434, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "43", position: 3450, }, ), ), less_than: 3453, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "44", position: 3455, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "45", position: 3471, }, ), ), greater_than: 3474, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "46", position: 3476, }, ), ), }, ), }, VecElementExpression { value: StringOperation( Concat { comments: CommentGroup { comments: [], }, left: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 3492, }, ), ), dot: 3496, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 3498, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Not { comments: CommentGroup { comments: [], }, bang: 3515, right: Identifier( Identifier { position: 3516, value: "Biz", }, ), }, ), }, VecElementExpression { value: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 3533, right: Identifier( Identifier { position: 3534, value: "Baz", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 3551, right: Identifier( Identifier { position: 3552, value: "Qux", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Negative { comments: CommentGroup { comments: [], }, minus: 3569, right: Identifier( Identifier { position: 3570, value: "Foo", }, ), }, ), }, ], commas: [ 2949, 2966, 2988, 3007, 3026, 3045, 3064, 3084, 3106, 3128, 3150, 3171, 3192, 3213, 3235, 3257, 3279, 3302, 3325, 3348, 3370, 3392, 3414, 3436, 3457, 3478, 3501, 3519, 3537, 3555, 3573, ], }, right_bracket: 3583, }, ), }, ], commas: [], }, right_parenthesis: 3584, }, }, ), }, ], commas: [], }, right_parenthesis: 3585, }, }, ), }, ), }, MethodParameterDefinition { attributes: [], comments: CommentGroup { comments: [], }, modifiers: ModifierGroupDefinition { position: 3596, modifiers: [], }, type_definition: Dict( Keyword { value: "dict", position: 3596, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 3600, members: CommaSeparated { inner: [ SignedInteger( Default( Keyword { value: "int", position: 3601, }, ), ), String( Keyword { value: "string", position: 3606, }, ), ], commas: [ 3604, ], }, greater_than: 3612, }, ), ellipsis: None, variable: Variable { position: 3614, name: "$bar", }, default: Some( FunctionLikeParameterDefaultValueDefinition { equals: 3619, value: Dict( DictExpression { comments: CommentGroup { comments: [], }, dict: Keyword { value: "dict", position: 3621, }, left_bracket: 3625, elements: CommaSeparated { inner: [ DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 3639, }, ), ), double_arrow: 3641, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 3644, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 3661, }, ), ), double_arrow: 3663, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 3666, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 3683, }, ), ), double_arrow: 3685, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""c"", position: 3688, }, ), ), }, ], commas: [ 3647, 3669, 3691, ], }, right_bracket: 3701, }, ), }, ), }, ], commas: [ 3586, 3702, ], }, right_parenthesis: 3708, }, return_type: None, constraints: None, body: Concrete( BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 3710, statements: [], right_brace: 3711, }, ), }, ), Method( MethodDefinition { comments: CommentGroup { comments: [], }, attributes: [], modifiers: ModifierGroupDefinition { position: 3725, modifiers: [ Public( Keyword { value: "public", position: 3718, }, ), ], }, function: Keyword { value: "function", position: 3725, }, name: Identifier { position: 3734, value: "foo", }, templates: None, parameters: MethodParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 3737, parameters: CommaSeparated { inner: [ MethodParameterDefinition { attributes: [], comments: CommentGroup { comments: [], }, modifiers: ModifierGroupDefinition { position: 3747, modifiers: [], }, type_definition: Identifier( TemplatedIdentifier { name: Identifier { position: 3747, value: "Foo", }, templates: None, }, ), ellipsis: None, variable: Variable { position: 3751, name: "$foo", }, default: Some( FunctionLikeParameterDefaultValueDefinition { equals: 3756, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 3758, }, class: Identifier( Identifier { position: 3762, value: "Foo", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 3765, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 3766, }, class: Identifier( Identifier { position: 3770, value: "Bar", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 3773, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 3774, }, left_bracket: 3777, elements: CommaSeparated { inner: [ VecElementExpression { value: ClassOperation( Initialization { comments: CommentGroup { comments: [], }, new: Keyword { value: "new", position: 3791, }, class: Identifier( Identifier { position: 3795, value: "Baz", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 3798, arguments: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 3799, }, }, ), }, VecElementExpression { value: Identifier( Identifier { position: 3814, value: "Qux", }, ), }, VecElementExpression { value: ClassOperation( ConstantFetch { comments: CommentGroup { comments: [], }, class: Identifier( Identifier { position: 3831, value: "Foo", }, ), double_colon: 3834, constant: Identifier { position: 3836, value: "Bar", }, }, ), }, VecElementExpression { value: ArithmeticOperation( Addition { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 3853, }, ), ), plus: 3855, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 3857, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Subtraction { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 3872, }, ), ), minus: 3874, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "4", position: 3876, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Multiplication { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "5", position: 3891, }, ), ), asterisk: 3893, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "6", position: 3895, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Division { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "7", position: 3910, }, ), ), slash: 3912, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "8", position: 3914, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Modulo { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "9", position: 3929, }, ), ), percent: 3931, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 3933, }, ), ), }, ), }, VecElementExpression { value: ArithmeticOperation( Exponentiation { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "11", position: 3949, }, ), ), pow: 3952, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "12", position: 3955, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( LeftShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "13", position: 3971, }, ), ), left_shift: 3974, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "14", position: 3977, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( RightShift { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "15", position: 3993, }, ), ), right_shift: 3996, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "16", position: 3999, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "17", position: 4015, }, ), ), and: 4018, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "18", position: 4020, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "19", position: 4036, }, ), ), or: 4039, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "20", position: 4041, }, ), ), }, ), }, VecElementExpression { value: BitwiseOperation( Xor { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "21", position: 4057, }, ), ), xor: 4060, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "22", position: 4062, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( And { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "23", position: 4078, }, ), ), double_ampersand: 4081, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "24", position: 4084, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Or { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "25", position: 4100, }, ), ), double_pipe: 4103, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "26", position: 4106, }, ), ), }, ), }, VecElementExpression { value: CoalesceOperation( Coalesce { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "27", position: 4122, }, ), ), double_question: 4125, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "28", position: 4128, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Spaceship { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "29", position: 4144, }, ), ), spaceship: 4147, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "30", position: 4151, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Identical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "31", position: 4167, }, ), ), triple_equals: 4170, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "32", position: 4174, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotIdentical { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "33", position: 4190, }, ), ), bang_double_equals: 4193, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "34", position: 4197, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( Equal { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "35", position: 4213, }, ), ), double_equals: 4216, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "36", position: 4219, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( NotEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "37", position: 4235, }, ), ), bang_equals: 4238, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "38", position: 4241, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "39", position: 4257, }, ), ), less_than_equals: 4260, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "40", position: 4263, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThanOrEqual { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "41", position: 4279, }, ), ), greater_than_equals: 4282, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "42", position: 4285, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( LessThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "43", position: 4301, }, ), ), less_than: 4304, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "44", position: 4306, }, ), ), }, ), }, VecElementExpression { value: ComparisonOperation( GreaterThan { comments: CommentGroup { comments: [], }, left: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "45", position: 4322, }, ), ), greater_than: 4325, right: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "46", position: 4327, }, ), ), }, ), }, VecElementExpression { value: StringOperation( Concat { comments: CommentGroup { comments: [], }, left: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 4343, }, ), ), dot: 4347, right: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 4349, }, ), ), }, ), }, VecElementExpression { value: LogicalOperation( Not { comments: CommentGroup { comments: [], }, bang: 4366, right: Identifier( Identifier { position: 4367, value: "Biz", }, ), }, ), }, VecElementExpression { value: BitwiseOperation( Not { comments: CommentGroup { comments: [], }, not: 4384, right: Identifier( Identifier { position: 4385, value: "Baz", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Positive { comments: CommentGroup { comments: [], }, plus: 4402, right: Identifier( Identifier { position: 4403, value: "Qux", }, ), }, ), }, VecElementExpression { value: ArithmeticOperation( Negative { comments: CommentGroup { comments: [], }, minus: 4420, right: Identifier( Identifier { position: 4421, value: "Foo", }, ), }, ), }, ], commas: [ 3800, 3817, 3839, 3858, 3877, 3896, 3915, 3935, 3957, 3979, 4001, 4022, 4043, 4064, 4086, 4108, 4130, 4153, 4176, 4199, 4221, 4243, 4265, 4287, 4308, 4329, 4352, 4370, 4388, 4406, 4424, ], }, right_bracket: 4434, }, ), }, ], commas: [], }, right_parenthesis: 4435, }, }, ), }, ], commas: [], }, right_parenthesis: 4436, }, }, ), }, ), }, MethodParameterDefinition { attributes: [], comments: CommentGroup { comments: [], }, modifiers: ModifierGroupDefinition { position: 4447, modifiers: [], }, type_definition: Dict( Keyword { value: "dict", position: 4447, }, TypeTemplateGroupDefinition { comments: CommentGroup { comments: [], }, less_than: 4451, members: CommaSeparated { inner: [ SignedInteger( Default( Keyword { value: "int", position: 4452, }, ), ), String( Keyword { value: "string", position: 4457, }, ), ], commas: [ 4455, ], }, greater_than: 4463, }, ), ellipsis: None, variable: Variable { position: 4465, name: "$bar", }, default: Some( FunctionLikeParameterDefaultValueDefinition { equals: 4470, value: Dict( DictExpression { comments: CommentGroup { comments: [], }, dict: Keyword { value: "dict", position: 4472, }, left_bracket: 4476, elements: CommaSeparated { inner: [ DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 4490, }, ), ), double_arrow: 4492, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""a"", position: 4495, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "2", position: 4512, }, ), ), double_arrow: 4514, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""b"", position: 4517, }, ), ), }, DictElementExpression { key: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "3", position: 4534, }, ), ), double_arrow: 4536, value: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: ""c"", position: 4539, }, ), ), }, ], commas: [ 4498, 4520, 4542, ], }, right_bracket: 4552, }, ), }, ), }, ], commas: [ 4437, 4553, ], }, right_parenthesis: 4559, }, return_type: Some( FunctionLikeReturnTypeDefinition { colon: 4560, type_definition: Void( Keyword { value: "void", position: 4562, }, ), }, ), constraints: None, body: Concrete( BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 4567, statements: [], right_brace: 4568, }, ), }, ), ], right_brace: 4570, }, }, ), ], eof: 4572, }