DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 0, }, name: Identifier { position: 9, value: "example", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 16, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 17, }, return_type: FunctionLikeReturnTypeDefinition { colon: 18, type_definition: Void( Keyword { value: "void", position: 20, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 25, statements: [ Using( UsingStatement { comments: CommentGroup { comments: [], }, using: Keyword { value: "using", position: 31, }, assignments: CommaSeparated { inner: [ UsingAssignmentStatement { comments: CommentGroup { comments: [], }, variable: Variable { position: 37, name: "$foo", }, equals: 42, expression: RangeOperation( From { comments: CommentGroup { comments: [], }, from: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 44, }, ), ), double_dot: 45, }, ), }, ], commas: [], }, if_clause: Some( UsingIfClauseStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 48, }, condition: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 51, name: "$foo", }, ), arrow: 55, method: Identifier { position: 57, value: "contains", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 65, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 66, name: "$y", }, ), }, ], commas: [], }, right_parenthesis: 68, }, }, ), }, ), block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 70, statements: [], right_brace: 77, }, }, ), Using( UsingStatement { comments: CommentGroup { comments: [], }, using: Keyword { value: "using", position: 84, }, assignments: CommaSeparated { inner: [ UsingAssignmentStatement { comments: CommentGroup { comments: [], }, variable: Variable { position: 90, name: "$foo", }, equals: 95, expression: RangeOperation( Between { comments: CommentGroup { comments: [], }, from: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 97, }, ), ), double_dot: 98, to: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 100, }, ), ), }, ), }, ], commas: [], }, if_clause: Some( UsingIfClauseStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 103, }, condition: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 106, name: "$foo", }, ), arrow: 110, method: Identifier { position: 112, value: "contains", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 120, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 121, name: "$y", }, ), }, ], commas: [], }, right_parenthesis: 123, }, }, ), }, ), block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 125, statements: [], right_brace: 132, }, }, ), Using( UsingStatement { comments: CommentGroup { comments: [], }, using: Keyword { value: "using", position: 139, }, assignments: CommaSeparated { inner: [ UsingAssignmentStatement { comments: CommentGroup { comments: [], }, variable: Variable { position: 145, name: "$foo", }, equals: 150, expression: RangeOperation( BetweenInclusive { comments: CommentGroup { comments: [], }, from: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "1", position: 152, }, ), ), double_dot: 153, equals: 155, to: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 156, }, ), ), }, ), }, ], commas: [], }, if_clause: Some( UsingIfClauseStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 159, }, condition: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 162, name: "$foo", }, ), arrow: 166, method: Identifier { position: 168, value: "contains", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 176, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 177, name: "$y", }, ), }, ], commas: [], }, right_parenthesis: 179, }, }, ), }, ), block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 181, statements: [], right_brace: 188, }, }, ), Using( UsingStatement { comments: CommentGroup { comments: [ Comment { position: 195, format: SingleLine, content: "// this is a compile error, because the range does not have a start", }, ], }, using: Keyword { value: "using", position: 267, }, assignments: CommaSeparated { inner: [ UsingAssignmentStatement { comments: CommentGroup { comments: [], }, variable: Variable { position: 273, name: "$foo", }, equals: 278, expression: RangeOperation( To { comments: CommentGroup { comments: [], }, double_dot: 280, to: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 282, }, ), ), }, ), }, ], commas: [], }, if_clause: Some( UsingIfClauseStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 285, }, condition: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 288, name: "$foo", }, ), arrow: 292, method: Identifier { position: 294, value: "contains", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 302, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 303, name: "$y", }, ), }, ], commas: [], }, right_parenthesis: 305, }, }, ), }, ), block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 307, statements: [], right_brace: 314, }, }, ), Using( UsingStatement { comments: CommentGroup { comments: [ Comment { position: 321, format: SingleLine, content: "// this is a compile error, because the range does not have a start", }, ], }, using: Keyword { value: "using", position: 393, }, assignments: CommaSeparated { inner: [ UsingAssignmentStatement { comments: CommentGroup { comments: [], }, variable: Variable { position: 399, name: "$foo", }, equals: 404, expression: RangeOperation( ToInclusive { comments: CommentGroup { comments: [], }, double_dot: 406, equals: 408, to: Literal( Integer( LiteralInteger { comments: CommentGroup { comments: [], }, value: "10", position: 409, }, ), ), }, ), }, ], commas: [], }, if_clause: Some( UsingIfClauseStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 412, }, condition: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 415, name: "$foo", }, ), arrow: 419, method: Identifier { position: 421, value: "contains", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 429, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 430, name: "$y", }, ), }, ], commas: [], }, right_parenthesis: 432, }, }, ), }, ), block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 434, statements: [], right_brace: 441, }, }, ), Using( UsingStatement { comments: CommentGroup { comments: [ Comment { position: 448, format: SingleLine, content: "// this is a compile error, because the range does not have a start", }, ], }, using: Keyword { value: "using", position: 520, }, assignments: CommaSeparated { inner: [ UsingAssignmentStatement { comments: CommentGroup { comments: [], }, variable: Variable { position: 526, name: "$foo", }, equals: 531, expression: RangeOperation( Full { comments: CommentGroup { comments: [], }, double_dot: 533, }, ), }, ], commas: [], }, if_clause: Some( UsingIfClauseStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 536, }, condition: ObjectOperation( MethodCall { comments: CommentGroup { comments: [], }, object: Variable( Variable { position: 539, name: "$foo", }, ), arrow: 543, method: Identifier { position: 545, value: "contains", }, generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 553, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 554, name: "$y", }, ), }, ], commas: [], }, right_parenthesis: 556, }, }, ), }, ), block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 558, statements: [], right_brace: 565, }, }, ), ], right_brace: 567, }, }, ), ], eof: 569, }