[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
curr_sym_tab?
From: |
Stef Pillaert |
Subject: |
curr_sym_tab? |
Date: |
Thu, 20 Apr 2000 11:53:44 +0200 |
Hello,
in my .oct-functions, I had a way (in octave-2.0.?) to set local or global
octave_values, so that I could use eval on those values. JWE was so kind to
provide a simple way to do this.
My problem is that this doesn't seem to work in octave-2.1.30 anymore.
Anyone has experience on this? "curr_sym_tab" doesn't seem to exist
anymore...
Thanks,
Stef
An extract from the code:
#include <octave/oct.h>
#include <octave/symtab.h>
#include "local_oct.h"
octave_value
get_local_value (const string& nm)
{
octave_value retval;
const symbol_record *const sr = curr_sym_tab->lookup (nm);
if (sr)
{
const octave_value val = sr->variable_value ();
if (val.is_undefined ())
error ("get_local_value: undefined symbol %s'", nm.c_str ());
else
retval = val;
}
else
error ("get_local_value: unknown symbol %s'", nm.c_str ());
return retval;
}
...
DEFUN_DLD (local_oct, args, ,
"local_oct (local_variable_name [, val])
called with two values, it sets the value of the named local variable
to the value of the second argument.
If called with just one argument, it finds the value
of the named local variable")
{
octave_value_list retval;
const int nargin = args.length ();
if (nargin == 1 || nargin == 2)
{
const string var = args(0).string_value ();
if (! error_state)
{
if (nargin == 2)
set_local_value (var, args(1));
else
retval(0) = get_local_value (var);
}
}
return retval;
}
-----------------------------------------------------------------------
Octave is freely available under the terms of the GNU GPL.
Octave's home on the web: http://www.che.wisc.edu/octave/octave.html
How to fund new projects: http://www.che.wisc.edu/octave/funding.html
Subscription information: http://www.che.wisc.edu/octave/archive.html
-----------------------------------------------------------------------
- curr_sym_tab?,
Stef Pillaert <=