DefinitionTree { definitions: [ Function( FunctionDefinition { comments: CommentGroup { comments: [], }, attributes: [], function: Keyword { value: "function", position: 0, }, name: Identifier { position: 9, value: "foo", }, templates: None, parameters: FunctionLikeParameterListDefinition { comments: CommentGroup { comments: [], }, left_parenthesis: 12, parameters: CommaSeparated { inner: [], commas: [], }, right_parenthesis: 13, }, return_type: FunctionLikeReturnTypeDefinition { colon: 14, type_definition: Void( Keyword { value: "void", position: 16, }, ), }, body: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 21, statements: [ If( IfStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 27, }, conditions: CommaSeparated { inner: [ ArrayOperation( In { comments: CommentGroup { comments: [], }, item: Variable( Variable { position: 30, name: "$a", }, ), in: Keyword { value: "in", position: 33, }, array: Variable( Variable { position: 36, name: "$b", }, ), }, ), ], commas: [], }, block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 39, statements: [], right_brace: 46, }, elseifs: [], else: None, }, ), If( IfStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 53, }, conditions: CommaSeparated { inner: [ ArrayOperation( In { comments: CommentGroup { comments: [], }, item: Variable( Variable { position: 56, name: "$a", }, ), in: Keyword { value: "in", position: 59, }, array: Tuple( TupleExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 62, elements: CommaSeparated { inner: [ Variable( Variable { position: 63, name: "$b", }, ), Variable( Variable { position: 67, name: "$c", }, ), ], commas: [ 65, ], }, right_parenthesis: 69, }, ), }, ), ], commas: [], }, block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 71, statements: [], right_brace: 78, }, elseifs: [], else: None, }, ), If( IfStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 85, }, conditions: CommaSeparated { inner: [ ArrayOperation( In { comments: CommentGroup { comments: [], }, item: Variable( Variable { position: 88, name: "$a", }, ), in: Keyword { value: "in", position: 91, }, array: Vec( VecExpression { comments: CommentGroup { comments: [], }, vec: Keyword { value: "vec", position: 94, }, left_bracket: 97, elements: CommaSeparated { inner: [ VecElementExpression { value: Variable( Variable { position: 98, name: "$b", }, ), }, VecElementExpression { value: Variable( Variable { position: 102, name: "$b", }, ), }, ], commas: [ 100, ], }, right_bracket: 104, }, ), }, ), ], commas: [], }, block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 106, statements: [], right_brace: 113, }, elseifs: [], else: None, }, ), If( IfStatement { comments: CommentGroup { comments: [], }, if: Keyword { value: "if", position: 120, }, conditions: CommaSeparated { inner: [ ArrayOperation( In { comments: CommentGroup { comments: [], }, item: Variable( Variable { position: 123, name: "$a", }, ), in: Keyword { value: "in", position: 126, }, array: Dict( DictExpression { comments: CommentGroup { comments: [], }, dict: Keyword { value: "dict", position: 129, }, left_bracket: 133, elements: CommaSeparated { inner: [ DictElementExpression { key: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'a'", position: 134, }, ), ), double_arrow: 138, value: Variable( Variable { position: 141, name: "$b", }, ), }, DictElementExpression { key: Literal( String( LiteralString { comments: CommentGroup { comments: [], }, value: "'b'", position: 145, }, ), ), double_arrow: 149, value: Variable( Variable { position: 152, name: "$c", }, ), }, ], commas: [ 143, ], }, right_bracket: 154, }, ), }, ), ], commas: [], }, block: BlockStatement { comments: CommentGroup { comments: [], }, left_brace: 156, statements: [], right_brace: 163, }, elseifs: [], else: None, }, ), ], right_brace: 165, }, }, ), ], eof: 167, }