Mercurial > octave-antonio
diff src/ov-typeinfo.cc @ 4640:2d237a76dbdd
[project @ 2003-11-22 11:24:44 by jwe]
author | jwe |
---|---|
date | Sat, 22 Nov 2003 11:24:44 +0000 |
parents | 87c01a296263 |
children | e95c86d48732 |
line wrap: on
line diff
--- a/src/ov-typeinfo.cc Sat Nov 22 04:25:29 2003 +0000 +++ b/src/ov-typeinfo.cc Sat Nov 22 11:24:44 2003 +0000 @@ -82,10 +82,11 @@ int octave_value_typeinfo::register_type (const std::string& t_name, - const std::string& c_name) + const std::string& c_name, + const octave_value& val) { return (instance_ok ()) - ? instance->do_register_type (t_name, c_name) : -1; + ? instance->do_register_type (t_name, c_name, val) : -1; } bool @@ -149,7 +150,8 @@ int octave_value_typeinfo::do_register_type (const std::string& t_name, - const std::string& c_name) + const std::string& c_name, + const octave_value& val) { int i = 0; @@ -165,6 +167,8 @@ types.resize (len, std::string ()); + vals.resize (len, octave_value ()); + unary_ops.resize (static_cast<int> (octave_value::num_unary_ops), len, static_cast<unary_op_fcn> (0)); @@ -188,6 +192,8 @@ types (i) = t_name; + vals (i) = val; + num_types++; return i; @@ -323,6 +329,23 @@ return false; } +octave_value +octave_value_typeinfo::do_lookup_type (const std::string& nm) +{ + octave_value retval; + + for (int i = 0; i < num_types; i++) + { + if (nm == types(i)) + { + retval = vals(i); + break; + } + } + + return retval; +} + unary_op_fcn octave_value_typeinfo::do_lookup_unary_op (octave_value::unary_op op, int t) {