comparison src/ov-usr-fcn.h @ 5848:415ae81d331b

[project @ 2006-06-08 20:37:29 by jwe]
author jwe
date Thu, 08 Jun 2006 20:37:29 +0000
parents 1c36a2e82266
children 3a68a2dc6eb1
comparison
equal deleted inserted replaced
5847:62e7b9307d00 5848:415ae81d331b
134 134
135 bool is_user_function (void) const { return true; } 135 bool is_user_function (void) const { return true; }
136 136
137 bool takes_varargs (void) const; 137 bool takes_varargs (void) const;
138 138
139 void octave_va_start (void) { curr_va_arg_number = num_named_args; } 139 bool takes_var_return (void) const;
140
141 octave_value octave_va_arg (void);
142 140
143 octave_value_list octave_all_va_args (void); 141 octave_value_list octave_all_va_args (void);
144
145 bool takes_var_return (void) const;
146
147 void octave_vr_val (const octave_value& val);
148
149 void varargout_to_vr_val (void);
150
151 bool has_varargout (void) const;
152 142
153 void stash_function_name (const std::string& s) { my_name = s; } 143 void stash_function_name (const std::string& s) { my_name = s; }
154 144
155 void mark_as_nested_function (void) { nested_function = true; } 145 void mark_as_nested_function (void) { nested_function = true; }
156 146
257 std::stack<octave_value_list> saved_args; 247 std::stack<octave_value_list> saved_args;
258 248
259 // The number of arguments passed in. 249 // The number of arguments passed in.
260 int num_args_passed; 250 int num_args_passed;
261 251
262 // Used to keep track of the current offset into the list of va_args.
263 int curr_va_arg_number;
264
265 // The list of return values when an unspecified number can be
266 // returned.
267 tree_va_return_list *vr_list;
268
269 // The symbol record for this function. 252 // The symbol record for this function.
270 symbol_record *symtab_entry; 253 symbol_record *symtab_entry;
271 254
272 // The symbol record for argn in the local symbol table. 255 // The symbol record for argn in the local symbol table.
273 symbol_record *argn_sr; 256 symbol_record *argn_sr;
287 270
288 void install_automatic_vars (void); 271 void install_automatic_vars (void);
289 272
290 void bind_automatic_vars (const string_vector& arg_names, int nargin, 273 void bind_automatic_vars (const string_vector& arg_names, int nargin,
291 int nargout, const octave_value_list& va_args); 274 int nargout, const octave_value_list& va_args);
292
293 275
294 // No copying! 276 // No copying!
295 277
296 octave_user_function (const octave_user_function& fn); 278 octave_user_function (const octave_user_function& fn);
297 279