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: [ Expression( ExpressionStatement { comments: CommentGroup { comments: [], }, expression: FunctionOperation( Call { comments: CommentGroup { comments: [], }, function: Identifier( Identifier { position: 31, value: "foo", }, ), generics: None, arguments: ArgumentListExpression { comments: CommentGroup { comments: [], }, left_parenthesis: 34, arguments: CommaSeparated { inner: [ Value { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 44, name: "$a", }, ), }, Spread { comments: CommentGroup { comments: [], }, ellipsis: 56, value: Variable( Variable { position: 59, name: "$b", }, ), }, ReverseSpread { comments: CommentGroup { comments: [], }, value: Variable( Variable { position: 71, name: "$c", }, ), ellipsis: 73, }, Named { comments: CommentGroup { comments: [], }, name: Identifier { position: 86, value: "d", }, colon: 87, value: Variable( Variable { position: 89, name: "$d", }, ), }, ], commas: [ 46, 61, 76, 91, ], }, right_parenthesis: 97, }, }, ), semicolon: 98, }, ), ], right_brace: 100, }, }, ), ], eof: 102, }