Mercurial > hg > octave-lyh
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 |