comparison src/parse.y @ 3156:a494f93e60ff

[project @ 1998-02-20 07:47:48 by jwe]
author jwe
date Fri, 20 Feb 1998 07:47:52 +0000
parents fe2d1ae8926b
children 7c96e85c76db
comparison
equal deleted inserted replaced
3155:1016520a9d38 3156:a494f93e60ff
28 #define YYDEBUG 1 28 #define YYDEBUG 1
29 29
30 #ifdef HAVE_CONFIG_H 30 #ifdef HAVE_CONFIG_H
31 #include <config.h> 31 #include <config.h>
32 #endif 32 #endif
33
34 #include <cstdio>
33 35
34 #ifdef YYBYACC 36 #ifdef YYBYACC
35 #include <cstdlib> 37 #include <cstdlib>
36 #endif 38 #endif
37 39
2911 2913
2912 return retval; 2914 return retval;
2913 } 2915 }
2914 2916
2915 octave_value_list 2917 octave_value_list
2918 feval (const string& name, const octave_value_list& args, int nargout)
2919 {
2920 octave_value_list retval;
2921
2922 octave_function *fcn = is_valid_function (name, "feval", 1);
2923
2924 if (fcn)
2925 retval = fcn->do_index_op (nargout, args);
2926
2927 return retval;
2928 }
2929
2930 octave_value_list
2916 feval (const octave_value_list& args, int nargout) 2931 feval (const octave_value_list& args, int nargout)
2917 { 2932 {
2918 octave_value_list retval; 2933 octave_value_list retval;
2919 2934
2920 octave_function *fcn = is_valid_function (args(0), "feval", 1); 2935 if (args.length () > 0)
2921 2936 {
2922 if (fcn) 2937 string name = args(0).string_value ();
2923 { 2938
2924 string_vector arg_names = args.name_tags (); 2939 if (! error_state)
2925
2926 int tmp_nargin = args.length () - 1;
2927
2928 octave_value_list tmp_args (tmp_nargin, octave_value ());
2929
2930 string_vector tmp_arg_names (tmp_nargin);
2931
2932 for (int i = 0; i < tmp_nargin; i++)
2933 { 2940 {
2934 tmp_args(i) = args(i+1); 2941 string_vector arg_names = args.name_tags ();
2935 tmp_arg_names(i) = arg_names(i+1); 2942
2943 int tmp_nargin = args.length () - 1;
2944
2945 octave_value_list tmp_args (tmp_nargin, octave_value ());
2946
2947 string_vector tmp_arg_names (tmp_nargin);
2948
2949 for (int i = 0; i < tmp_nargin; i++)
2950 {
2951 tmp_args(i) = args(i+1);
2952 tmp_arg_names(i) = arg_names(i+1);
2953 }
2954
2955 tmp_args.stash_name_tags (tmp_arg_names);
2956
2957 retval = feval (name, tmp_args, nargout);
2936 } 2958 }
2937
2938 tmp_args.stash_name_tags (tmp_arg_names);
2939
2940 retval = fcn->do_index_op (nargout, tmp_args);
2941 } 2959 }
2942 2960
2943 return retval; 2961 return retval;
2944 } 2962 }
2945 2963