Mercurial > hg > octave-lyh
diff src/pt-exp-base.cc @ 712:36ba0576bd1b
[project @ 1994-09-19 14:18:15 by jwe]
author | jwe |
---|---|
date | Mon, 19 Sep 1994 14:18:48 +0000 |
parents | 250fc1c93fe2 |
children | 1c072f20b522 |
line wrap: on
line diff
--- a/src/pt-exp-base.cc +++ b/src/pt-exp-base.cc @@ -110,11 +110,10 @@ { int nargin = args.length (); - while (--nargin > 0) - { - if (args(nargin).is_undefined ()) - return 0; - } + for (int i = 0; i < nargin; i++) + if (args(i).is_undefined ()) + return 0; + return 1; } @@ -125,11 +124,10 @@ { int nargin = args.length (); - while (--nargin > 0) - { - if (args(nargin).is_magic_colon ()) + for (int i = 0; i < nargin; i++) + if (args(i).is_magic_colon ()) return 1; - } + return 0; } @@ -759,12 +757,12 @@ { script_file_executed = lookup (sym); - tree_fvc *ans = 0; + tree_fvc *retval = 0; if (! script_file_executed) - ans = sym->def (); - - return ans; + retval = sym->def (); + + return retval; } void @@ -784,18 +782,16 @@ int script_file_executed = 0; - tree_fvc *ans = do_lookup (script_file_executed); + tree_fvc *object_to_eval = do_lookup (script_file_executed); if (! script_file_executed) { - if (ans) + if (object_to_eval) { int nargout = maybe_do_ans_assign ? 0 : 1; - int nargin = (ans->is_constant ()) ? 0 : 1; Octave_object tmp_args; - tmp_args.resize (nargin); - Octave_object tmp = ans->eval (0, nargout, tmp_args); + Octave_object tmp = object_to_eval->eval (0, nargout, tmp_args); if (tmp.length () > 0) retval = tmp(0); @@ -806,7 +802,7 @@ if (! error_state && retval.is_defined ()) { - if (maybe_do_ans_assign && ! ans->is_constant ()) + if (maybe_do_ans_assign && ! object_to_eval->is_constant ()) { // XXX FIXME XXX -- need a procedure to do this, probably in @@ -872,11 +868,11 @@ int script_file_executed = 0; - tree_fvc *ans = do_lookup (script_file_executed); + tree_fvc *object_to_eval = do_lookup (script_file_executed); if (! script_file_executed) { - if (ans) + if (object_to_eval) { if (maybe_do_ans_assign && nargout == 1) { @@ -885,7 +881,7 @@ nargout = 0; - retval = ans->eval (0, nargout, args); + retval = object_to_eval->eval (0, nargout, args); if (retval.length () > 0 && retval(0).is_defined ()) { @@ -908,7 +904,7 @@ } } else - retval = ans->eval (print, nargout, args); + retval = object_to_eval->eval (print, nargout, args); } else eval_undefined_error (); @@ -950,13 +946,15 @@ if (list) { -// Extract the arguments into a simple vector. +// Extract the arguments into a simple vector. Don't pass null args. + Octave_object args = list->convert_to_const_vector (); -// Don't pass null arguments. + int nargin = args.length (); + if (error_state) eval_error (); - else if (nargin > 1 && all_args_defined (args)) + else if (nargin > 0 && all_args_defined (args)) { Octave_object tmp = id->eval (print, 1, args); @@ -987,12 +985,15 @@ if (list) { -// Extract the arguments into a simple vector. +// Extract the arguments into a simple vector. Don't pass null args. + Octave_object args = list->convert_to_const_vector (); -// Don't pass null arguments. + + int nargin = args.length (); + if (error_state) eval_error (); - else if (args.length () > 1 && all_args_defined (args)) + else if (nargin > 0 && all_args_defined (args)) { retval = id->eval (print, nargout, args); if (error_state) @@ -1199,7 +1200,7 @@ if (error_state) return tree_constant (); - tree_constant ans; + tree_constant retval; switch (etype) { @@ -1214,10 +1215,10 @@ eval_error (); else if (u.is_defined ()) { - ans = do_unary_op (u, etype); + retval = do_unary_op (u, etype); if (error_state) { - ans = tree_constant (); + retval = tree_constant (); if (error_state) eval_error (); } @@ -1229,7 +1230,7 @@ break; } - return ans; + return retval; } char * @@ -1298,7 +1299,8 @@ if (error_state) return tree_constant (); - tree_constant ans; + tree_constant retval; + switch (etype) { case tree_expression::add: @@ -1331,10 +1333,10 @@ eval_error (); else if (b.is_defined ()) { - ans = do_binary_op (a, b, etype); + retval = do_binary_op (a, b, etype); if (error_state) { - ans = tree_constant (); + retval = tree_constant (); if (error_state) eval_error (); } @@ -1397,7 +1399,7 @@ } } done: - ans = tree_constant ((double) result); + retval = tree_constant ((double) result); } break; default: @@ -1405,7 +1407,7 @@ break; } - return ans; + return retval; } char * @@ -1488,7 +1490,6 @@ { assert (etype == tree_expression::assignment); - tree_constant ans; tree_constant retval; if (error_state) @@ -1504,34 +1505,35 @@ } else if (! index) { - ans = lhs->assign (rhs_val); + retval = lhs->assign (rhs_val); if (error_state) eval_error (); } else { // Extract the arguments into a simple vector. + Octave_object args = index->convert_to_const_vector (); int nargin = args.length (); if (error_state) eval_error (); - else if (nargin > 1) + else if (nargin > 0) { - ans = lhs->assign (rhs_val, args); + retval = lhs->assign (rhs_val, args); if (error_state) eval_error (); } } } - if (! error_state && ans.is_defined ()) + if (! error_state && retval.is_defined ()) { int pad_after = 0; if (print && user_pref.print_answer_id_name) { - if (print_as_scalar (ans)) + if (print_as_scalar (retval)) { ostrstream output_buf; output_buf << lhs->name () << " = " << ends; @@ -1546,7 +1548,7 @@ } } - retval = ans.eval (print); + retval.eval (print); if (print && pad_after) { @@ -1950,7 +1952,6 @@ eval_fcn: Octave_object args; - args(0) = tree_constant (my_name); Octave_object tmp = (*fcn) (args, 1); if (tmp.length () > 0) retval = tmp(0); @@ -1991,10 +1992,9 @@ { if (nargin > nargin_max) ::error ("%s: too many arguments", my_name); - else if (nargin > 0 && args.length () > 0 && args(1).is_defined ()) + else if (nargin > 0 && args(0).is_defined ()) { - tree_constant tmp = args(1).mapper (mapper_fcn, 0); - retval.resize (1); + tree_constant tmp = args(0).mapper (mapper_fcn, 0); retval(0) = tmp; } } @@ -2228,14 +2228,9 @@ // Copy return values out. if (ret_list) - { - retval = ret_list->convert_to_const_vector (); - } + retval = ret_list->convert_to_const_vector (); else if (user_pref.return_last_computed_value) - { - retval.resize (1); - retval(0) = last_computed_value; - } + retval(0) = last_computed_value; } abort: @@ -2337,7 +2332,7 @@ print_code_new_line (os); } -DEFUN ("va_arg", Fva_arg, Sva_arg, 1, 1, +DEFUN ("va_arg", Fva_arg, Sva_arg, 0, 1, "va_arg (): return next argument in a function that takes a\n\ variable number of parameters") { @@ -2345,7 +2340,7 @@ int nargin = args.length (); - if (nargin == 1) + if (nargin == 0) { if (curr_function) { @@ -2366,7 +2361,7 @@ return retval; } -DEFUN ("va_start", Fva_start, Sva_start, 1, 0, +DEFUN ("va_start", Fva_start, Sva_start, 0, 0, "va_start (): reset the pointer to the list of optional arguments\n\ to the beginning") { @@ -2374,7 +2369,7 @@ int nargin = args.length (); - if (nargin == 1) + if (nargin == 0) { if (curr_function) {