Mercurial > octave-dspies
view examples/funcdemo.cc @ 18974:d8abf813c69f stable
handle changes in bison 3.x
* acinclude.m4 (OCTAVE_PROG_BISON): Also check for the proper way to
declare api.prefix.
* build-aux/common.mk (BISON_API_PREFIX_DECL_STYLE): New variable.
* lex.ll: Conditionally define YYSTYPE.
* oct-parse.in.yy (%API_PREFIX_DECL%): Allow for differences in the
way api.prefix is specified in different versions of bison.
* libinterp/parse-tree/module.mk (parse-tree/oct-parse.yy): Also
substitute %API_PREFIX_DECL% in lex.ll.
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Fri, 01 Aug 2014 08:09:02 -0400 |
parents | be41c30bcb44 |
children |
line wrap: on
line source
#include <octave/oct.h> #include <octave/parse.h> DEFUN_DLD (funcdemo, args, nargout, "Function Demo") { octave_value_list retval; int nargin = args.length (); if (nargin < 2) print_usage (); else { octave_value_list newargs; for (octave_idx_type i = nargin - 1; i > 0; i--) newargs(i-1) = args(i); if (args(0).is_function_handle () || args(0).is_inline_function ()) { octave_function *fcn = args(0).function_value (); if (! error_state) retval = feval (fcn, newargs, nargout); } else if (args(0).is_string ()) { std::string fcn = args(0).string_value (); if (! error_state) retval = feval (fcn, newargs, nargout); } else error ("funcdemo: INPUT must be string, inline, or function handle"); } return retval; }