Mercurial > octave-nkf
diff src/oct-obj.cc @ 1968:a2e206524aa0
[project @ 1996-02-17 02:54:24 by jwe]
author | jwe |
---|---|
date | Sat, 17 Feb 1996 02:57:16 +0000 |
parents | e62277bf5fe0 |
children | 003570e69c7b |
line wrap: on
line diff
--- a/src/oct-obj.cc Sat Feb 17 02:54:24 1996 +0000 +++ b/src/oct-obj.cc Sat Feb 17 02:57:16 1996 +0000 @@ -29,86 +29,39 @@ #include <config.h> #endif +#include "error.h" #include "oct-obj.h" -// XXX FIXME XXX -- these can probably go in oct-obj.h now. - -Octave_object::Octave_object (double d) - : Array<tree_constant> (1, tree_constant (d)) { } - -Octave_object::Octave_object (const Matrix& m) - : Array<tree_constant> (1, tree_constant (m)) { } - -Octave_object::Octave_object (const DiagMatrix& d) - : Array<tree_constant> (1, tree_constant (d)) { } - -Octave_object::Octave_object (const RowVector& v, int pcv) - : Array<tree_constant> (1, tree_constant (v, pcv)) { } - -Octave_object::Octave_object (const ColumnVector& v, int pcv) - : Array<tree_constant> (1, tree_constant (v, pcv)) { } - -Octave_object::Octave_object (const Complex& c) - : Array<tree_constant> (1, tree_constant (c)) { } - -Octave_object::Octave_object (const ComplexMatrix& m) - : Array<tree_constant> (1, tree_constant (m)) { } - -Octave_object::Octave_object (const ComplexDiagMatrix& d) - : Array<tree_constant> (1, tree_constant (d)) { } +int +Octave_object::all_strings (void) const +{ + int n = length (); -Octave_object::Octave_object (const ComplexRowVector& v, int pcv) - : Array<tree_constant> (1, tree_constant (v, pcv)) { } - -Octave_object::Octave_object (const ComplexColumnVector& v, int pcv) - : Array<tree_constant> (1, tree_constant (v, pcv)) { } - -Octave_object::Octave_object (const char *s) - : Array<tree_constant> (1, tree_constant (s)) { } - -Octave_object::Octave_object (const string& s) - : Array<tree_constant> (1, tree_constant (s)) { } + for (int i = 0; i < n; i++) + if (! elem(i).is_string ()) + return 0; -Octave_object::Octave_object (const string_vector& s) - : Array<tree_constant> (1, tree_constant (s)) { } - -Octave_object::Octave_object (double base, double limit, double inc) - : Array<tree_constant> (1, tree_constant (base, limit, inc)) { } - -Octave_object::Octave_object (const Range& r) - : Array<tree_constant> (1, tree_constant (r)) { } - -tree_constant& -Octave_object::operator () (int n) -{ - maybe_resize (n); - return Array<tree_constant>::operator () (n); + return 1; } -tree_constant -Octave_object::operator () (int n) const -{ - return Array<tree_constant>::operator () (n); -} - -tree_constant& -Octave_object::elem (int n) +string_vector +Octave_object::make_argv (const string& fcn_name) const { - maybe_resize (n); - return Array<tree_constant>::elem (n); -} + string_vector argv; + + if (all_strings ()) + { + int n = length (); + argv.resize (n+1); + argv[0] = fcn_name; -tree_constant -Octave_object::elem (int n) const -{ - return Array<tree_constant>::operator () (n); -} + for (int i = 0; i < n; i++) + argv[i+1] = elem(i).string_value (); + } + else + error ("%s: expecting all arguments to be strings", fcn_name.c_str ()); -void -Octave_object::maybe_resize (int n) -{ - if (n >= length ()) - resize (n + 1, Matrix ()); + return argv; } /*