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;
 }
 
 /*