changeset 2086:bfb775fb6fe8

[project @ 1996-04-25 05:55:19 by jwe]
author jwe
date Thu, 25 Apr 1996 05:55:19 +0000
parents 7603b37325db
children 088b063500d1
files src/Array-tc.cc src/Map-i.cc src/Map-tc.cc src/SLList-tc.cc src/arith-ops.cc src/arith-ops.h src/balance.cc src/chol.cc src/colloc.cc src/dassl.cc src/data.cc src/defun-int.h src/defun.h src/det.cc src/dirfns.cc src/dynamic-ld.h src/eig.cc src/error.cc src/expm.cc src/fft.cc src/fft2.cc src/filter.cc src/find.cc src/fsolve.cc src/fsqp.cc src/givens.cc src/gripes.cc src/gripes.h src/help.cc src/hess.cc src/ifft.cc src/ifft2.cc src/input.cc src/inv.cc src/load-save.cc src/load-save.h src/log.cc src/lpsolve.cc src/lsode.cc src/lu.cc src/minmax.cc src/npsol.cc src/oct-hist.cc src/oct-map.h src/oct-obj.cc src/oct-obj.h src/pager.cc src/parse.y src/pinv.cc src/pr-output.cc src/pt-cmd.cc src/pt-cmd.h src/pt-const.cc src/pt-const.h src/pt-exp-base.cc src/pt-exp-base.h src/pt-exp.cc src/pt-exp.h src/pt-fcn.cc src/pt-fcn.h src/pt-fvc-base.cc src/pt-fvc-base.h src/pt-fvc.cc src/pt-fvc.h src/pt-mat.cc src/pt-mat.h src/pt-misc.cc src/pt-misc.h src/pt-mvr-base.cc src/pt-mvr-base.h src/pt-mvr.cc src/pt-mvr.h src/pt-plot.cc src/pt-plot.h src/qpsol.cc src/qr.cc src/quad.cc src/qzval.cc src/rand.cc src/resource.cc src/schur.cc src/sort.cc src/strfns.cc src/svd.cc src/syl.cc src/symtab.cc src/symtab.h src/syscalls.cc src/sysdep.cc src/timefns.cc src/toplev.cc src/toplev.h src/utils.cc src/utils.h src/variables.cc src/variables.h src/xpow.cc src/xpow.h
diffstat 98 files changed, 1259 insertions(+), 1259 deletions(-) [+]
line wrap: on
line diff
--- a/src/Array-tc.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/Array-tc.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -24,7 +24,7 @@
 #include <config.h>
 #endif
 
-// Instantiate Arrays of tree_constants.
+// Instantiate Arrays of octave_values.
 
 #include "Array.h"
 #include "Array.cc"
@@ -43,7 +43,7 @@
 extern template class Array2<Complex>;
 extern template class DiagArray2<Complex>;
 
-template class Array<tree_constant>;
+template class Array<octave_value>;
 
 /*
 ;;; Local Variables: ***
--- a/src/Map-i.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/Map-i.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -20,7 +20,7 @@
 
 */
 
-// Instantiate Maps of tree_constants.
+// Instantiate Maps of octave_values.
 
 #include "Map.h"
 #include "Map.cc"
--- a/src/Map-tc.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/Map-tc.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -20,19 +20,19 @@
 
 */
 
-// Instantiate Maps of tree_constants.
+// Instantiate Maps of octave_values.
 
 #include "Map.h"
 #include "Map.cc"
 
 #include "pt-const.h"
 
-template class Map<tree_constant>;
-template class CHNode<tree_constant>;
-template class CHMap<tree_constant>;
+template class Map<octave_value>;
+template class CHNode<octave_value>;
+template class CHMap<octave_value>;
 
-template static int goodCHptr (CHNode<tree_constant> *t);
-template static int CHptr_to_index (CHNode<tree_constant> *t);
+template static int goodCHptr (CHNode<octave_value> *t);
+template static int CHptr_to_index (CHNode<octave_value> *t);
 
 /*
 ;;; Local Variables: ***
--- a/src/SLList-tc.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/SLList-tc.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -30,8 +30,8 @@
 
 #include "pt-const.h"
 
-template class SLNode<tree_constant>;
-template class SLList<tree_constant>;
+template class SLNode<octave_value>;
+template class SLList<octave_value>;
 
 /*
 ;;; Local Variables: ***
--- a/src/arith-ops.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/arith-ops.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -974,7 +974,7 @@
 //   matrix
 //   complex_matrix
 
-tree_constant
+octave_value
 do_unary_op (double d, tree_expression::type t)
 {
   double result = 0.0;
@@ -999,10 +999,10 @@
       break;
     }
 
-  return tree_constant (result);
+  return octave_value (result);
 }
 
-tree_constant
+octave_value
 do_unary_op (const Matrix& a, tree_expression::type t)
 {
   Matrix result;
@@ -1027,10 +1027,10 @@
       break;
     }
 
-  return tree_constant (result);
+  return octave_value (result);
 }
 
-tree_constant
+octave_value
 do_unary_op (const Complex& c, tree_expression::type t)
 {
   Complex result = 0.0;
@@ -1058,10 +1058,10 @@
       break;
     }
 
-  return tree_constant (result);
+  return octave_value (result);
 }
 
-tree_constant
+octave_value
 do_unary_op (const ComplexMatrix& a, tree_expression::type t)
 {
   ComplexMatrix result;
@@ -1089,7 +1089,7 @@
       break;
     }
 
-  return tree_constant (result);
+  return octave_value (result);
 }
 
 // Binary operations.  One for each type combination, in the order
@@ -1107,7 +1107,7 @@
 //                  +---+---+----+----+
 
 // -*- 1 -*-
-tree_constant
+octave_value
 do_binary_op (double a, double b, tree_expression::type t)
 {
   double result = 0.0;
@@ -1184,13 +1184,13 @@
     }
 
   if (error_state)
-    return tree_constant ();
-
-  return tree_constant (result);
+    return octave_value ();
+
+  return octave_value (result);
 }
 
 // -*- 2 -*-
-tree_constant
+octave_value
 do_binary_op (double a, const Matrix& b, tree_expression::type t)
 {
   Matrix result;
@@ -1271,13 +1271,13 @@
     }
 
   if (error_state)
-    return tree_constant ();
-
-  return tree_constant (result);
+    return octave_value ();
+
+  return octave_value (result);
 }
 
 // -*- 3 -*-
-tree_constant
+octave_value
 do_binary_op (double a, const Complex& b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -1371,18 +1371,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 4 -*-
-tree_constant
+octave_value
 do_binary_op (double a, const ComplexMatrix& b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -1478,18 +1478,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 5 -*-
-tree_constant
+octave_value
 do_binary_op (const Matrix& a, double b, tree_expression::type t)
 {
   Matrix result;
@@ -1568,13 +1568,13 @@
     }
 
   if (error_state)
-    return tree_constant ();
-
-  return tree_constant (result);
+    return octave_value ();
+
+  return octave_value (result);
 }
 
 // -*- 6 -*-
-tree_constant
+octave_value
 do_binary_op (const Matrix& a, const Matrix& b, tree_expression::type t)
 {
   Matrix result;
@@ -1674,13 +1674,13 @@
     }
 
   if (error_state)
-    return tree_constant ();
-
-  return tree_constant (result);
+    return octave_value ();
+
+  return octave_value (result);
 }
 
 // -*- 7 -*-
-tree_constant
+octave_value
 do_binary_op (const Matrix& a, const Complex& b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -1775,18 +1775,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 8 -*-
-tree_constant
+octave_value
 do_binary_op (const Matrix& a, const ComplexMatrix& b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -1904,18 +1904,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 9 -*-
-tree_constant
+octave_value
 do_binary_op (const Complex& a, double b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -2009,18 +2009,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 10 -*-
-tree_constant
+octave_value
 do_binary_op (const Complex& a, const Matrix& b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -2117,18 +2117,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 11 -*-
-tree_constant
+octave_value
 do_binary_op (const Complex& a, const Complex& b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -2222,18 +2222,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 12 -*-
-tree_constant
+octave_value
 do_binary_op (const Complex& a, const ComplexMatrix& b,
 	      tree_expression::type t)
 {
@@ -2331,18 +2331,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 13 -*-
-tree_constant
+octave_value
 do_binary_op (const ComplexMatrix& a, double b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -2437,18 +2437,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 14 -*-
-tree_constant
+octave_value
 do_binary_op (const ComplexMatrix& a, const Matrix& b, tree_expression::type t)
 {
   enum RT { RT_unknown, RT_real, RT_complex };
@@ -2566,18 +2566,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 15 -*-
-tree_constant
+octave_value
 do_binary_op (const ComplexMatrix& a, const Complex& b,
 	      tree_expression::type t)
 {
@@ -2673,18 +2673,18 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 // -*- 16 -*-
-tree_constant
+octave_value
 do_binary_op (const ComplexMatrix& a, const ComplexMatrix& b,
 	      tree_expression::type t)
 {
@@ -2803,14 +2803,14 @@
     }
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   assert (result_type != RT_unknown);
 
   if (result_type == RT_real)
-    return tree_constant (result);
+    return octave_value (result);
   else
-    return tree_constant (complex_result);
+    return octave_value (complex_result);
 }
 
 /*
--- a/src/arith-ops.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/arith-ops.h	Thu Apr 25 05:55:19 1996 +0000
@@ -29,63 +29,63 @@
 
 class Matrix;
 class ComplexMatrix;
-class tree_constant;
+class octave_value;
 
-extern tree_constant do_unary_op (double d, tree_expression::type t);
+extern octave_value do_unary_op (double d, tree_expression::type t);
 
-extern tree_constant do_unary_op (const Matrix& a, tree_expression::type t);
+extern octave_value do_unary_op (const Matrix& a, tree_expression::type t);
 
-extern tree_constant do_unary_op (const Complex& c, tree_expression::type t);
+extern octave_value do_unary_op (const Complex& c, tree_expression::type t);
 
-extern tree_constant do_unary_op (const ComplexMatrix& a,
+extern octave_value do_unary_op (const ComplexMatrix& a,
 				  tree_expression::type t);
 
-extern tree_constant do_binary_op (double a, double b,
+extern octave_value do_binary_op (double a, double b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (double a, const Matrix& b,
+extern octave_value do_binary_op (double a, const Matrix& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (double a, const Complex& b,
+extern octave_value do_binary_op (double a, const Complex& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (double a, const ComplexMatrix& b,
+extern octave_value do_binary_op (double a, const ComplexMatrix& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Matrix& a, double b,
+extern octave_value do_binary_op (const Matrix& a, double b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Matrix& a, const Matrix& b,
+extern octave_value do_binary_op (const Matrix& a, const Matrix& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Matrix& a, const Complex& b,
+extern octave_value do_binary_op (const Matrix& a, const Complex& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Matrix& a, const ComplexMatrix& b,
+extern octave_value do_binary_op (const Matrix& a, const ComplexMatrix& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Complex& a, double b,
+extern octave_value do_binary_op (const Complex& a, double b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Complex& a, const Matrix& b,
+extern octave_value do_binary_op (const Complex& a, const Matrix& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Complex& a, const Complex& b,
+extern octave_value do_binary_op (const Complex& a, const Complex& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const Complex& a, const ComplexMatrix& b,
+extern octave_value do_binary_op (const Complex& a, const ComplexMatrix& b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const ComplexMatrix& a, double b,
+extern octave_value do_binary_op (const ComplexMatrix& a, double b,
 				   tree_expression::type t);
 
-extern tree_constant do_binary_op (const ComplexMatrix& a, const Matrix& b,
+extern octave_value do_binary_op (const ComplexMatrix& a, const Matrix& b,
 				   tree_expression::type t); 
 
-extern tree_constant do_binary_op (const ComplexMatrix& a, const Complex& b,
+extern octave_value do_binary_op (const ComplexMatrix& a, const Complex& b,
 				   tree_expression::type t); 
 
-extern tree_constant do_binary_op (const ComplexMatrix& a,
+extern octave_value do_binary_op (const ComplexMatrix& a,
 				   const ComplexMatrix& b,
 				   tree_expression::type t); 
 
--- a/src/balance.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/balance.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -61,7 +61,7 @@
 \n\
 [CC, DD, AA, BB] = balance (A, B, OPT) returns AA (BB) = CC*A*DD (CC*B*DD)")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -88,7 +88,7 @@
       my_nargin = nargin;
     }
 
-  tree_constant arg_a = args(0);
+  octave_value arg_a = args(0);
 
   int a_nr = arg_a.rows ();
   int a_nc = arg_a.columns ();
@@ -100,7 +100,7 @@
   if (arg_is_empty < 0)
     return retval;
   if (arg_is_empty > 0)
-    return Octave_object (2, Matrix ());
+    return octave_value_list (2, Matrix ());
 
   if (a_nr != a_nc)
     {
@@ -160,7 +160,7 @@
 
 	// 1st we have to check argument 2 dimensions and type...
 
-	tree_constant arg_b = args(1);
+	octave_value arg_b = args(1);
 
 	int b_nr = arg_b.rows ();
 	int b_nc = arg_b.columns ();
--- a/src/chol.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/chol.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -38,7 +38,7 @@
 DEFUN_DLD_BUILTIN (chol, args, nargout,
   "R = chol (X): cholesky factorization")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -48,7 +48,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
     
   int nr = arg.rows ();
   int nc = arg.columns ();
--- a/src/colloc.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/colloc.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -38,7 +38,7 @@
 DEFUN_DLD_BUILTIN (colloc, args, ,
   "[R, A, B, Q] = colloc (N [, \"left\"] [, \"right\"]): collocation weights")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/dassl.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/dassl.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -53,7 +53,7 @@
 
   assert (nstates == xdot.capacity ());
 
-  Octave_object args;
+  octave_value_list args;
   args(2) = t;
 
   if (nstates > 1)
@@ -65,8 +65,8 @@
 	  m1 (i, 0) = x.elem (i);
 	  m2 (i, 0) = xdot.elem (i);
 	}
-      tree_constant state (m1);
-      tree_constant deriv (m2);
+      octave_value state (m1);
+      octave_value deriv (m2);
       args(1) = deriv;
       args(0) = state;
     }
@@ -74,15 +74,15 @@
     {
       double d1 = x.elem (0);
       double d2 = xdot.elem (0);
-      tree_constant state (d1);
-      tree_constant deriv (d2);
+      octave_value state (d1);
+      octave_value deriv (d2);
       args(1) = deriv;
       args(0) = state;
     }
 
   if (dassl_fcn)
     {
-      Octave_object tmp = dassl_fcn->eval (0, 1, args);
+      octave_value_list tmp = dassl_fcn->eval (0, 1, args);
 
       if (error_state)
 	{
@@ -115,7 +115,7 @@
 \n\
 where x, xdot, and res are vectors, and t is a scalar.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -294,10 +294,10 @@
   warning ("dassl_options: no match for `%s'", keyword.c_str ());
 }
 
-static Octave_object
+static octave_value_list
 show_dassl_option (const string& keyword)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   DASSL_OPTIONS *list = dassl_option_table;
 
@@ -322,7 +322,7 @@
 Set or show options for dassl.  Keywords may be abbreviated\n\
 to the shortest match.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/data.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/data.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -57,7 +57,7 @@
 DEFUN (all, args, ,
   "all (X): are all elements of X nonzero?")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -72,7 +72,7 @@
 DEFUN (any, args, ,
   "any (X): are any elements of X nonzero?")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -141,14 +141,14 @@
 DEFUN (atan2, args, ,
   "atan2 (Y, X): atan (Y / X) in range -pi to pi")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 2 && args(0).is_defined () && args(1).is_defined ())
     {
-      tree_constant arg_y = args(0);
-      tree_constant arg_x = args(1);
+      octave_value arg_y = args(0);
+      octave_value arg_x = args(1);
 
       int y_nr = arg_y.rows ();
       int y_nc = arg_y.columns ();
@@ -227,13 +227,13 @@
 DEFUN (cumprod, args, ,
   "cumprod (X): cumulative products")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 1)
     {
-      tree_constant arg = args(0);
+      octave_value arg = args(0);
 
       if (arg.is_real_type ())
 	{
@@ -264,13 +264,13 @@
 DEFUN (cumsum, args, ,
   "cumsum (X): cumulative sums")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 1)
     {
-      tree_constant arg = args(0);
+      octave_value arg = args(0);
 
       if (arg.is_real_type ())
 	{
@@ -298,14 +298,14 @@
   return retval;
 }
 
-static tree_constant
+static octave_value
 make_diag (const Matrix& v, int k)
 {
   int nr = v.rows ();
   int nc = v.columns ();
   assert (nc == 1 || nr == 1);
 
-  tree_constant retval;
+  octave_value retval;
 
   int roff = 0;
   int coff = 0;
@@ -326,7 +326,7 @@
       Matrix m (n, n, 0.0);
       for (int i = 0; i < nc; i++)
 	m.elem (i+roff, i+coff) = v.elem (0, i);
-      retval = tree_constant (m);
+      retval = octave_value (m);
     }
   else
     {
@@ -334,20 +334,20 @@
       Matrix m (n, n, 0.0);
       for (int i = 0; i < nr; i++)
 	m.elem (i+roff, i+coff) = v.elem (i, 0);
-      retval = tree_constant (m);
+      retval = octave_value (m);
     }
 
   return retval;
 }
 
-static tree_constant
+static octave_value
 make_diag (const ComplexMatrix& v, int k)
 {
   int nr = v.rows ();
   int nc = v.columns ();
   assert (nc == 1 || nr == 1);
 
-  tree_constant retval;
+  octave_value retval;
 
   int roff = 0;
   int coff = 0;
@@ -368,7 +368,7 @@
       ComplexMatrix m (n, n, 0.0);
       for (int i = 0; i < nc; i++)
 	m.elem (i+roff, i+coff) = v.elem (0, i);
-      retval = tree_constant (m);
+      retval = octave_value (m);
     }
   else
     {
@@ -376,16 +376,16 @@
       ComplexMatrix m (n, n, 0.0);
       for (int i = 0; i < nr; i++)
 	m.elem (i+roff, i+coff) = v.elem (i, 0);
-      retval = tree_constant (m);
+      retval = octave_value (m);
     }
 
   return retval;
 }
 
-static tree_constant
-make_diag (const tree_constant& arg)
+static octave_value
+make_diag (const octave_value& arg)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (arg.is_real_type ())
     {
@@ -439,10 +439,10 @@
   return retval;
 }
 
-static tree_constant
-make_diag (const tree_constant& a, const tree_constant& b)
+static octave_value
+make_diag (const octave_value& a, const octave_value& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   double tmp = b.double_value ();
 
@@ -546,7 +546,7 @@
 DEFUN (diag, args, ,
   "diag (X [,k]): form/extract diagonals")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -563,13 +563,13 @@
 DEFUN (prod, args, ,
   "prod (X): products")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 1)
     {
-      tree_constant arg = args(0);
+      octave_value arg = args(0);
 
       if (arg.is_real_type ())
 	{
@@ -605,7 +605,7 @@
 m = size (x, 1): return number of rows in x\n\
 m = size (x, 2): return number of columns in x")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -652,13 +652,13 @@
 DEFUN (sum, args, ,
   "sum (X): sum of elements")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 1)
     {
-      tree_constant arg = args(0);
+      octave_value arg = args(0);
 
       if (arg.is_real_type ())
 	{
@@ -689,13 +689,13 @@
 DEFUN (sumsq, args, ,
   "sumsq (X): sum of squares of elements")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 1)
     {
-      tree_constant arg = args(0);
+      octave_value arg = args(0);
 
       if (arg.is_real_type ())
 	{
@@ -726,13 +726,13 @@
 DEFUN (is_struct, args, ,
   "is_struct (x): return nonzero if x is a structure")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 1)
     {
-      tree_constant arg = args(0);
+      octave_value arg = args(0);
 
       if (arg.is_map ())
 	retval = 1.0;
@@ -750,7 +750,7 @@
 \n\
 Return a list of the names of the elements of the structure S.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -775,7 +775,7 @@
 \n\
 return nonzero if S is a structure with element NAME")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -785,7 +785,7 @@
       if (args(0).is_map () && args(1).is_string ())
 	{
 	  string s = args(1).string_value ();
-	  tree_constant tmp = args(0).lookup_map_element (s, 0, 1);
+	  octave_value tmp = args(0).lookup_map_element (s, 0, 1);
 	  retval = (double) tmp.is_defined ();
 	}
     }
@@ -816,7 +816,7 @@
 }
 
 static void
-get_dimensions (const tree_constant& a, const char *warn_for,
+get_dimensions (const octave_value& a, const char *warn_for,
 		int& nr, int& nc)
 {
   if (a.is_scalar_type ())
@@ -847,7 +847,7 @@
 }
 
 static void
-get_dimensions (const tree_constant& a, const tree_constant& b,
+get_dimensions (const octave_value& a, const octave_value& b,
 		const char *warn_for, int& nr, int& nc)
 {
   nr = NINT (a.double_value ());
@@ -859,29 +859,29 @@
     check_dimensions (nr, nc, warn_for); // May set error_state.
 }
 
-static tree_constant
-fill_matrix (const tree_constant& a, double val, const char *warn_for)
+static octave_value
+fill_matrix (const octave_value& a, double val, const char *warn_for)
 {
   int nr, nc;
   get_dimensions (a, warn_for, nr, nc);
 
   if (error_state)
-    return  tree_constant ();
+    return  octave_value ();
 
   Matrix m (nr, nc, val);
 
   return m;
 }
 
-static tree_constant
-fill_matrix (const tree_constant& a, const tree_constant& b,
+static octave_value
+fill_matrix (const octave_value& a, const octave_value& b,
 	     double val, const char *warn_for)
 {
   int nr, nc;
   get_dimensions (a, b, warn_for, nr, nc); // May set error_state.
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   Matrix m (nr, nc, val);
 
@@ -891,7 +891,7 @@
 DEFUN (ones, args, ,
   "ones (N), ones (N, M), ones (X): create a matrix of all ones")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -920,7 +920,7 @@
 DEFUN (zeros, args, ,
   "zeros (N), zeros (N, M), zeros (X): create a matrix of all zeros")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -946,14 +946,14 @@
   return retval;
 }
 
-static tree_constant
-identity_matrix (const tree_constant& a)
+static octave_value
+identity_matrix (const octave_value& a)
 {
   int nr, nc;
   get_dimensions (a, "eye", nr, nc); // May set error_state.
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   Matrix m (nr, nc, 0.0);
 
@@ -967,14 +967,14 @@
   return m;
 }
 
-static tree_constant
-identity_matrix (const tree_constant& a, const tree_constant& b)
+static octave_value
+identity_matrix (const octave_value& a, const octave_value& b)
 {
   int nr, nc;
   get_dimensions (a, b, "eye", nr, nc);  // May set error_state.
 
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
   Matrix m (nr, nc, 0.0);
 
@@ -991,7 +991,7 @@
 DEFUN (eye, args, ,
   "eye (N), eye (N, M), eye (X): create an identity matrix")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -1029,7 +1029,7 @@
 \n\
 See also: logspace")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -1053,8 +1053,8 @@
     {
       if (npoints > 1)
 	{
-	  tree_constant arg_1 = args(0);
-	  tree_constant arg_2 = args(1);
+	  octave_value arg_1 = args(0);
+	  octave_value arg_2 = args(1);
 
 	  if (arg_1.is_complex_type () || arg_2.is_complex_type ())
 	    {
@@ -1066,7 +1066,7 @@
 		  ComplexRowVector rv = linspace (x1, x2, npoints);
 
 		  if (! error_state)
-		    retval (0) = tree_constant (rv, 0);
+		    retval (0) = octave_value (rv, 0);
 		}
 	    }
 	  else
@@ -1079,7 +1079,7 @@
 		  RowVector rv = linspace (x1, x2, npoints);
 
 		  if (! error_state)
-		    retval (0) = tree_constant (rv, 0);
+		    retval (0) = octave_value (rv, 0);
 		}
 	    }
 	}
--- a/src/defun-int.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/defun-int.h	Thu Apr 25 05:55:19 1996 +0000
@@ -75,7 +75,7 @@
   }
 
 #define DECLARE_FUN(name, args_name, nargout_name) \
-  Octave_object F ## name (const Octave_object& args_name, int nargout_name)
+  octave_value_list F ## name (const octave_value_list& args_name, int nargout_name)
 
 #endif
 
--- a/src/defun.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/defun.h	Thu Apr 25 05:55:19 1996 +0000
@@ -77,7 +77,7 @@
 #define DEFVAR_INT(name, sname, defn, inst_as_fcn, protect, sv_fcn, doc) \
   do \
     { \
-      builtin_variable sname (name, new tree_constant (defn), \
+      builtin_variable sname (name, new octave_value (defn), \
 			      inst_as_fcn, protect, (sv_fcn ? 1 : 0), \
 			      sv_fcn, doc); \
       install_builtin_variable (sname); \
@@ -88,7 +88,7 @@
 //
 //   name is the name of the function, unqouted.
 //
-//   args_name is the name of the Octave_object variable used to pass
+//   args_name is the name of the octave_value_list variable used to pass
 //     the argument list to this function.
 //
 //   nargout_name is the name of the int variable used to pass the
--- a/src/det.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/det.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -38,7 +38,7 @@
 DEFUN_DLD_BUILTIN (det, args, ,
   "det (X): determinant of a square matrix")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -48,7 +48,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
     
   int nr = arg.rows ();
   int nc = arg.columns ();
--- a/src/dirfns.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/dirfns.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -313,7 +313,7 @@
 if no arguments are given, the current directory is changed to the\n\
 users home directory")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -342,7 +342,7 @@
     }
 
   string directory = get_working_directory ("cd");
-  tree_constant *dir = new tree_constant (directory);
+  octave_value *dir = new octave_value (directory);
   bind_builtin_variable ("PWD", dir, 1);
 
   return retval;
@@ -363,7 +363,7 @@
 \n\
 print a directory listing")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -410,7 +410,7 @@
 DEFUN (pwd, , nargout,
   "pwd (): print current working directory")
 {
-  Octave_object retval;
+  octave_value_list retval;
   string directory;
 
   if (verbatim_pwd)
@@ -445,7 +445,7 @@
 named directory.  If sucessful, returns 0; otherwise an error message
 is printed.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (args.length () == 1)
     {
@@ -484,7 +484,7 @@
 Create the directory named by NAME.  If successful, returns 0;\n\
 otherwise prints an error message.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int status = 0;
 
@@ -520,7 +520,7 @@
 Remove the directory named by NAME.  If successful, returns 0;\n\
 otherwise prints an error message.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int status = 0;
 
@@ -556,7 +556,7 @@
 Rename a file.  If successful, returns 0;\n\
 otherwise prints an error message and returns -1.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int status = 0;
 
--- a/src/dynamic-ld.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/dynamic-ld.h	Thu Apr 25 05:55:19 1996 +0000
@@ -25,7 +25,7 @@
 
 #include "oct-obj.h"
 
-typedef Octave_object (*Octave_builtin_fcn)(const Octave_object&, int);
+typedef octave_value_list (*Octave_builtin_fcn)(const octave_value_list&, int);
 
 extern int load_octave_oct_file (const string& name);
 
--- a/src/eig.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/eig.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -37,7 +37,7 @@
 DEFUN_DLD_BUILTIN (eig, args, nargout,
   "eig (X) or [V, D] = eig (X): compute eigenvalues and eigenvectors of X")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -47,7 +47,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int nr = arg.rows ();
   int nc = arg.columns ();
@@ -56,7 +56,7 @@
   if (arg_is_empty < 0)
     return retval;
   else if (arg_is_empty > 0)
-    return Octave_object (2, Matrix ());
+    return octave_value_list (2, Matrix ());
 
   if (nr != nc)
     {
--- a/src/error.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/error.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -196,18 +196,18 @@
 
 typedef void (*error_fun)(const char *, ...);
 
-extern Octave_object Fsprintf (const Octave_object&, int);
+extern octave_value_list Fsprintf (const octave_value_list&, int);
 
-static Octave_object
-handle_message (error_fun f, const char *msg, const Octave_object& args)
+static octave_value_list
+handle_message (error_fun f, const char *msg, const octave_value_list& args)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   string tstr;
 
   int nargin = args.length ();
 
-  tree_constant arg = ((nargin > 1) ? Fsprintf (args, 1) : args) (0);
+  octave_value arg = ((nargin > 1) ? Fsprintf (args, 1) : args) (0);
 
   if (arg.is_defined ())
     {
--- a/src/expm.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/expm.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -36,7 +36,7 @@
 DEFUN_DLD_BUILTIN (expm, args, ,
   "expm (X): matrix exponential, e^A")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -46,7 +46,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int nr = arg.rows ();
   int nc = arg.columns ();
--- a/src/fft.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/fft.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -38,7 +38,7 @@
 DEFUN_DLD_BUILTIN (fft, args, ,
   "fft (X [, N]): fast fourier transform of a vector")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -48,7 +48,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int n_points = arg.rows ();
   if (n_points == 1)
--- a/src/fft2.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/fft2.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -40,7 +40,7 @@
 \n\
 two dimensional fast fourier transform of a vector")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -50,7 +50,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int n_rows = arg.rows ();
   if (nargin > 1)
--- a/src/filter.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/filter.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -166,7 +166,7 @@
 The particular algorithm employed is known as a transposed Direct Form II\n\
 implementation.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin  = args.length ();
 
@@ -199,7 +199,7 @@
 	      ComplexColumnVector y (filter (b, a, x));
 
 	      if (x_is_vector)
-		retval (0) = tree_constant (y, (args(2).columns () == 1));
+		retval (0) = octave_value (y, (args(2).columns () == 1));
 	      else
 		retval (0) = y;
 	    }
@@ -212,12 +212,12 @@
 		  ComplexColumnVector y (filter (b, a, x, si));
 
 		  if (si_is_vector)
-		    retval (1) = tree_constant (si, (args(3).columns () == 1));
+		    retval (1) = octave_value (si, (args(3).columns () == 1));
 		  else
 		    retval (1) = si;
 
 		  if (x_is_vector)
-		    retval (0) = tree_constant (y, (args(2).columns () == 1));
+		    retval (0) = octave_value (y, (args(2).columns () == 1));
 		  else
 		    retval (0) = y;
 		}
@@ -241,7 +241,7 @@
 	      ColumnVector y (filter (b, a, x));
 
 	      if (x_is_vector)
-		retval (0) = tree_constant (y, (args(2).columns () == 1));
+		retval (0) = octave_value (y, (args(2).columns () == 1));
 	      else
 		retval (0) = y;
 	    }
@@ -254,12 +254,12 @@
 		  ColumnVector y (filter (b, a, x, si));
 
 		  if (si_is_vector)
-		    retval (1) = tree_constant (si, (args(3).columns () == 1));
+		    retval (1) = octave_value (si, (args(3).columns () == 1));
 		  else
 		    retval (1) = si;
 
 		  if (x_is_vector)
-		    retval (0) = tree_constant (y, (args(2).columns () == 1));
+		    retval (0) = octave_value (y, (args(2).columns () == 1));
 		  else
 		    retval (0) = y;
 		}
--- a/src/find.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/find.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -30,11 +30,11 @@
 #include "help.h"
 #include "oct-obj.h"
 
-static Octave_object
+static octave_value_list
 find_to_fortran_idx (const ColumnVector i_idx, const ColumnVector j_idx,
-		     const tree_constant& val, int nr, int nargout)
+		     const octave_value& val, int nr, int nargout)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   switch (nargout)
     {
@@ -49,7 +49,7 @@
 	// If the original argument was a row vector, force a row
 	// vector of indices to be returned.
 
-	retval(0) = tree_constant (tmp, (nr != 1));
+	retval(0) = octave_value (tmp, (nr != 1));
       }
       break;
 
@@ -58,12 +58,12 @@
       // Fall through!
 
     case 2:
-      retval(1) = tree_constant (j_idx, 1);
-      retval(0) = tree_constant (i_idx, 1);
+      retval(1) = octave_value (j_idx, 1);
+      retval(0) = octave_value (i_idx, 1);
 
       // If you want this to work more like Matlab, use
       //
-      //    retval(0) = tree_constant (i_idx, (nr != 1));
+      //    retval(0) = octave_value (i_idx, (nr != 1));
       //
       // instead of the previous statement.
 
@@ -77,7 +77,7 @@
   return retval;
 }
 
-static Octave_object
+static octave_value_list
 find_nonzero_elem_idx (const Matrix& m, int nargout)
 {
   int count = 0;
@@ -90,7 +90,7 @@
       if (m.elem (i, j) != 0.0)
 	count++;
 
-  Octave_object retval (((nargout == 0) ? 1 : nargout), Matrix ());
+  octave_value_list retval (((nargout == 0) ? 1 : nargout), Matrix ());
 
   if (count == 0)
     return retval;
@@ -113,11 +113,11 @@
 	  }
       }
 
-  tree_constant tmp (v, 1);
+  octave_value tmp (v, 1);
   return find_to_fortran_idx (i_idx, j_idx, tmp, m_nr, nargout);
 }
 
-static Octave_object
+static octave_value_list
 find_nonzero_elem_idx (const ComplexMatrix& m, int nargout)
 {
   int count = 0;
@@ -130,7 +130,7 @@
       if (m.elem (i, j) != 0.0)
 	count++;
 
-  Octave_object retval (((nargout == 0) ? 1 : nargout), Matrix ());
+  octave_value_list retval (((nargout == 0) ? 1 : nargout), Matrix ());
 
   if (count == 0)
     return retval;
@@ -153,14 +153,14 @@
 	  }
       }
 
-  tree_constant tmp (v, 1);
+  octave_value tmp (v, 1);
   return find_to_fortran_idx (i_idx, j_idx, tmp, m_nr, nargout);
 }
 
 DEFUN_DLD_BUILTIN (find, args, nargout,
   "find (X) or [I, J, V] = find (X): Return indices of nonzero elements")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -170,7 +170,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   if (arg.is_real_type ())
     {
--- a/src/fsolve.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/fsolve.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -85,7 +85,7 @@
 
   int n = x.capacity ();
 
-  Octave_object args;
+  octave_value_list args;
   args.resize (1);
 
   if (n > 1)
@@ -93,19 +93,19 @@
       Matrix m (n, 1);
       for (int i = 0; i < n; i++)
 	m (i, 0) = x.elem (i);
-      tree_constant vars (m);
+      octave_value vars (m);
       args(0) = vars;
     }
   else
     {
       double d = x.elem (0);
-      tree_constant vars (d);
+      octave_value vars (d);
       args(0) = vars;
     }
 
   if (fsolve_fcn)
     {
-      Octave_object tmp = fsolve_fcn->eval (0, 1, args);
+      octave_value_list tmp = fsolve_fcn->eval (0, 1, args);
       if (tmp.length () > 0 && tmp(0).is_defined ())
 	{
 	  retval = tmp(0).vector_value ();
@@ -132,7 +132,7 @@
 \n\
 where y and x are vectors.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -260,10 +260,10 @@
   warning ("fsolve_options: no match for `%s'", keyword.c_str ());
 }
 
-static Octave_object
+static octave_value_list
 show_fsolve_option (const string& keyword)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   NLEQN_OPTIONS *list = fsolve_option_table;
 
@@ -288,7 +288,7 @@
 Set or show options for fsolve.  Keywords may be abbreviated\n\
 to the shortest match.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/fsqp.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/fsqp.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -80,7 +80,7 @@
 
 */
 
-  Octave_object retval;
+  octave_value_list retval;
 
   error ("fsqp: not implemented yet");
 
@@ -100,7 +100,7 @@
 to the shortest match.")
 #endif
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   error ("fsqp_options: not implemented yet");
 
--- a/src/givens.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/givens.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -39,7 +39,7 @@
 \n\
 [c, s] = givens (x, y) returns the (c, s) values themselves.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/gripes.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/gripes.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -123,19 +123,19 @@
 }
 
 void
-gripe_wrong_type_arg (const char *name, const tree_constant& tc)
+gripe_wrong_type_arg (const char *name, const octave_value& tc)
 {
   error ("%s: wrong type argument `%s'", name, tc.type_as_string ());
 }
 
 void
-gripe_wrong_type_arg_for_unary_op (const tree_constant& op)
+gripe_wrong_type_arg_for_unary_op (const octave_value& op)
 {
   error ("invalid operand `%s' for unary operator", op.type_as_string ());
 }
 
 void
-gripe_wrong_type_arg_for_binary_op (const tree_constant& op)
+gripe_wrong_type_arg_for_binary_op (const octave_value& op)
 {
   error ("invalid operand `%s' for binary operator", op.type_as_string ());
 }
--- a/src/gripes.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/gripes.h	Thu Apr 25 05:55:19 1996 +0000
@@ -23,7 +23,7 @@
 #if !defined (octave_gripes_h)
 #define octave_gripes_h 1
 
-class tree_constant;
+class octave_value;
 
 extern void gripe_not_supported (void);
 extern void gripe_string_invalid (void);
@@ -40,9 +40,9 @@
 extern void gripe_unrecognized_float_fmt (void);
 extern void gripe_unrecognized_data_fmt (const char *warn_for);
 extern void gripe_data_conversion (const char *from, const char *to);
-extern void gripe_wrong_type_arg (const char *name, const tree_constant& tc);
-extern void gripe_wrong_type_arg_for_unary_op (const tree_constant& op);
-extern void gripe_wrong_type_arg_for_binary_op (const tree_constant& op);
+extern void gripe_wrong_type_arg (const char *name, const octave_value& tc);
+extern void gripe_wrong_type_arg_for_unary_op (const octave_value& op);
+extern void gripe_wrong_type_arg_for_binary_op (const octave_value& op);
 
 #endif
 
--- a/src/help.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/help.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -677,7 +677,7 @@
 print cryptic yet witty messages")
 #endif
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -710,7 +710,7 @@
 \n\
 display the definition of each NAME that refers to a function")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   begin_unwind_frame ("Ftype");
 
@@ -782,14 +782,14 @@
 
 		  assert (defn && defn->is_constant ());
 
-		  tree_constant *tmp = (tree_constant *) defn;
+		  octave_value *tmp = (octave_value *) defn;
 
 		  int var_ok = 1;
 		  if (tmp && tmp->is_map ())
 		    {
 		      if (! elts.empty ())
 			{
-			  tree_constant ult =
+			  octave_value ult =
 			    tmp->lookup_map_element (elts, 0, 1);
 
 			  if (! ult.is_defined ())
@@ -857,7 +857,7 @@
 display the type of each NAME.  If NAME is defined from an function\n\
 file, print the full name of the file.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
--- a/src/hess.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/hess.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -38,7 +38,7 @@
 DEFUN_DLD_BUILTIN (hess, args, nargout,
   "[P, H] = hess (A) or H = hess (A): Hessenberg decomposition")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -48,7 +48,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int nr = arg.rows ();
   int nc = arg.columns ();
@@ -58,7 +58,7 @@
   if (arg_is_empty < 0)
     return retval;
   else if (arg_is_empty > 0)
-    return Octave_object (2, Matrix ());
+    return octave_value_list (2, Matrix ());
 
   if (nr != nc)
     {
--- a/src/ifft.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/ifft.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -38,7 +38,7 @@
 DEFUN_DLD_BUILTIN (ifft, args, ,
   "ifft (X [, N]): inverse fast fourier transform of a vector")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -48,7 +48,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
     
   int n_points = arg.rows ();
   if (n_points == 1)
--- a/src/ifft2.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/ifft2.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -40,7 +40,7 @@
 \n\
 two dimensional inverse fast fourier transform of a vector") 
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -50,7 +50,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int n_rows = arg.rows ();
   if (nargin > 1)
--- a/src/input.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/input.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -661,9 +661,9 @@
     {
       tree_fvc *tmp_fvc = sr->def ();
 
-      tree_constant *def = 0;
+      octave_value *def = 0;
       if (tmp_fvc->is_constant ())
-	def = (tree_constant *) tmp_fvc;
+	def = (octave_value *) tmp_fvc;
 
       if (def && def->is_map ())
 	{
@@ -671,7 +671,7 @@
 
 	  if (elts && *elts)
 	    {
-	      tree_constant ult = def->lookup_map_element (elts, 0, 1);
+	      octave_value ult = def->lookup_map_element (elts, 0, 1);
 
 	      if (ult.is_map ())
 		{
@@ -756,15 +756,15 @@
     {
       tree_fvc *tmp_fvc = sr->def ();
 
-      tree_constant *def = 0;
+      octave_value *def = 0;
       if (tmp_fvc->is_constant ())
-	def = (tree_constant *) tmp_fvc;
+	def = (octave_value *) tmp_fvc;
 
       if (def && def->is_map ())
 	{
 	  if (elts && *elts)
 	    {
-	      tree_constant ult = def->lookup_map_element (elts, 0, 1);
+	      octave_value ult = def->lookup_map_element (elts, 0, 1);
 
 	      if (ult.is_map ())
 		retval = 1;
@@ -1003,10 +1003,10 @@
 
 // If the user simply hits return, this will produce an empty matrix.
 
-static Octave_object
-get_user_input (const Octave_object& args, int debug = 0)
+static octave_value_list
+get_user_input (const octave_value_list& args, int debug = 0)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nargin = args.length ();
 
@@ -1092,7 +1092,7 @@
 Prompt user for input.  If the second argument is present, return
 value as a string.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -1109,7 +1109,7 @@
 \n\
 maybe help in debugging function files")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -1132,7 +1132,7 @@
 \n\
 Without any arguments, toggle the current echo state.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
--- a/src/inv.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/inv.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -35,7 +35,7 @@
 DEFUN_DLD_BUILTIN (inv, args, ,
   "inv (X): inverse of a square matrix")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -45,7 +45,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int nr = arg.rows ();
   int nc = arg.columns ();
--- a/src/load-save.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/load-save.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -79,7 +79,7 @@
 // Assumes TC is defined.
 
 static void
-install_loaded_variable (int force, char *name, const tree_constant& tc,
+install_loaded_variable (int force, char *name, const octave_value& tc,
 			 int global, char *doc)
 {
   // Is there already a symbol by this name?  If so, what is it?
@@ -197,7 +197,7 @@
 
   if (sr)
     {
-      tree_constant *tmp_tc = new tree_constant (tc);
+      octave_value *tmp_tc = new octave_value (tc);
       sr->define (tmp_tc);
       if (doc)
 	sr->document (doc);
@@ -435,7 +435,7 @@
 
 static char *
 read_ascii_data (istream& is, const string& filename, int& global,
-		 tree_constant& tc)
+		 octave_value& tc)
 {
   // Read name for this entry or break on EOF.
 
@@ -699,7 +699,7 @@
 static char *
 read_binary_data (istream& is, int swap, floating_point_format fmt,
 		  const string& filename, int& global,
-		  tree_constant& tc, char *&doc)
+		  octave_value& tc, char *&doc)
 {
   char tmp = 0;
 
@@ -1057,7 +1057,7 @@
 
 static char *
 read_mat_binary_data (istream& is, const string& filename,
-		      tree_constant& tc)
+		      octave_value& tc)
 {
   // These are initialized here instead of closer to where they are
   // first used to avoid errors from gcc about goto crossing
@@ -1256,20 +1256,20 @@
   return retval;
 }
 
-static Octave_object
+static octave_value_list
 do_load (istream& stream, const string& orig_fname, int force,
 	 load_save_format format, floating_point_format flt_fmt,
 	 int list_only, int swap, int verbose, const string_vector& argv,
 	 int argv_idx, int argc, int nargout)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   ostrstream output_buf;
   int count = 0;
   for (;;)
     {
       int global = 0;
-      tree_constant tc;
+      octave_value tc;
 
       char *name = 0;
       char *doc = 0;
@@ -1376,7 +1376,7 @@
 If the option -force is given, variables with the same names as those
 found in the file will be replaced with the values read from the file.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -1569,7 +1569,7 @@
 // binary format described above for read_binary_data.
 
 static int
-save_binary_data (ostream& os, const tree_constant& tc,
+save_binary_data (ostream& os, const octave_value& tc,
 		  const string& name, const string& doc,
 		  int mark_as_global, int save_as_floats) 
 {
@@ -1711,7 +1711,7 @@
 // in the MatLab binary format.
 
 static int
-save_mat_binary_data (ostream& os, const tree_constant& tc,
+save_mat_binary_data (ostream& os, const octave_value& tc,
 		      const string& name) 
 {
   int fail = 0;
@@ -1889,7 +1889,7 @@
 // XXX FIXME XXX -- should probably write the help string here too.
 
 int
-save_ascii_data (ostream& os, const tree_constant& tc,
+save_ascii_data (ostream& os, const octave_value& tc,
 		 const string& name, int strip_nan_and_inf,
 		 int mark_as_global, int precision) 
 {
@@ -2028,7 +2028,7 @@
   string name = sr->name ();
   string help = sr->help ();
   int global = sr->is_linked_to_global ();
-  tree_constant tc = *((tree_constant *) sr->def ());
+  octave_value tc = *((octave_value *) sr->def ());
 
   if (tc.is_undefined ())
     return;
@@ -2183,7 +2183,7 @@
 \n\
 save variables in a file")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -2246,7 +2246,7 @@
       i++;
 
       // XXX FIXME XXX -- should things intended for the screen end up
-      // in a tree_constant (string)?
+      // in a octave_value (string)?
 
       ostrstream buf;
 
@@ -2297,7 +2297,7 @@
 // nonzero, assume a parametric 3-dimensional plot will be generated.
 
 int
-save_three_d (ostream& os, const tree_constant& tc, int parametric)
+save_three_d (ostream& os, const octave_value& tc, int parametric)
 {
   int fail = 0;
 
--- a/src/load-save.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/load-save.h	Thu Apr 25 05:55:19 1996 +0000
@@ -25,16 +25,16 @@
 
 class ostream;
 
-class tree_constant;
+class octave_value;
 
 #include <string>
 
-extern int save_ascii_data (ostream& os, const tree_constant& t,
+extern int save_ascii_data (ostream& os, const octave_value& t,
 			    const string& name = string (),
 			    int strip_nan_and_inf = 0,
 			    int mark_as_global = 0, int precision = 0);
 
-extern int save_three_d (ostream& os, const tree_constant& t,
+extern int save_three_d (ostream& os, const octave_value& t,
 			 int parametric = 0);
 
 extern void save_user_variables (void);
--- a/src/log.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/log.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -40,7 +40,7 @@
 DEFUN_DLD_BUILTIN (logm, args, ,
   "logm (X): matrix logarithm")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -50,7 +50,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int arg_is_empty = empty_arg ("logm", arg.rows (), arg.columns ());
 
@@ -152,7 +152,7 @@
 DEFUN_DLD_BUILTIN (sqrtm, args, ,
  "sqrtm (X): matrix sqrt")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -162,7 +162,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int arg_is_empty = empty_arg ("sqrtm", arg.rows (), arg.columns ());
 
--- a/src/lpsolve.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/lpsolve.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -34,7 +34,7 @@
 DEFUN_DLD_BUILTIN (lp_solve, , ,
   "lp_solve (): solve linear programs using lp_solve.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   // Force a bad value of inform, and empty matrices for x and phi.
 
@@ -54,7 +54,7 @@
 Set or show options for lp_solve.  Keywords may be abbreviated\n\
 to the shortest match.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   error ("lp_solve_options: not implemented yet");
 
--- a/src/lsode.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/lsode.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -51,7 +51,7 @@
 
   int nstates = x.capacity ();
 
-  Octave_object args;
+  octave_value_list args;
   args(1) = t;
 
   if (nstates > 1)
@@ -59,19 +59,19 @@
       Matrix m (nstates, 1);
       for (int i = 0; i < nstates; i++)
 	m (i, 0) = x.elem (i);
-      tree_constant state (m);
+      octave_value state (m);
       args(0) = state;
     }
   else
     {
       double d = x.elem (0);
-      tree_constant state (d);
+      octave_value state (d);
       args(0) = state;
     }
 
   if (lsode_fcn)
     {
-      Octave_object tmp = lsode_fcn->eval (0, 1, args);
+      octave_value_list tmp = lsode_fcn->eval (0, 1, args);
 
       if (error_state)
 	{
@@ -103,7 +103,7 @@
 \n\
 where xdot and x are vectors and t is a scalar.\n")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -275,10 +275,10 @@
   warning ("lsode_options: no match for `%s'", keyword.c_str ());
 }
 
-static Octave_object
+static octave_value_list
 show_lsode_option (const string& keyword)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   LSODE_OPTIONS *list = lsode_option_table;
 
@@ -303,7 +303,7 @@
 Set or show options for lsode.  Keywords may be abbreviated\n\
 to the shortest match.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/lu.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/lu.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -38,7 +38,7 @@
 DEFUN_DLD_BUILTIN (lu, args, nargout,
   "[L, U, P] = lu (A): LU factorization")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -48,7 +48,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int nr = arg.rows ();
   int nc = arg.columns ();
@@ -58,7 +58,7 @@
   if (arg_is_empty < 0)
     return retval;
   else if (arg_is_empty > 0)
-    return Octave_object (3, Matrix ());
+    return octave_value_list (3, Matrix ());
 
   if (nr != nc)
     {
--- a/src/minmax.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/minmax.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -364,7 +364,7 @@
 DEFUN_DLD_BUILTIN (min, args, nargout,
   "min (X): minimum value(s) of a vector (matrix)")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -374,8 +374,8 @@
       return retval;
     }
 
-  tree_constant arg1;
-  tree_constant arg2;
+  octave_value arg1;
+  octave_value arg2;
 
   switch (nargin)
     {
@@ -411,7 +411,7 @@
 	      if (m.rows () == 1)
 		retval(0) = m.row_min ();
 	      else
-		retval(0) = tree_constant (m.column_min (), 0);
+		retval(0) = octave_value (m.column_min (), 0);
 	    }
 	}
       else if (arg1.is_complex_type ())
@@ -423,7 +423,7 @@
 	      if (m.rows () == 1)
 		retval(0) = m.row_min ();
 	      else
-		retval(0) = tree_constant (m.column_min (), 0);
+		retval(0) = octave_value (m.column_min (), 0);
 	    }
 	}
       else
@@ -457,8 +457,8 @@
 		}
 	      else
 		{
-		  retval(1) = tree_constant (m.column_min_loc (), 0);
-		  retval(0) = tree_constant (m.column_min (), 0);
+		  retval(1) = octave_value (m.column_min_loc (), 0);
+		  retval(0) = octave_value (m.column_min (), 0);
 		}
 	    }
 	}
@@ -475,8 +475,8 @@
 		}
 	      else
 		{
-		  retval(1) = tree_constant (m.column_min_loc (), 0);
-		  retval(0) = tree_constant (m.column_min (), 0);
+		  retval(1) = octave_value (m.column_min_loc (), 0);
+		  retval(0) = octave_value (m.column_min (), 0);
 		}
 	    }
 	}
@@ -592,7 +592,7 @@
 DEFUN_DLD_BUILTIN (max, args, nargout,
   "max (X): maximum value(s) of a vector (matrix)")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -602,8 +602,8 @@
       return retval;
     }
 
-  tree_constant arg1;
-  tree_constant arg2;
+  octave_value arg1;
+  octave_value arg2;
 
   switch (nargin)
     {
@@ -639,7 +639,7 @@
 	      if (m.rows () == 1)
 		retval(0) = m.row_max ();
 	      else
-		retval(0) = tree_constant (m.column_max (), 0);
+		retval(0) = octave_value (m.column_max (), 0);
 	    }
 	}
       else if (arg1.is_complex_type ())
@@ -651,7 +651,7 @@
 	      if (m.rows () == 1)
 		retval(0) = m.row_max ();
 	      else
-		retval(0) = tree_constant (m.column_max (), 0);
+		retval(0) = octave_value (m.column_max (), 0);
 	    }
 	}
       else
@@ -685,8 +685,8 @@
 		}
 	      else
 		{
-		  retval(1) = tree_constant (m.column_max_loc (), 0);
-		  retval(0) = tree_constant (m.column_max (), 0);
+		  retval(1) = octave_value (m.column_max_loc (), 0);
+		  retval(0) = octave_value (m.column_max (), 0);
 		}
 	    }
 	}
@@ -703,8 +703,8 @@
 		}
 	      else
 		{
-		  retval(1) = tree_constant (m.column_max_loc (), 0);
-		  retval(0) = tree_constant (m.column_max (), 0);
+		  retval(1) = octave_value (m.column_max_loc (), 0);
+		  retval(0) = octave_value (m.column_max (), 0);
 		}
 	    }
 	}
--- a/src/npsol.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/npsol.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -53,7 +53,7 @@
 {
   int n = x.capacity ();
 
-  tree_constant decision_vars;
+  octave_value decision_vars;
   if (n > 1)
     {
       Matrix m (n, 1);
@@ -67,16 +67,16 @@
       decision_vars = d;
     }
 
-  Octave_object args;
+  octave_value_list args;
   args(0) = decision_vars;
 
   static double retval;
   retval = 0.0;
 
-  tree_constant objective_value;
+  octave_value objective_value;
   if (npsol_objective)
     {
-      Octave_object tmp = npsol_objective->eval (0, 1, args);
+      octave_value_list tmp = npsol_objective->eval (0, 1, args);
 
       if (error_state)
 	{
@@ -126,7 +126,7 @@
 
   int n = x.capacity ();
 
-  tree_constant decision_vars;
+  octave_value decision_vars;
   if (n > 1)
     {
       Matrix m (n, 1);
@@ -140,12 +140,12 @@
       decision_vars = d;
     }
 
-  Octave_object args;
+  octave_value_list args;
   args(0) = decision_vars;
 
   if (npsol_constraints)
     {
-      Octave_object tmp = npsol_constraints->eval (0, 1, args);
+      octave_value_list tmp = npsol_constraints->eval (0, 1, args);
 
       if (error_state)
 	{
@@ -272,7 +272,7 @@
 
 */
 
-  Octave_object retval;
+  octave_value_list retval;
 
 #if defined (NPSOL_MISSING)
 
@@ -744,10 +744,10 @@
   warning ("npsol_options: no match for `%s'", keyword.c_str ());
 }
 
-static Octave_object
+static octave_value_list
 show_npsol_option (const string& keyword)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   NPSOL_OPTIONS *list = npsol_option_table;
 
@@ -784,7 +784,7 @@
 to the shortest match.")
 #endif
 {
-  Octave_object retval;
+  octave_value_list retval;
 
 #if defined (NPSOL_MISSING)
 
--- a/src/oct-hist.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/oct-hist.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -521,7 +521,7 @@
 \n\
 edit commands from the history list")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -540,7 +540,7 @@
 \n\
 display, save, or load command history")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -559,7 +559,7 @@
 \n\
 run commands from the history list")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
--- a/src/oct-map.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/oct-map.h	Thu Apr 25 05:55:19 1996 +0000
@@ -34,18 +34,18 @@
 class string_vector;
 
 class
-Octave_map : public CHMap<tree_constant>
+Octave_map : public CHMap<octave_value>
 {
  public:
-  Octave_map (void) : CHMap<tree_constant> (tree_constant ()) { }
+  Octave_map (void) : CHMap<octave_value> (octave_value ()) { }
 
-  Octave_map (const string& key, const tree_constant& value)
-    : CHMap<tree_constant> (tree_constant ())
+  Octave_map (const string& key, const octave_value& value)
+    : CHMap<octave_value> (octave_value ())
       {
-	CHMap<tree_constant>::operator [] (key) = value;
+	CHMap<octave_value>::operator [] (key) = value;
       }
 
-  Octave_map (const Octave_map& m) : CHMap<tree_constant> (m) { }
+  Octave_map (const Octave_map& m) : CHMap<octave_value> (m) { }
 
   ~Octave_map (void) { }
 
--- a/src/oct-obj.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/oct-obj.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -32,7 +32,7 @@
 #include "oct-obj.h"
 
 int
-Octave_object::all_strings (void) const
+octave_value_list::all_strings (void) const
 {
   int n = length ();
 
@@ -44,7 +44,7 @@
 }
 
 string_vector
-Octave_object::make_argv (const string& fcn_name) const
+octave_value_list::make_argv (const string& fcn_name) const
 {
   string_vector argv;
 
--- a/src/oct-obj.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/oct-obj.h	Thu Apr 25 05:55:19 1996 +0000
@@ -38,80 +38,80 @@
 #include "pt-const.h"
 
 class
-Octave_object : public Array<tree_constant>
+octave_value_list : public Array<octave_value>
 {
 public:
 
-  Octave_object (void)
-    : Array<tree_constant> () { }
+  octave_value_list (void)
+    : Array<octave_value> () { }
 
-  Octave_object (int n, const tree_constant& val)
-    : Array<tree_constant> (n, val) { }
+  octave_value_list (int n, const octave_value& val)
+    : Array<octave_value> (n, val) { }
 
-  Octave_object (const tree_constant& tc)
-    : Array<tree_constant> (1, tc) { }
+  octave_value_list (const octave_value& tc)
+    : Array<octave_value> (1, tc) { }
 
-  Octave_object (double d)
-    : Array<tree_constant> (1, tree_constant (d)) { }
+  octave_value_list (double d)
+    : Array<octave_value> (1, octave_value (d)) { }
 
-  Octave_object (const Matrix& m)
-    : Array<tree_constant> (1, tree_constant (m)) { }
+  octave_value_list (const Matrix& m)
+    : Array<octave_value> (1, octave_value (m)) { }
 
-  Octave_object (const DiagMatrix& d)
-    : Array<tree_constant> (1, tree_constant (d)) { }
+  octave_value_list (const DiagMatrix& d)
+    : Array<octave_value> (1, octave_value (d)) { }
 
-  Octave_object (const RowVector& v, int pcv)
-    : Array<tree_constant> (1, tree_constant (v, pcv)) { }
+  octave_value_list (const RowVector& v, int pcv)
+    : Array<octave_value> (1, octave_value (v, pcv)) { }
 
-  Octave_object (const ColumnVector& v, int pcv)
-    : Array<tree_constant> (1, tree_constant (v, pcv)) { }
+  octave_value_list (const ColumnVector& v, int pcv)
+    : Array<octave_value> (1, octave_value (v, pcv)) { }
 
-  Octave_object (const Complex& c)
-    : Array<tree_constant> (1, tree_constant (c)) { }
+  octave_value_list (const Complex& c)
+    : Array<octave_value> (1, octave_value (c)) { }
 
-  Octave_object (const ComplexMatrix& m)
-    : Array<tree_constant> (1, tree_constant (m)) { }
+  octave_value_list (const ComplexMatrix& m)
+    : Array<octave_value> (1, octave_value (m)) { }
 
-  Octave_object (const ComplexDiagMatrix& d)
-    : Array<tree_constant> (1, tree_constant (d)) { }
+  octave_value_list (const ComplexDiagMatrix& d)
+    : Array<octave_value> (1, octave_value (d)) { }
 
-  Octave_object (const ComplexRowVector& v, int pcv)
-    : Array<tree_constant> (1, tree_constant (v, pcv)) { }
+  octave_value_list (const ComplexRowVector& v, int pcv)
+    : Array<octave_value> (1, octave_value (v, pcv)) { }
 
-  Octave_object (const ComplexColumnVector& v, int pcv)
-    : Array<tree_constant> (1, tree_constant (v, pcv)) { }
+  octave_value_list (const ComplexColumnVector& v, int pcv)
+    : Array<octave_value> (1, octave_value (v, pcv)) { }
 
-  Octave_object (const char *s)
-    : Array<tree_constant> (1, tree_constant (s)) { }
+  octave_value_list (const char *s)
+    : Array<octave_value> (1, octave_value (s)) { }
 
-  Octave_object (const string& s)
-    : Array<tree_constant> (1, tree_constant (s)) { }
+  octave_value_list (const string& s)
+    : Array<octave_value> (1, octave_value (s)) { }
 
-  Octave_object (const string_vector& s)
-    : Array<tree_constant> (1, tree_constant (s)) { }
+  octave_value_list (const string_vector& s)
+    : Array<octave_value> (1, octave_value (s)) { }
 
-  Octave_object (double base, double limit, double inc)
-    : Array<tree_constant> (1, tree_constant (base, limit, inc)) { }
+  octave_value_list (double base, double limit, double inc)
+    : Array<octave_value> (1, octave_value (base, limit, inc)) { }
 
-  Octave_object (const Range& r)
-    : Array<tree_constant> (1, tree_constant (r)) { }
+  octave_value_list (const Range& r)
+    : Array<octave_value> (1, octave_value (r)) { }
 
-  Octave_object (const Octave_object& obj)
-    : Array<tree_constant> (obj) { }
+  octave_value_list (const octave_value_list& obj)
+    : Array<octave_value> (obj) { }
 
-  Octave_object& operator = (const Octave_object& obj)
+  octave_value_list& operator = (const octave_value_list& obj)
     {
       if (this != &obj)
-	Array<tree_constant>::operator = (obj);
+	Array<octave_value>::operator = (obj);
 
       return *this;
     }
 
 // Assignment will resize on range errors.
 
-  tree_constant& operator () (int n) { return elem (n); }
+  octave_value& operator () (int n) { return elem (n); }
 
-  tree_constant operator () (int n) const { return elem (n); }
+  octave_value operator () (int n) const { return elem (n); }
 
   int all_strings (void) const;
 
@@ -122,17 +122,17 @@
 // This constructor is private with no definition to keep statements
 // like
 //
-//   Octave_object foo = 5;
-//   Octave_object foo = 5.0;
+//   octave_value_list foo = 5;
+//   octave_value_list foo = 5.0;
 //
 // from doing different things.  Instead, you have to use the
 // constructor
 //
-//   Octave_object (n, val);
+//   octave_value_list (n, val);
 //
-// and supply a default value to create a vector-valued Octave_object.
+// and supply a default value to create a vector-valued octave_value_list.
 
-  Octave_object (int n);
+  octave_value_list (int n);
 
   void maybe_resize (int n)
     {
@@ -140,22 +140,22 @@
 	resize (n + 1, Matrix ());
     }
 
-  tree_constant& elem (int n)
+  octave_value& elem (int n)
     {
       maybe_resize (n);
-      return Array<tree_constant>::elem (n);
+      return Array<octave_value>::elem (n);
     }
 
-  tree_constant& checkelem (int n);
+  octave_value& checkelem (int n);
 
-  tree_constant& xelem (int n);
+  octave_value& xelem (int n);
 
-  tree_constant elem (int n) const
+  octave_value elem (int n) const
     {
-      return Array<tree_constant>::operator () (n);
+      return Array<octave_value>::operator () (n);
     }
 
-  tree_constant checkelem (int n) const;
+  octave_value checkelem (int n) const;
 };
 
 #endif
--- a/src/pager.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pager.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -204,7 +204,7 @@
 \n\
 redirect all input and screen output to a file.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -256,7 +256,7 @@
 \n\
 Turn output pagination on or off.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
--- a/src/parse.y	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/parse.y	Thu Apr 25 05:55:19 1996 +0000
@@ -97,7 +97,7 @@
 static tree_expression *finish_colon_expression (tree_colon_expression *e);
 
 // Build a constant.
-static tree_constant *make_constant (int op, token *tok_val);
+static octave_value *make_constant (int op, token *tok_val);
 
 // Build a binary expression.
 static tree_expression *make_binary_op
@@ -221,7 +221,7 @@
   tree_matrix *tree_matrix_type;
   tree_matrix_row *tree_matrix_row_type;
   tree_expression *tree_expression_type;
-  tree_constant *tree_constant_type;
+  octave_value *octave_value_type;
   tree_identifier *tree_identifier_type;
   tree_indirect_ref *tree_indirect_ref_type;
   tree_function *tree_function_type;
@@ -773,9 +773,9 @@
 		| matrix
 		  { $$ = $1; }
 		| '[' ']'
-		  { $$ = new tree_constant (Matrix ()); }
+		  { $$ = new octave_value (Matrix ()); }
 		| '[' ';' ']'
-		  { $$ = new tree_constant (Matrix ()); }
+		  { $$ = new octave_value (Matrix ()); }
 		| colon_expr
 		  { $$ = finish_colon_expression ($1); }
 		| PLUS_PLUS identifier %prec UNARY
@@ -870,12 +870,12 @@
 
 word_list	: TEXT
 		  {
-		    tree_constant *tmp = make_constant (TEXT, $1);
+		    octave_value *tmp = make_constant (TEXT, $1);
 		    $$ = new tree_argument_list (tmp);
 		  }
 		| word_list TEXT
 		  {
-		    tree_constant *tmp = make_constant (TEXT, $2);
+		    octave_value *tmp = make_constant (TEXT, $2);
 		    $1->append (tmp);
 		    $$ = $1;
 		  }
@@ -1070,25 +1070,25 @@
 
 arg_list	: ':'
 		  {
-		    tree_constant *colon;
-		    tree_constant::magic_colon t;
-		    colon = new tree_constant (t);
+		    octave_value *colon;
+		    octave_value::magic_colon t;
+		    colon = new octave_value (t);
 		    $$ = new tree_argument_list (colon);
 		  }
 		| expression
 		  { $$ = new tree_argument_list ($1); }
 		| ALL_VA_ARGS
 		  {
-		    tree_constant *all_va_args;
-		    tree_constant::all_va_args t;
-		    all_va_args = new tree_constant (t);
+		    octave_value *all_va_args;
+		    octave_value::all_va_args t;
+		    all_va_args = new octave_value (t);
 		    $$ = new tree_argument_list (all_va_args);
 		  }
 		| arg_list ',' ':'
 		  {
-		    tree_constant *colon;
-		    tree_constant::magic_colon t;
-		    colon = new tree_constant (t);
+		    octave_value *colon;
+		    octave_value::magic_colon t;
+		    colon = new octave_value (t);
 		    $1->append (colon);
 		    $$ = $1;
 		  }
@@ -1099,9 +1099,9 @@
 		  }
 		| arg_list ',' ALL_VA_ARGS
 		  {
-		    tree_constant *all_va_args;
-		    tree_constant::all_va_args t;
-		    all_va_args = new tree_constant (t);
+		    octave_value *all_va_args;
+		    octave_value::all_va_args t;
+		    all_va_args = new octave_value (t);
 		    $1->append (all_va_args);
 		    $$ = $1;
 		  }
@@ -1370,12 +1370,12 @@
 
   if (e->is_range_constant ())
     {
-      tree_constant tmp = e->eval (0);
+      octave_value tmp = e->eval (0);
 
       delete e;
 
       if (! error_state)
-	retval = new tree_constant (tmp);
+	retval = new octave_value (tmp);
     }
   else
     retval = e;
@@ -1385,31 +1385,31 @@
 
 // Make a constant.
 
-static tree_constant *
+static octave_value *
 make_constant (int op, token *tok_val)
 {
   int l = tok_val->line ();
   int c = tok_val->column ();
 
-  tree_constant *retval;
+  octave_value *retval;
 
   switch (op)
     {
     case NUM:
-      retval = new tree_constant (tok_val->number (), l, c);
+      retval = new octave_value (tok_val->number (), l, c);
       retval->stash_original_text (tok_val->text_rep ());
       break;
 
     case IMAG_NUM:
       {
 	Complex C (0.0, tok_val->number ());
-	retval = new tree_constant (C, l, c);
+	retval = new octave_value (C, l, c);
 	retval->stash_original_text (tok_val->text_rep ());
       }
       break;
 
     case TEXT:
-      retval = new tree_constant (tok_val->text (), l, c);
+      retval = new octave_value (tok_val->text (), l, c);
       break;
 
     default:
@@ -1524,13 +1524,13 @@
 
   if (op1->is_constant () && op2->is_constant ())
     {
-      tree_constant tmp = retval->eval (0);
+      octave_value tmp = retval->eval (0);
 
       delete retval;
       retval = 0;
 
       if (! error_state)
-	retval = new tree_constant (tmp);
+	retval = new octave_value (tmp);
     }
 
   return retval;
@@ -1629,13 +1629,13 @@
 
   if (op1->is_constant ())
     {
-      tree_constant tmp = retval->eval (0);
+      octave_value tmp = retval->eval (0);
 
       delete retval;
       retval = 0;
 
       if (! error_state)
-	retval = new tree_constant (tmp);
+	retval = new octave_value (tmp);
     }
 
   return retval;
@@ -2042,12 +2042,12 @@
 
   if (m->is_matrix_constant ())
     {
-      tree_constant tmp = m->eval (0);
+      octave_value tmp = m->eval (0);
 
       delete m;
 
       if (! error_state)
-	retval = new tree_constant (tmp);
+	retval = new octave_value (tmp);
     }
   else
     retval = m;
--- a/src/pinv.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pinv.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -36,7 +36,7 @@
   "pinv ( [, tol])\n\
 Returns the pseudoinverse of X; singular values less than tol are ignored.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -46,7 +46,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   double tol = 0.0;
   if (nargin == 2)
--- a/src/pr-output.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pr-output.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -1573,7 +1573,7 @@
 DEFUN (disp, args, ,
   "disp (X): display value without name tag")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -1600,12 +1600,12 @@
 static void
 set_output_prec_and_fw (int prec, int fw)
 {
-  tree_constant *tmp = 0;
+  octave_value *tmp = 0;
 
-  tmp = new tree_constant ((double) prec);
+  tmp = new octave_value ((double) prec);
   bind_builtin_variable ("output_precision", tmp);
 
-  tmp = new tree_constant ((double) fw);
+  tmp = new octave_value ((double) fw);
   bind_builtin_variable ("output_max_field_width", tmp);
 }
 
@@ -1738,7 +1738,7 @@
 \n\
 set output formatting style")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
--- a/src/pt-cmd.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-cmd.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -211,7 +211,7 @@
 
 inline void
 tree_for_command::do_for_loop_once (tree_return_list *lst,
-				    const Octave_object& rhs, bool& quit)
+				    const octave_value_list& rhs, bool& quit)
 {
   quit = false;
 
@@ -241,11 +241,11 @@
 
 inline void
 tree_for_command::do_for_loop_once (tree_index_expression *idx_expr,
-				    const tree_constant& rhs, bool& quit)
+				    const octave_value& rhs, bool& quit)
 {
   quit = false;
 
-  tree_constant *tmp = new tree_constant (rhs);
+  octave_value *tmp = new octave_value (rhs);
   tree_simple_assignment_expression tmp_ass (idx_expr, tmp, true);
   tmp_ass.eval (false);
 
@@ -271,7 +271,7 @@
 
 inline void
 tree_for_command::do_for_loop_once (tree_identifier *ident,
-				    tree_constant& rhs, bool& quit)
+				    octave_value& rhs, bool& quit)
 {
   quit = false;
 
@@ -303,7 +303,7 @@
       if (ident) \
 	for (int i = 0; i < steps; i++) \
 	  { \
-	    tree_constant rhs (val); \
+	    octave_value rhs (val); \
 	    bool quit = false; \
 	    do_for_loop_once (ident, rhs, quit); \
 	    if (quit) \
@@ -312,7 +312,7 @@
       else if (id_list) \
 	for (int i = 0; i < steps; i++) \
 	  { \
-	    Octave_object rhs (val); \
+	    octave_value_list rhs (val); \
 	    bool quit = false; \
 	    do_for_loop_once (id_list, rhs, quit); \
 	    if (quit) \
@@ -321,7 +321,7 @@
       else \
 	for (int i = 0; i < steps; i++) \
 	  { \
-	    tree_constant rhs (val); \
+	    octave_value rhs (val); \
 	    bool quit = false; \
 	    do_for_loop_once (tmp_id, rhs, quit); \
 	    if (quit) \
@@ -336,7 +336,7 @@
   if (error_state || ! expr)
     return;
 
-  tree_constant tmp_expr = expr->eval (false);
+  octave_value tmp_expr = expr->eval (false);
 
   if (error_state || tmp_expr.is_undefined ())
     {
@@ -369,7 +369,7 @@
 	do_for_loop_once (ident, tmp_expr, quit);
       else if (id_list)
 	{
-	  Octave_object rhs (tmp_expr);
+	  octave_value_list rhs (tmp_expr);
 	  do_for_loop_once (id_list, rhs, quit);
 	}
       else
@@ -427,7 +427,7 @@
 	    {
 	      double tmp_val = b + i * increment;
 
-	      tree_constant rhs (tmp_val);
+	      octave_value rhs (tmp_val);
 
 	      bool quit = false;
 	      do_for_loop_once (ident, rhs, quit);
@@ -442,7 +442,7 @@
 	    {
 	      double tmp_val = b + i * increment;
 
-	      Octave_object rhs (tmp_val);
+	      octave_value_list rhs (tmp_val);
 
 	      bool quit = false;
 	      do_for_loop_once (id_list, rhs, quit);
@@ -457,7 +457,7 @@
 	    {
 	      double tmp_val = b + i * increment;
 
-	      tree_constant rhs (tmp_val);
+	      octave_value rhs (tmp_val);
 
 	      bool quit = false;
 	      do_for_loop_once (tmp_id, rhs, quit);
@@ -475,7 +475,7 @@
 
 	  for (Pix p = tmp_val.first (); p != 0; tmp_val.next (p))
 	    {
-	      tree_constant rhs (tmp_val.contents (p));
+	      octave_value rhs (tmp_val.contents (p));
 
 	      bool quit = false;
 	      do_for_loop_once (ident, rhs, quit);
@@ -494,7 +494,7 @@
 
 	  for (Pix p = tmp_val.first (); p != 0; tmp_val.next (p))
 	    {
-	      Octave_object tmp;
+	      octave_value_list tmp;
 	      tmp (1) = tmp_val.key (p);
 	      tmp (0) = tmp_val.contents (p);
 
@@ -511,7 +511,7 @@
 
 	  for (Pix p = tmp_val.first (); p != 0; tmp_val.next (p))
 	    {
-	      tree_constant rhs = tmp_val.contents (p);
+	      octave_value rhs = tmp_val.contents (p);
 
 	      bool quit = false;
 	      do_for_loop_once (tmp_id, rhs, quit);
--- a/src/pt-cmd.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-cmd.h	Thu Apr 25 05:55:19 1996 +0000
@@ -29,7 +29,7 @@
 
 class ostream;
 
-class Octave_object;
+class octave_value_list;
 
 class tree_statement_list;
 class tree_global_init_list;
@@ -38,7 +38,7 @@
 class tree_index_expression;
 class tree_identifier;
 class tree_return_list;
-class tree_constant;
+class octave_value;
 class symbol_record;
 
 class tree_command;
@@ -145,13 +145,13 @@
 
 private:
   void do_for_loop_once (tree_return_list *lst,
-			 const Octave_object& rhs, bool& quit);
+			 const octave_value_list& rhs, bool& quit);
 
   void do_for_loop_once (tree_index_expression *idx_expr,
-			 const tree_constant& rhs, bool& quit);
+			 const octave_value& rhs, bool& quit);
 
   void do_for_loop_once (tree_identifier *ident,
-			 tree_constant& rhs, bool& quit);
+			 octave_value& rhs, bool& quit);
 
   tree_index_expression *id;	// Identifier to modify.
   tree_return_list *id_list;	// List of identifiers to modify.
--- a/src/pt-const.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-const.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -59,16 +59,16 @@
 #include "utils.h"
 #include "variables.h"
 
-#ifndef TC_REP
-#define TC_REP tree_constant::tree_constant_rep
+#ifndef OCT_VAL_REP
+#define OCT_VAL_REP octave_value::octave_value_rep
 #endif
 
 #ifndef MAX
 #define MAX(a,b) ((a) > (b) ? (a) : (b))
 #endif
 
-#ifndef TC_REP
-#define TC_REP tree_constant::tree_constant_rep
+#ifndef OCT_VAL_REP
+#define OCT_VAL_REP octave_value::octave_value_rep
 #endif
 
 #ifndef MAX
@@ -76,10 +76,10 @@
 #endif
 
 // The following three variables could be made static members of the
-// TC_REP class.
+// OCT_VAL_REP class.
 
 // Pointer to the blocks of memory we manage.
-static TC_REP *tc_rep_newlist = 0;
+static OCT_VAL_REP *tc_rep_newlist = 0;
 
 // Multiplier for allocating new blocks.
 static const int tc_rep_newlist_grow_size = 128;
@@ -114,24 +114,24 @@
 }
 
 // The following three variables could be made static members of the
-// tree_constant class.
+// octave_value class.
 
 // Pointer to the blocks of memory we manage.
-static tree_constant *tc_newlist = 0;
+static octave_value *tc_newlist = 0;
 
 // Multiplier for allocating new blocks.
 static const int tc_newlist_grow_size = 128;
 
 Octave_map
-tree_constant::map_value (void) const
+octave_value::map_value (void) const
 {
   return rep->map_value ();
 }
 
-tree_constant::~tree_constant (void)
+octave_value::~octave_value (void)
 {
 #if defined (MDEBUG)
-  cerr << "~tree_constant: rep: " << rep
+  cerr << "~octave_value: rep: " << rep
        << " rep->count: " << rep->count << "\n";
 #endif
 
@@ -143,14 +143,14 @@
 }
 
 void *
-tree_constant::operator new (size_t size)
+octave_value::operator new (size_t size)
 {
-  assert (size == sizeof (tree_constant));
+  assert (size == sizeof (octave_value));
 
   if (! tc_newlist)
     {
-      int block_size = tc_newlist_grow_size * sizeof (tree_constant);
-      tc_newlist = (tree_constant *) new char [block_size];
+      int block_size = tc_newlist_grow_size * sizeof (octave_value);
+      tc_newlist = (octave_value *) new char [block_size];
 
       int i = 0;
 
@@ -160,23 +160,23 @@
       tc_newlist[i].freeptr = 0;
     }
 
-  tree_constant *tmp = tc_newlist;
+  octave_value *tmp = tc_newlist;
   tc_newlist = tc_newlist->freeptr;
   return tmp;
 }
 
 void
-tree_constant::operator delete (void *p, size_t /* size */)
+octave_value::operator delete (void *p, size_t /* size */)
 {
-  tree_constant *tmp = (tree_constant *) p;
+  octave_value *tmp = (octave_value *) p;
   tmp->freeptr = tc_newlist;
   tc_newlist = tmp;
 }
 
 // Simple assignment.
 
-tree_constant
-tree_constant::operator = (const tree_constant& a)
+octave_value
+octave_value::operator = (const octave_value& a)
 {
   if (rep != a.rep)
     {
@@ -188,11 +188,11 @@
   return *this;  
 }
 
-tree_constant
-tree_constant::lookup_map_element (const string& ref, bool insert,
+octave_value
+octave_value::lookup_map_element (const string& ref, bool insert,
 				   bool silent)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (! ref.empty ())
     {
@@ -218,13 +218,13 @@
   return retval;
 }
 
-tree_constant
-tree_constant::lookup_map_element (SLList<string>& list, bool insert,
+octave_value
+octave_value::lookup_map_element (SLList<string>& list, bool insert,
 				   bool silent)
 {
-  tree_constant retval;
-
-  tree_constant_rep *tmp_rep = rep;
+  octave_value retval;
+
+  octave_value_rep *tmp_rep = rep;
 
   Pix p = list.first ();
   while (p)
@@ -233,7 +233,7 @@
 
       list.next (p);
 
-      tree_constant tmp;
+      octave_value tmp;
 
       tmp = tmp_rep->lookup_map_element (elt, insert, silent);
 
@@ -250,7 +250,7 @@
 }
 
 void
-tree_constant::print (void)
+octave_value::print (void)
 {
   ostrstream output_buf;
   print (output_buf);
@@ -259,7 +259,7 @@
 }
 
 void
-tree_constant::print_with_name (const string& name, bool print_padding)
+octave_value::print_with_name (const string& name, bool print_padding)
 {
   ostrstream output_buf;
   print_with_name (output_buf, name, print_padding);
@@ -268,7 +268,7 @@
 }
 
 void
-tree_constant::print_with_name (ostream& output_buf, const string& name,
+octave_value::print_with_name (ostream& output_buf, const string& name,
 				bool print_padding) 
 {
   bool pad_after = false;
@@ -298,12 +298,12 @@
 // Simple structure assignment.
 
 void
-tree_constant::make_unique (void)
+octave_value::make_unique (void)
 {
   if (rep->count > 1)
     {
       --rep->count;
-      rep = new tree_constant_rep (*rep);
+      rep = new octave_value_rep (*rep);
       rep->count = 1;
     }
 
@@ -316,8 +316,8 @@
     }
 }
 
-tree_constant::tree_constant_rep *
-tree_constant::make_unique_map (void)
+octave_value::octave_value_rep *
+octave_value::make_unique_map (void)
 {
   if (! rep->is_map ())
     {
@@ -325,7 +325,7 @@
 	delete rep;
 
       Octave_map m;
-      rep = new tree_constant_rep (m);
+      rep = new octave_value_rep (m);
       rep->count = 1;
     }
 
@@ -334,11 +334,11 @@
   return rep;
 }
 
-tree_constant
-tree_constant::assign_map_element (SLList<string>& list,
-				   tree_constant& rhs)
+octave_value
+octave_value::assign_map_element (SLList<string>& list,
+				   octave_value& rhs)
 {
-  tree_constant_rep *tmp_rep = make_unique_map ();
+  octave_value_rep *tmp_rep = make_unique_map ();
 
   if (rhs.is_map ())
     rhs.make_unique ();
@@ -350,7 +350,7 @@
 
       list.next (p);
 
-      tree_constant& tmp = tmp_rep->lookup_map_element (elt, 1);
+      octave_value& tmp = tmp_rep->lookup_map_element (elt, 1);
 
       if (! p)
 	{
@@ -361,17 +361,17 @@
       tmp_rep = tmp.make_unique_map ();
     }
 
-  return tree_constant ();
+  return octave_value ();
 }
 
 // Indexed structure assignment.
 
-tree_constant
-tree_constant::assign_map_element (SLList<string>& list,
-				   tree_constant& rhs,
-				   const Octave_object& args)
+octave_value
+octave_value::assign_map_element (SLList<string>& list,
+				   octave_value& rhs,
+				   const octave_value_list& args)
 {
-  tree_constant_rep *tmp_rep = make_unique_map ();
+  octave_value_rep *tmp_rep = make_unique_map ();
 
   if (rhs.is_map ())
     rhs.make_unique ();
@@ -383,7 +383,7 @@
 
       list.next (p);
 
-      tree_constant& tmp = tmp_rep->lookup_map_element (elt, 1);
+      octave_value& tmp = tmp_rep->lookup_map_element (elt, 1);
 
       if (! p)
 	{
@@ -394,13 +394,13 @@
       tmp_rep = tmp.make_unique_map ();
     }
 
-  return tree_constant ();
+  return octave_value ();
 }
 
-Octave_object
-tree_constant::eval (bool print, int, const Octave_object& args)
+octave_value_list
+octave_value::eval (bool print, int, const octave_value_list& args)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (args.length () > 0)
     retval(0) = rep->do_index (args);
@@ -414,7 +414,7 @@
 }
 
 void
-tree_constant::print_code (ostream& os)
+octave_value::print_code (ostream& os)
 {
   print_code_indent (os);
 
@@ -430,18 +430,18 @@
 
 // The real representation of constants.
 
-TC_REP::tree_constant_rep (void)
+OCT_VAL_REP::octave_value_rep (void)
 {
   type_tag = unknown_constant;
 }
 
-TC_REP::tree_constant_rep (double d)
+OCT_VAL_REP::octave_value_rep (double d)
 {
   scalar = d;
   type_tag = scalar_constant;
 }
 
-TC_REP::tree_constant_rep (const Matrix& m)
+OCT_VAL_REP::octave_value_rep (const Matrix& m)
 {
   if (m.rows () == 1 && m.columns () == 1)
     {
@@ -455,7 +455,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const DiagMatrix& d)
+OCT_VAL_REP::octave_value_rep (const DiagMatrix& d)
 {
   if (d.rows () == 1 && d.columns () == 1)
     {
@@ -469,7 +469,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const RowVector& v, int prefer_column_vector)
+OCT_VAL_REP::octave_value_rep (const RowVector& v, int prefer_column_vector)
 {
   int len = v.capacity ();
   if (len == 1)
@@ -502,7 +502,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const ColumnVector& v, int prefer_column_vector)
+OCT_VAL_REP::octave_value_rep (const ColumnVector& v, int prefer_column_vector)
 {
   int len = v.capacity ();
   if (len == 1)
@@ -535,7 +535,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const Complex& c)
+OCT_VAL_REP::octave_value_rep (const Complex& c)
 {
   if (::imag (c) == 0.0)
     {
@@ -549,7 +549,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const ComplexMatrix& m)
+OCT_VAL_REP::octave_value_rep (const ComplexMatrix& m)
 {
   if (m.rows () == 1 && m.columns () == 1)
     {
@@ -573,7 +573,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const ComplexDiagMatrix& d)
+OCT_VAL_REP::octave_value_rep (const ComplexDiagMatrix& d)
 {
   if (d.rows () == 1 && d.columns () == 1)
     {
@@ -597,7 +597,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const ComplexRowVector& v,
+OCT_VAL_REP::octave_value_rep (const ComplexRowVector& v,
 			   int prefer_column_vector) 
 {
   int len = v.capacity ();
@@ -641,7 +641,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const ComplexColumnVector& v, int
+OCT_VAL_REP::octave_value_rep (const ComplexColumnVector& v, int
 			   prefer_column_vector)
 {
   int len = v.capacity ();
@@ -685,19 +685,19 @@
     }
 }
 
-TC_REP::tree_constant_rep (const char *s)
+OCT_VAL_REP::octave_value_rep (const char *s)
 {
   char_matrix = new charMatrix (s);
   type_tag = char_matrix_constant_str;
 }
 
-TC_REP::tree_constant_rep (const string& s)
+OCT_VAL_REP::octave_value_rep (const string& s)
 {
   char_matrix = new charMatrix (s);
   type_tag = char_matrix_constant_str;
 }
 
-TC_REP::tree_constant_rep (const string_vector& s)
+OCT_VAL_REP::octave_value_rep (const string_vector& s)
 {
   int nr = s.length ();
   int nc = s.max_length ();
@@ -711,13 +711,13 @@
   type_tag = char_matrix_constant_str;
 }
 
-TC_REP::tree_constant_rep (const charMatrix& chm, bool is_str)
+OCT_VAL_REP::octave_value_rep (const charMatrix& chm, bool is_str)
 {
   char_matrix = new charMatrix (chm);
   type_tag = is_str ? char_matrix_constant_str : char_matrix_constant;
 }
 
-TC_REP::tree_constant_rep (double b, double l, double i)
+OCT_VAL_REP::octave_value_rep (double b, double l, double i)
 {
   range = new Range (b, l, i);
   int nel = range->nelem ();
@@ -747,7 +747,7 @@
     }
 }
 
-TC_REP::tree_constant_rep (const Range& r)
+OCT_VAL_REP::octave_value_rep (const Range& r)
 {
   int nel = r.nelem ();
   if (nel > 1)
@@ -775,19 +775,19 @@
     }
 }
 
-TC_REP::tree_constant_rep (const Octave_map& m)
+OCT_VAL_REP::octave_value_rep (const Octave_map& m)
 {
   a_map = new Octave_map (m);
   type_tag = map_constant;
 }
 
-TC_REP::tree_constant_rep (TC_REP::constant_type t)
+OCT_VAL_REP::octave_value_rep (OCT_VAL_REP::constant_type t)
 {
   assert (t == magic_colon || t == all_va_args);
   type_tag = t;
 }
 
-TC_REP::tree_constant_rep (const tree_constant_rep& t)
+OCT_VAL_REP::octave_value_rep (const octave_value_rep& t)
 {
   type_tag = t.type_tag;
 
@@ -836,7 +836,7 @@
   orig_text = t.orig_text;
 }
 
-TC_REP::~tree_constant_rep (void)
+OCT_VAL_REP::~octave_value_rep (void)
 {
   switch (type_tag)
     {
@@ -874,14 +874,14 @@
 }
 
 void *
-TC_REP::operator new (size_t size)
+OCT_VAL_REP::operator new (size_t size)
 {
-  assert (size == sizeof (TC_REP));
+  assert (size == sizeof (OCT_VAL_REP));
 
   if (! tc_rep_newlist)
     {
-      int block_size = tc_rep_newlist_grow_size * sizeof (TC_REP);
-      tc_rep_newlist = (TC_REP *) new char [block_size];
+      int block_size = tc_rep_newlist_grow_size * sizeof (OCT_VAL_REP);
+      tc_rep_newlist = (OCT_VAL_REP *) new char [block_size];
 
       int i = 0;
 
@@ -891,21 +891,21 @@
       tc_rep_newlist[i].freeptr = 0;
     }
 
-  TC_REP *tmp = tc_rep_newlist;
+  OCT_VAL_REP *tmp = tc_rep_newlist;
   tc_rep_newlist = tc_rep_newlist->freeptr;
   return tmp;
 }
 
 void
-TC_REP::operator delete (void *p, size_t /* size */)
+OCT_VAL_REP::operator delete (void *p, size_t /* size */)
 {
-  TC_REP *tmp = (TC_REP *) p;
+  OCT_VAL_REP *tmp = (OCT_VAL_REP *) p;
   tmp->freeptr = tc_rep_newlist;
   tc_rep_newlist = tmp;
 }
 
 int
-TC_REP::rows (void) const
+OCT_VAL_REP::rows (void) const
 {
   int retval = -1;
 
@@ -941,7 +941,7 @@
 }
 
 int
-TC_REP::columns (void) const
+OCT_VAL_REP::columns (void) const
 {
   int retval = -1;
 
@@ -976,17 +976,17 @@
   return retval;
 }
 
-tree_constant
-TC_REP::all (void) const
+octave_value
+OCT_VAL_REP::all (void) const
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
 
   if (! is_numeric_type ())
     {
-      tree_constant tmp = make_numeric ();
+      octave_value tmp = make_numeric ();
 
       if (error_state)
 	return retval;
@@ -1020,17 +1020,17 @@
   return retval;
 }
 
-tree_constant
-TC_REP::any (void) const
+octave_value
+OCT_VAL_REP::any (void) const
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
 
   if (! is_numeric_type ())
     {
-      tree_constant tmp = make_numeric ();
+      octave_value tmp = make_numeric ();
 
       if (error_state)
 	return retval;
@@ -1065,7 +1065,7 @@
 }
 
 bool
-TC_REP::valid_as_scalar_index (void) const
+OCT_VAL_REP::valid_as_scalar_index (void) const
 {
   return (type_tag == magic_colon
 	  || (type_tag == scalar_constant 
@@ -1078,7 +1078,7 @@
 }
 
 bool
-TC_REP::valid_as_zero_index (void) const
+OCT_VAL_REP::valid_as_zero_index (void) const
 {
   return ((type_tag == scalar_constant
 	   && ! xisnan (scalar)
@@ -1093,7 +1093,7 @@
 }
 
 bool
-TC_REP::is_true (void) const
+OCT_VAL_REP::is_true (void) const
 {
   int retval = false;
 
@@ -1102,7 +1102,7 @@
 
   if (! is_numeric_type ())
     {
-      tree_constant tmp = make_numeric ();
+      octave_value tmp = make_numeric ();
 
       if (error_state)
 	return retval;
@@ -1155,7 +1155,7 @@
 // XXX FIXME XXX -- we need a better way of handling conversions.
 
 double
-TC_REP::double_value (bool force_string_conv) const
+OCT_VAL_REP::double_value (bool force_string_conv) const
 {
   double retval = octave_NaN;
 
@@ -1251,7 +1251,7 @@
 }
 
 Matrix
-TC_REP::matrix_value (bool force_string_conv) const
+OCT_VAL_REP::matrix_value (bool force_string_conv) const
 {
   Matrix retval;
 
@@ -1319,7 +1319,7 @@
 }
 
 Complex
-TC_REP::complex_value (bool force_string_conv) const
+OCT_VAL_REP::complex_value (bool force_string_conv) const
 {
   Complex retval (octave_NaN, octave_NaN);
 
@@ -1397,7 +1397,7 @@
 }
 
 ComplexMatrix
-TC_REP::complex_matrix_value (bool force_string_conv) const
+OCT_VAL_REP::complex_matrix_value (bool force_string_conv) const
 {
   ComplexMatrix retval;
 
@@ -1454,7 +1454,7 @@
 // XXX FIXME XXX -- this needs to try to do some conversions...
 
 charMatrix
-TC_REP::char_matrix_value (bool force_string_conv) const
+OCT_VAL_REP::char_matrix_value (bool force_string_conv) const
 {
   charMatrix retval;
 
@@ -1479,7 +1479,7 @@
 }
 
 charMatrix
-TC_REP::all_strings (void) const
+OCT_VAL_REP::all_strings (void) const
 {
   if (type_tag == char_matrix_constant_str)
     return *char_matrix;
@@ -1491,7 +1491,7 @@
 }
 
 string
-TC_REP::string_value (void) const
+OCT_VAL_REP::string_value (void) const
 {
   string retval;
 
@@ -1504,23 +1504,23 @@
 }
 
 Range
-TC_REP::range_value (void) const
+OCT_VAL_REP::range_value (void) const
 {
   assert (type_tag == range_constant);
   return *range;
 }
 
 Octave_map
-TC_REP::map_value (void) const
+OCT_VAL_REP::map_value (void) const
 {
   assert (type_tag == map_constant);
   return *a_map;
 }
 
-tree_constant&
-TC_REP::lookup_map_element (const string& name, bool insert, bool silent)
+octave_value&
+OCT_VAL_REP::lookup_map_element (const string& name, bool insert, bool silent)
 {
-  static tree_constant retval;
+  static octave_value retval;
 
   if (type_tag == map_constant)
     {
@@ -1543,7 +1543,7 @@
 // than relying on matrix_value() to do any possible type conversions.
 
 ColumnVector
-TC_REP::vector_value (bool force_string_conv,
+OCT_VAL_REP::vector_value (bool force_string_conv,
 		      bool force_vector_conversion) const
 {
   ColumnVector retval;
@@ -1587,7 +1587,7 @@
 // conversions.
 
 ComplexColumnVector
-TC_REP::complex_vector_value (bool force_string_conv,
+OCT_VAL_REP::complex_vector_value (bool force_string_conv,
 			      bool force_vector_conversion) const
 {
   ComplexColumnVector retval;
@@ -1626,10 +1626,10 @@
   return retval;
 }
 
-tree_constant
-TC_REP::convert_to_str (void) const
+octave_value
+OCT_VAL_REP::convert_to_str (void) const
 {
-  tree_constant retval;
+  octave_value retval;
 
   switch (type_tag)
     {
@@ -1651,7 +1651,7 @@
 	    char s[2];
 	    s[0] = (char) i;
 	    s[1] = '\0';
-	    retval = tree_constant (s, 1);
+	    retval = octave_value (s, 1);
 	  }
       }
       break;
@@ -1662,7 +1662,7 @@
 	if (rows () == 0 && columns () == 0)
 	  {
 	    char s = '\0';
-	    retval = tree_constant (&s, 1);
+	    retval = octave_value (&s, 1);
 	  }
 	else
 	  {
@@ -1674,7 +1674,7 @@
 	    if (nr == 0 || nc == 0)
 	      {
 		char s = '\0';
-		retval = tree_constant (&s, 1);
+		retval = octave_value (&s, 1);
 	      }
 	    else
 	      {
@@ -1702,7 +1702,7 @@
 		      }
 		  }
 
-		retval = tree_constant (chm, 1);
+		retval = octave_value (chm, 1);
 	      }
 	  }
       }
@@ -1735,17 +1735,17 @@
 		s[i] = (char) ival;
 	      }
 	  }
-	retval = tree_constant (s, 1);
+	retval = octave_value (s, 1);
 	delete [] s;
       }
       break;
 
     case char_matrix_constant:
-      retval = tree_constant (*char_matrix, 1);
+      retval = octave_value (*char_matrix, 1);
       break;
 
     case char_matrix_constant_str:
-      retval = tree_constant (*char_matrix, 1);
+      retval = octave_value (*char_matrix, 1);
       break;
 
     default:
@@ -1757,7 +1757,7 @@
 }
 
 void
-TC_REP::convert_to_row_or_column_vector (void)
+OCT_VAL_REP::convert_to_row_or_column_vector (void)
 {
   assert (type_tag == matrix_constant || type_tag == complex_matrix_constant);
 
@@ -1816,7 +1816,7 @@
 }
 
 void
-TC_REP::convert_to_matrix_type (bool make_complex)
+OCT_VAL_REP::convert_to_matrix_type (bool make_complex)
 {
   switch (type_tag)
     {
@@ -1885,7 +1885,7 @@
 }
 
 void
-TC_REP::force_numeric (bool force_string_conv)
+OCT_VAL_REP::force_numeric (bool force_string_conv)
 {
   switch (type_tag)
     {
@@ -1971,10 +1971,10 @@
     }
 }
 
-tree_constant
-TC_REP::make_numeric (bool force_string_conv) const
+octave_value
+OCT_VAL_REP::make_numeric (bool force_string_conv) const
 {
-  tree_constant retval;
+  octave_value retval;
 
   switch (type_tag)
     {
@@ -2031,7 +2031,7 @@
 }
 
 void
-TC_REP::bump_value (tree_expression::type etype)
+OCT_VAL_REP::bump_value (tree_expression::type etype)
 {
   switch (etype)
     {
@@ -2094,7 +2094,7 @@
 }
 
 void
-TC_REP::resize (int i, int j)
+OCT_VAL_REP::resize (int i, int j)
 {
   switch (type_tag)
     {
@@ -2113,7 +2113,7 @@
 }
 
 void
-TC_REP::resize (int i, int j, double val)
+OCT_VAL_REP::resize (int i, int j, double val)
 {
   switch (type_tag)
     {
@@ -2132,13 +2132,13 @@
 }
 
 void
-TC_REP::stash_original_text (const string &s)
+OCT_VAL_REP::stash_original_text (const string &s)
 {
   orig_text = s;
 }
 
 void
-TC_REP::maybe_mutate (void)
+OCT_VAL_REP::maybe_mutate (void)
 {
   switch (type_tag)
     {
@@ -2216,7 +2216,7 @@
 }
 
 void
-TC_REP::print (ostream& output_buf)
+OCT_VAL_REP::print (ostream& output_buf)
 {
   if (error_state)
     return;
@@ -2261,7 +2261,7 @@
 	// standard order.  Maybe all substructures first, maybe
 	// alphabetize entries, etc.
 
-	begin_unwind_frame ("TC_REP_print");
+	begin_unwind_frame ("OCT_VAL_REP_print");
 
 	unwind_protect_int (struct_indent);
 	unwind_protect_int (user_pref.struct_levels_to_print);
@@ -2279,7 +2279,7 @@
 		bool pad_after = false;
 
 		string key = a_map->key (p);
-		tree_constant val = a_map->contents (p);
+		octave_value val = a_map->contents (p);
 
 		a_map->next (p);
 
@@ -2314,7 +2314,7 @@
 	else
 	  output_buf << " <structure>\n";
 
-	run_unwind_frame ("TC_REP_print");
+	run_unwind_frame ("OCT_VAL_REP_print");
       }
       break;
 
@@ -2327,7 +2327,7 @@
 }
 
 void
-TC_REP::print_code (ostream& os)
+OCT_VAL_REP::print_code (ostream& os)
 {
   switch (type_tag)
     {
@@ -2390,8 +2390,8 @@
 }
 
 void
-TC_REP::gripe_wrong_type_arg (const char *name,
-			      const tree_constant_rep& tcr) const
+OCT_VAL_REP::gripe_wrong_type_arg (const char *name,
+			      const octave_value_rep& tcr) const
 {
   if (name)
     ::error ("%s: wrong type argument `%s'", name, tcr.type_as_string ());
@@ -2400,7 +2400,7 @@
 }
 
 char *
-TC_REP::type_as_string (void) const
+OCT_VAL_REP::type_as_string (void) const
 {
   switch (type_tag)
     {
@@ -2433,10 +2433,10 @@
     }
 }
 
-tree_constant
-do_binary_op (tree_constant& a, tree_constant& b, tree_expression::type t)
+octave_value
+do_binary_op (octave_value& a, octave_value& b, tree_expression::type t)
 {
-  tree_constant retval;
+  octave_value retval;
 
   bool first_empty = (a.rows () == 0 || a.columns () == 0);
   bool second_empty = (b.rows () == 0 || b.columns () == 0);
@@ -2453,18 +2453,18 @@
 	}
     }
 
-  tree_constant tmp_a = a.make_numeric ();
+  octave_value tmp_a = a.make_numeric ();
 
   if (error_state)
     return retval;
 
-  tree_constant tmp_b = b.make_numeric ();
+  octave_value tmp_b = b.make_numeric ();
 
   if (error_state)
     return retval;
 
-  TC_REP::constant_type a_type = tmp_a.const_type ();
-  TC_REP::constant_type b_type = tmp_b.const_type ();
+  OCT_VAL_REP::constant_type a_type = tmp_a.const_type ();
+  OCT_VAL_REP::constant_type b_type = tmp_b.const_type ();
 
   double d1, d2;
   Matrix m1, m2;
@@ -2473,29 +2473,29 @@
 
   switch (a_type)
     {
-    case TC_REP::scalar_constant:
+    case OCT_VAL_REP::scalar_constant:
 
       d1 = tmp_a.double_value ();
 
       switch (b_type)
 	{
-	case TC_REP::scalar_constant:
+	case OCT_VAL_REP::scalar_constant:
 	  d2 = tmp_b.double_value ();
 	  retval = do_binary_op (d1, d2, t);
 	  break;
 
-	case TC_REP::matrix_constant:
-	case TC_REP::char_matrix_constant:
+	case OCT_VAL_REP::matrix_constant:
+	case OCT_VAL_REP::char_matrix_constant:
 	  m2 = tmp_b.matrix_value ();
 	  retval = do_binary_op (d1, m2, t);
 	  break;
 
-	case TC_REP::complex_scalar_constant:
+	case OCT_VAL_REP::complex_scalar_constant:
 	  c2 = tmp_b.complex_value ();
 	  retval = do_binary_op (d1, c2, t);
 	  break;
 
-	case TC_REP::complex_matrix_constant:
+	case OCT_VAL_REP::complex_matrix_constant:
 	  cm2 = tmp_b.complex_matrix_value ();
 	  retval = do_binary_op (d1, cm2, t);
 	  break;
@@ -2506,30 +2506,30 @@
 	}
       break;
 
-    case TC_REP::matrix_constant:
-    case TC_REP::char_matrix_constant:
+    case OCT_VAL_REP::matrix_constant:
+    case OCT_VAL_REP::char_matrix_constant:
 
       m1 = tmp_a.matrix_value ();
 
       switch (b_type)
 	{
-	case TC_REP::scalar_constant:
+	case OCT_VAL_REP::scalar_constant:
 	  d2 = tmp_b.double_value ();
 	  retval = do_binary_op (m1, d2, t);
 	  break;
 
-	case TC_REP::matrix_constant:
-	case TC_REP::char_matrix_constant:
+	case OCT_VAL_REP::matrix_constant:
+	case OCT_VAL_REP::char_matrix_constant:
 	  m2 = tmp_b.matrix_value ();
 	  retval = do_binary_op (m1, m2, t);
 	  break;
 
-	case TC_REP::complex_scalar_constant:
+	case OCT_VAL_REP::complex_scalar_constant:
 	  c2 = tmp_b.complex_value ();
 	  retval = do_binary_op (m1, c2, t);
 	  break;
 
-	case TC_REP::complex_matrix_constant:
+	case OCT_VAL_REP::complex_matrix_constant:
 	  cm2 = tmp_b.complex_matrix_value ();
 	  retval = do_binary_op (m1, cm2, t);
 	  break;
@@ -2540,29 +2540,29 @@
 	}
       break;
 
-    case TC_REP::complex_scalar_constant:
+    case OCT_VAL_REP::complex_scalar_constant:
 
       c1 = tmp_a.complex_value ();
 
       switch (b_type)
 	{
-	case TC_REP::scalar_constant:
+	case OCT_VAL_REP::scalar_constant:
 	  d2 = tmp_b.double_value ();
 	  retval = do_binary_op (c1, d2, t);
 	  break;
 
-	case TC_REP::matrix_constant:
-	case TC_REP::char_matrix_constant:
+	case OCT_VAL_REP::matrix_constant:
+	case OCT_VAL_REP::char_matrix_constant:
 	  m2 = tmp_b.matrix_value ();
 	  retval = do_binary_op (c1, m2, t);
 	  break;
 
-	case TC_REP::complex_scalar_constant:
+	case OCT_VAL_REP::complex_scalar_constant:
 	  c2 = tmp_b.complex_value ();
 	  retval = do_binary_op (c1, c2, t);
 	  break;
 
-	case TC_REP::complex_matrix_constant:
+	case OCT_VAL_REP::complex_matrix_constant:
 	  cm2 = tmp_b.complex_matrix_value ();
 	  retval = do_binary_op (c1, cm2, t);
 	  break;
@@ -2573,29 +2573,29 @@
 	}
       break;
 
-    case TC_REP::complex_matrix_constant:
+    case OCT_VAL_REP::complex_matrix_constant:
 
       cm1 = tmp_a.complex_matrix_value ();
 
       switch (b_type)
 	{
-	case TC_REP::scalar_constant:
+	case OCT_VAL_REP::scalar_constant:
 	  d2 = tmp_b.double_value ();
 	  retval = do_binary_op (cm1, d2, t);
 	  break;
 
-	case TC_REP::matrix_constant:
-	case TC_REP::char_matrix_constant:
+	case OCT_VAL_REP::matrix_constant:
+	case OCT_VAL_REP::char_matrix_constant:
 	  m2 = tmp_b.matrix_value ();
 	  retval = do_binary_op (cm1, m2, t);
 	  break;
 
-	case TC_REP::complex_scalar_constant:
+	case OCT_VAL_REP::complex_scalar_constant:
 	  c2 = tmp_b.complex_value ();
 	  retval = do_binary_op (cm1, c2, t);
 	  break;
 
-	case TC_REP::complex_matrix_constant:
+	case OCT_VAL_REP::complex_matrix_constant:
 	  cm2 = tmp_b.complex_matrix_value ();
 	  retval = do_binary_op (cm1, cm2, t);
 	  break;
@@ -2614,10 +2614,10 @@
   return retval;
 }
 
-tree_constant
-do_unary_op (tree_constant& a, tree_expression::type t)
+octave_value
+do_unary_op (octave_value& a, tree_expression::type t)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (a.rows () == 0 || a.columns () == 0)
     {
@@ -2631,29 +2631,29 @@
 	}
     }
 
-  tree_constant tmp_a = a.make_numeric ();
+  octave_value tmp_a = a.make_numeric ();
 
   if (error_state)
     return retval;
 
   switch (tmp_a.const_type ())
     {
-    case TC_REP::scalar_constant:
+    case OCT_VAL_REP::scalar_constant:
       retval = do_unary_op (tmp_a.double_value (), t);
       break;
 
-    case TC_REP::matrix_constant:
+    case OCT_VAL_REP::matrix_constant:
       {
 	Matrix m = tmp_a.matrix_value ();
 	retval = do_unary_op (m, t);
       }
       break;
 
-    case TC_REP::complex_scalar_constant:
+    case OCT_VAL_REP::complex_scalar_constant:
       retval = do_unary_op (tmp_a.complex_value (), t);
       break;
 
-    case TC_REP::complex_matrix_constant:
+    case OCT_VAL_REP::complex_matrix_constant:
       {
 	ComplexMatrix m = tmp_a.complex_matrix_value ();
 	retval = do_unary_op (m, t);
@@ -2671,7 +2671,7 @@
 // Indexing operations for the tree-constant representation class.
 
 void
-TC_REP::clear_index (void)
+OCT_VAL_REP::clear_index (void)
 {
   switch (type_tag)
     {
@@ -2679,7 +2679,7 @@
       matrix->clear_index ();
       break;
 
-    case TC_REP::complex_matrix_constant:
+    case OCT_VAL_REP::complex_matrix_constant:
       complex_matrix->clear_index ();
       break;
 
@@ -2696,7 +2696,7 @@
 
 #if 0
 void
-TC_REP::set_index (double d)
+OCT_VAL_REP::set_index (double d)
 {
   switch (type_tag)
     {
@@ -2704,12 +2704,12 @@
       matrix->set_index (d);
       break;
 
-    case TC_REP::complex_matrix_constant:
+    case OCT_VAL_REP::complex_matrix_constant:
       complex_matrix->set_index (d);
       break;
 
-    case TC_REP::char_matrix_constant:
-    case TC_REP::char_matrix_constant_str:
+    case OCT_VAL_REP::char_matrix_constant:
+    case OCT_VAL_REP::char_matrix_constant_str:
       char_matrix->set_index (d);
       break;
 
@@ -2721,7 +2721,7 @@
 #endif
 
 void
-TC_REP::set_index (const Range& r)
+OCT_VAL_REP::set_index (const Range& r)
 {
   switch (type_tag)
     {
@@ -2729,12 +2729,12 @@
       matrix->set_index (r);
       break;
 
-    case TC_REP::complex_matrix_constant:
+    case OCT_VAL_REP::complex_matrix_constant:
       complex_matrix->set_index (r);
       break;
 
-    case TC_REP::char_matrix_constant:
-    case TC_REP::char_matrix_constant_str:
+    case OCT_VAL_REP::char_matrix_constant:
+    case OCT_VAL_REP::char_matrix_constant_str:
       char_matrix->set_index (r);
       break;
 
@@ -2745,7 +2745,7 @@
 }
 
 void
-TC_REP::set_index (const ColumnVector& v)
+OCT_VAL_REP::set_index (const ColumnVector& v)
 {
   switch (type_tag)
     {
@@ -2753,12 +2753,12 @@
       matrix->set_index (v);
       break;
 
-    case TC_REP::complex_matrix_constant:
+    case OCT_VAL_REP::complex_matrix_constant:
       complex_matrix->set_index (v);
       break;
 
-    case TC_REP::char_matrix_constant:
-    case TC_REP::char_matrix_constant_str:
+    case OCT_VAL_REP::char_matrix_constant:
+    case OCT_VAL_REP::char_matrix_constant_str:
       char_matrix->set_index (v);
       break;
 
@@ -2769,7 +2769,7 @@
 }
 
 void
-TC_REP::set_index (const Matrix& m)
+OCT_VAL_REP::set_index (const Matrix& m)
 {
   int nr = m.rows ();
   int nc = m.cols ();
@@ -2783,12 +2783,12 @@
 	  matrix->set_index (m);
 	  break;
 
-	case TC_REP::complex_matrix_constant:
+	case OCT_VAL_REP::complex_matrix_constant:
 	  complex_matrix->set_index (m);
 	  break;
 
-	case TC_REP::char_matrix_constant:
-	case TC_REP::char_matrix_constant_str:
+	case OCT_VAL_REP::char_matrix_constant:
+	case OCT_VAL_REP::char_matrix_constant_str:
 	  char_matrix->set_index (m);
 	  break;
 
@@ -2804,7 +2804,7 @@
 // XXX FIXME XXX -- this should probably be handled some other way...
 // The arg here is expected to be ':'.
 void
-TC_REP::set_index (char c)
+OCT_VAL_REP::set_index (char c)
 {
   switch (type_tag)
     {
@@ -2812,12 +2812,12 @@
       matrix->set_index (c);
       break;
 
-    case TC_REP::complex_matrix_constant:
+    case OCT_VAL_REP::complex_matrix_constant:
       complex_matrix->set_index (c);
       break;
 
-    case TC_REP::char_matrix_constant:
-    case TC_REP::char_matrix_constant_str:
+    case OCT_VAL_REP::char_matrix_constant:
+    case OCT_VAL_REP::char_matrix_constant_str:
       char_matrix->set_index (c);
       break;
 
@@ -2828,7 +2828,7 @@
 }
 
 void
-TC_REP::set_index (const Octave_object& args, bool rhs_is_complex)
+OCT_VAL_REP::set_index (const octave_value_list& args, bool rhs_is_complex)
 {
   switch (type_tag)
     {
@@ -2847,7 +2847,7 @@
 
   for (int i = 0; i < n; i++)
     {
-      tree_constant arg = args (i);
+      octave_value arg = args (i);
 
       switch (arg.const_type ())
 	{
@@ -2873,7 +2873,7 @@
 }
 
 static inline bool
-valid_scalar_indices (const Octave_object& args)
+valid_scalar_indices (const octave_value_list& args)
 {
   int nargin = args.length ();
 
@@ -2884,10 +2884,10 @@
   return true;
 }
 
-tree_constant
-TC_REP::do_index (const Octave_object& args)
+octave_value
+OCT_VAL_REP::do_index (const octave_value_list& args)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
@@ -2936,7 +2936,7 @@
 	      break;
 
 	    case char_matrix_constant_str:
-	      retval = tree_constant (charMatrix (char_matrix->value ()), 1);
+	      retval = octave_value (charMatrix (char_matrix->value ()), 1);
 	      break;
 
 	    default:
@@ -2950,7 +2950,7 @@
 }
 
 void
-TC_REP::maybe_widen (TC_REP::constant_type rhs_type)
+OCT_VAL_REP::maybe_widen (OCT_VAL_REP::constant_type rhs_type)
 {
   switch (type_tag)
     {
@@ -3024,13 +3024,13 @@
 extern void assign (Array2<char>&, const Array2<char>&);
 
 void
-TC_REP::assign (tree_constant& rhs, const Octave_object& args)
+OCT_VAL_REP::assign (octave_value& rhs, const octave_value_list& args)
 {
   // XXX FIXME XXX -- we should probably have special cases for rhs
   // being a range type, since converting to a matrix can waste a lot
   // of memory.
 
-  tree_constant rhs_tmp = rhs;
+  octave_value rhs_tmp = rhs;
 
   if (! (is_string ()
 	 && (rhs_tmp.is_string ()
@@ -3147,7 +3147,7 @@
 }
 
 bool
-TC_REP::print_as_scalar (void)
+OCT_VAL_REP::print_as_scalar (void)
 {
   int nr = rows ();
   int nc = columns ();
@@ -3161,7 +3161,7 @@
 }
 
 bool
-TC_REP::print_as_structure (void)
+OCT_VAL_REP::print_as_structure (void)
 {
   return is_map ();
 }
--- a/src/pt-const.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-const.h	Thu Apr 25 05:55:19 1996 +0000
@@ -40,19 +40,19 @@
 #include "pt-fvc.h"
 
 class Octave_map;
-class Octave_object;
+class octave_value_list;
 
 // Constants.
 
 class
-tree_constant : public tree_fvc
+octave_value : public tree_fvc
 {
 private:
 
-// The actual representation of the tree_constant.
+// The actual representation of the octave_value.
 
   class
-  tree_constant_rep
+  octave_value_rep
   {
   public:
 
@@ -78,35 +78,35 @@
 	column_orient,
       };
 
-    tree_constant_rep (void);
+    octave_value_rep (void);
 
-    tree_constant_rep (double d);
-    tree_constant_rep (const Matrix& m);
-    tree_constant_rep (const DiagMatrix& d);
-    tree_constant_rep (const RowVector& v, int pcv);
-    tree_constant_rep (const ColumnVector& v, int pcv);
+    octave_value_rep (double d);
+    octave_value_rep (const Matrix& m);
+    octave_value_rep (const DiagMatrix& d);
+    octave_value_rep (const RowVector& v, int pcv);
+    octave_value_rep (const ColumnVector& v, int pcv);
 
-    tree_constant_rep (const Complex& c);
-    tree_constant_rep (const ComplexMatrix& m);
-    tree_constant_rep (const ComplexDiagMatrix& d);
-    tree_constant_rep (const ComplexRowVector& v, int pcv);
-    tree_constant_rep (const ComplexColumnVector& v, int pcv);
+    octave_value_rep (const Complex& c);
+    octave_value_rep (const ComplexMatrix& m);
+    octave_value_rep (const ComplexDiagMatrix& d);
+    octave_value_rep (const ComplexRowVector& v, int pcv);
+    octave_value_rep (const ComplexColumnVector& v, int pcv);
 
-    tree_constant_rep (const char *s);
-    tree_constant_rep (const string& s);
-    tree_constant_rep (const string_vector& s);
-    tree_constant_rep (const charMatrix& chm, bool is_string);
+    octave_value_rep (const char *s);
+    octave_value_rep (const string& s);
+    octave_value_rep (const string_vector& s);
+    octave_value_rep (const charMatrix& chm, bool is_string);
 
-    tree_constant_rep (double base, double limit, double inc);
-    tree_constant_rep (const Range& r);
+    octave_value_rep (double base, double limit, double inc);
+    octave_value_rep (const Range& r);
 
-    tree_constant_rep (const Octave_map& m);
+    octave_value_rep (const Octave_map& m);
 
-    tree_constant_rep (tree_constant_rep::constant_type t);
+    octave_value_rep (octave_value_rep::constant_type t);
 
-    tree_constant_rep (const tree_constant_rep& t);
+    octave_value_rep (const octave_value_rep& t);
 
-    ~tree_constant_rep (void);
+    ~octave_value_rep (void);
 
     void *operator new (size_t size);
     void operator delete (void *p, size_t size);
@@ -153,8 +153,8 @@
     bool is_all_va_args (void) const
       { return type_tag == all_va_args; }
 
-    tree_constant all (void) const;
-    tree_constant any (void) const;
+    octave_value all (void) const;
+    octave_value any (void) const;
 
     bool is_real_type (void) const
       {
@@ -217,7 +217,7 @@
     Range range_value (void) const;
     Octave_map map_value (void) const;
 
-    tree_constant& lookup_map_element (const string& name,
+    octave_value& lookup_map_element (const string& name,
 				       bool insert = false,
 				       bool silent = false);
 
@@ -228,7 +228,7 @@
     complex_vector_value (bool frc_str_conv = false,
 			  bool frc_vec_conv = false) const;
 
-    tree_constant convert_to_str (void) const;
+    octave_value convert_to_str (void) const;
 
     void convert_to_row_or_column_vector (void);
 
@@ -247,17 +247,17 @@
     void print_code (ostream& os);
 
     void gripe_wrong_type_arg (const char *name,
-			       const tree_constant_rep& tcr) const;
+			       const octave_value_rep& tcr) const;
 
     char *type_as_string (void) const;
 
     // Binary and unary operations.
 
-    friend tree_constant do_binary_op (tree_constant& a, tree_constant& b,
-				       tree_expression::type t);
+    friend octave_value do_binary_op (octave_value& a, octave_value& b,
+				      tree_expression::type t);
 
-    friend tree_constant do_unary_op (tree_constant& a,
-				      tree_expression::type t);
+    friend octave_value do_unary_op (octave_value& a,
+				     tree_expression::type t);
 
     // We want to eliminate this.
 
@@ -266,7 +266,7 @@
     // We want to get rid of these too:
 
     void force_numeric (bool frc_str_conv = false);
-    tree_constant make_numeric (bool frc_str_conv = false) const;
+    octave_value make_numeric (bool frc_str_conv = false) const;
 
     // But not this.
 
@@ -282,14 +282,14 @@
     void set_index (const Matrix& m);
     void set_index (char c);
 
-    void set_index (const Octave_object& args,
+    void set_index (const octave_value_list& args,
 		    bool rhs_is_complex = false);
 
-    tree_constant do_index (const Octave_object& args);
+    octave_value do_index (const octave_value_list& args);
 
     void maybe_widen (constant_type t);
 
-    void assign (tree_constant& rhs, const Octave_object& args);
+    void assign (octave_value& rhs, const octave_value_list& args);
 
     bool print_as_scalar (void);
 
@@ -307,7 +307,7 @@
 	Range *range;			// A set of evenly spaced values.
 	Octave_map *a_map;		// An associative array.
 
-	tree_constant_rep *freeptr;	// For custom memory management.
+	octave_value_rep *freeptr;	// For custom memory management.
       };
 
     constant_type type_tag;
@@ -319,8 +319,8 @@
 
   union
     {
-      tree_constant *freeptr;  // For custom memory management.
-      tree_constant_rep *rep;  // The real representation.
+      octave_value *freeptr;  // For custom memory management.
+      octave_value_rep *rep;  // The real representation.
     };
 
 public:
@@ -351,105 +351,105 @@
   // range            double, double, double
   //                  Range
   // map              Octave_map
-  // magic colon      tree_constant::magic_colon
-  // all_va_args      tree_constant::all_va_args
+  // magic colon      octave_value::magic_colon
+  // all_va_args      octave_value::all_va_args
 
-  tree_constant (void) : tree_fvc ()
-    { rep = new tree_constant_rep (); rep->count = 1; }
+  octave_value (void) : tree_fvc ()
+    { rep = new octave_value_rep (); rep->count = 1; }
 
-  tree_constant (double d, int l = -1, int c = -1) : tree_fvc (l, c)
-    { rep = new tree_constant_rep (d); rep->count = 1; }
+  octave_value (double d, int l = -1, int c = -1) : tree_fvc (l, c)
+    { rep = new octave_value_rep (d); rep->count = 1; }
 
-  tree_constant (const Matrix& m) : tree_fvc ()
-    { rep = new tree_constant_rep (m); rep->count = 1; }
+  octave_value (const Matrix& m) : tree_fvc ()
+    { rep = new octave_value_rep (m); rep->count = 1; }
 
-  tree_constant (const DiagMatrix& d) : tree_fvc ()
-    { rep = new tree_constant_rep (d); rep->count = 1; }
+  octave_value (const DiagMatrix& d) : tree_fvc ()
+    { rep = new octave_value_rep (d); rep->count = 1; }
 
-  tree_constant (const RowVector& v, int pcv = -1) : tree_fvc ()
-    { rep = new tree_constant_rep (v, pcv); rep->count = 1; }
+  octave_value (const RowVector& v, int pcv = -1) : tree_fvc ()
+    { rep = new octave_value_rep (v, pcv); rep->count = 1; }
 
-  tree_constant (const ColumnVector& v, int pcv = -1) : tree_fvc ()
-    { rep = new tree_constant_rep (v, pcv); rep->count = 1; }
+  octave_value (const ColumnVector& v, int pcv = -1) : tree_fvc ()
+    { rep = new octave_value_rep (v, pcv); rep->count = 1; }
 
-  tree_constant (const Complex& C, int l = -1, int c = -1) : tree_fvc (l, c)
-    { rep = new tree_constant_rep (C); rep->count = 1; }
+  octave_value (const Complex& C, int l = -1, int c = -1) : tree_fvc (l, c)
+    { rep = new octave_value_rep (C); rep->count = 1; }
 
-  tree_constant (const ComplexMatrix& m) : tree_fvc ()
-    { rep = new tree_constant_rep (m); rep->count = 1; }
+  octave_value (const ComplexMatrix& m) : tree_fvc ()
+    { rep = new octave_value_rep (m); rep->count = 1; }
 
-  tree_constant (const ComplexDiagMatrix& d) : tree_fvc ()
-    { rep = new tree_constant_rep (d); rep->count = 1; }
+  octave_value (const ComplexDiagMatrix& d) : tree_fvc ()
+    { rep = new octave_value_rep (d); rep->count = 1; }
 
-  tree_constant (const ComplexRowVector& v, int pcv = -1) : tree_fvc ()
-    { rep = new tree_constant_rep (v, pcv); rep->count = 1; }
+  octave_value (const ComplexRowVector& v, int pcv = -1) : tree_fvc ()
+    { rep = new octave_value_rep (v, pcv); rep->count = 1; }
 
-  tree_constant (const ComplexColumnVector& v, int pcv = -1) : tree_fvc () 
-    { rep = new tree_constant_rep (v, pcv); rep->count = 1; }
+  octave_value (const ComplexColumnVector& v, int pcv = -1) : tree_fvc () 
+    { rep = new octave_value_rep (v, pcv); rep->count = 1; }
 
-  tree_constant (const char *s, int l = -1, int c = -1) : tree_fvc (l, c)
-    { rep = new tree_constant_rep (s); rep->count = 1; }
+  octave_value (const char *s, int l = -1, int c = -1) : tree_fvc (l, c)
+    { rep = new octave_value_rep (s); rep->count = 1; }
 
-  tree_constant (const string& s, int l = -1, int c = -1) : tree_fvc (l, c)
-    { rep = new tree_constant_rep (s); rep->count = 1; }
+  octave_value (const string& s, int l = -1, int c = -1) : tree_fvc (l, c)
+    { rep = new octave_value_rep (s); rep->count = 1; }
 
-  tree_constant (const string_vector& s, int l = -1, int c = -1)
+  octave_value (const string_vector& s, int l = -1, int c = -1)
     : tree_fvc (l, c)
-    { rep = new tree_constant_rep (s); rep->count = 1; }
+    { rep = new octave_value_rep (s); rep->count = 1; }
 
-  tree_constant (const charMatrix& chm, bool is_string = false) : tree_fvc ()
-    { rep = new tree_constant_rep (chm, is_string); rep->count = 1; }
+  octave_value (const charMatrix& chm, bool is_string = false) : tree_fvc ()
+    { rep = new octave_value_rep (chm, is_string); rep->count = 1; }
 
-  tree_constant (double base, double limit, double inc) : tree_fvc ()
-    { rep = new tree_constant_rep (base, limit, inc); rep->count = 1; }
+  octave_value (double base, double limit, double inc) : tree_fvc ()
+    { rep = new octave_value_rep (base, limit, inc); rep->count = 1; }
 
-  tree_constant (const Range& r) : tree_fvc ()
-    { rep = new tree_constant_rep (r); rep->count = 1; }
+  octave_value (const Range& r) : tree_fvc ()
+    { rep = new octave_value_rep (r); rep->count = 1; }
 
-  tree_constant (const Octave_map& m) : tree_fvc ()
-    { rep = new tree_constant_rep (m); rep->count = 1; }
+  octave_value (const Octave_map& m) : tree_fvc ()
+    { rep = new octave_value_rep (m); rep->count = 1; }
 
-  tree_constant (tree_constant::magic_colon) : tree_fvc ()
+  octave_value (octave_value::magic_colon) : tree_fvc ()
     {
-      tree_constant_rep::constant_type tmp;
-      tmp = tree_constant_rep::magic_colon;
-      rep = new tree_constant_rep (tmp);
+      octave_value_rep::constant_type tmp;
+      tmp = octave_value_rep::magic_colon;
+      rep = new octave_value_rep (tmp);
       rep->count = 1;
     }
 
-  tree_constant (tree_constant::all_va_args) : tree_fvc ()
+  octave_value (octave_value::all_va_args) : tree_fvc ()
     {
-      tree_constant_rep::constant_type tmp;
-      tmp = tree_constant_rep::all_va_args;
-      rep = new tree_constant_rep (tmp);
+      octave_value_rep::constant_type tmp;
+      tmp = octave_value_rep::all_va_args;
+      rep = new octave_value_rep (tmp);
       rep->count = 1;
     }
 
   // Copy constructor.
 
-  tree_constant (const tree_constant& a) : tree_fvc ()
+  octave_value (const octave_value& a) : tree_fvc ()
     { rep = a.rep; rep->count++; }
 
   // Delete the representation of this constant if the count drops to
   // zero.
 
-  ~tree_constant (void);
+  ~octave_value (void);
 
   void *operator new (size_t size);
   void operator delete (void *p, size_t size);
 
   // Simple assignment.
 
-  tree_constant operator = (const tree_constant& a);
+  octave_value operator = (const octave_value& a);
 
   // Indexed assignment.
 
-  tree_constant assign (tree_constant& rhs, const Octave_object& args)
+  octave_value assign (octave_value& rhs, const octave_value_list& args)
     {
       if (rep->count > 1)
 	{
 	  --rep->count;
-	  rep = new tree_constant_rep (*rep);
+	  rep = new octave_value_rep (*rep);
 	  rep->count = 1;
 	}
 
@@ -460,14 +460,14 @@
 
   // Simple structure assignment.
 
-  tree_constant assign_map_element (SLList<string>& list,
-				    tree_constant& rhs);
+  octave_value assign_map_element (SLList<string>& list,
+				    octave_value& rhs);
 
   // Indexed structure assignment.
 
-  tree_constant assign_map_element (SLList<string>& list,
-				    tree_constant& rhs,
-				    const Octave_object& args);
+  octave_value assign_map_element (SLList<string>& list,
+				    octave_value& rhs,
+				    const octave_value_list& args);
 
   // Type.  It would be nice to eliminate the need for this.
 
@@ -501,8 +501,8 @@
 
   // Are any or all of the elements in this constant nonzero?
 
-  tree_constant all (void) const { return rep->all (); }
-  tree_constant any (void) const { return rep->any (); }
+  octave_value all (void) const { return rep->all (); }
+  octave_value any (void) const { return rep->any (); }
 
   // Other type stuff.
 
@@ -567,11 +567,11 @@
 
   Octave_map map_value (void) const;
 
-  tree_constant lookup_map_element (const string& ref,
+  octave_value lookup_map_element (const string& ref,
 				    bool insert = false,
 				    bool silent = false);
 
-  tree_constant lookup_map_element (SLList<string>& list,
+  octave_value lookup_map_element (SLList<string>& list,
 				    bool insert = false,
 				    bool silent = false);
 
@@ -586,17 +586,17 @@
 
   // Binary and unary operations.
 
-  friend tree_constant do_binary_op (tree_constant& a, tree_constant& b,
+  friend octave_value do_binary_op (octave_value& a, octave_value& b,
 				     tree_expression::type t);
 
-  friend tree_constant do_unary_op (tree_constant& a,
+  friend octave_value do_unary_op (octave_value& a,
 				    tree_expression::type t);
 
   // Conversions.  These should probably be private.  If a user of this
   // class wants a certain kind of constant, he should simply ask for
   // it, and we should convert it if possible.
 
-  tree_constant convert_to_str (void)
+  octave_value convert_to_str (void)
     { return rep->convert_to_str (); }
 
   void convert_to_row_or_column_vector (void)
@@ -609,7 +609,7 @@
       if (rep->count > 1)
 	{
 	  --rep->count;
-	  rep = new tree_constant_rep (*rep);
+	  rep = new octave_value_rep (*rep);
 	  rep->count = 1;
 	}
 
@@ -626,7 +626,7 @@
   // Evaluate this constant, possibly converting complex to real, or
   // matrix to scalar, etc.
 
-  tree_constant eval (bool print_result)
+  octave_value eval (bool print_result)
     {
       if (print_result)
 	{
@@ -637,7 +637,7 @@
       return *this;
     }
 
-  Octave_object eval (bool, int, const Octave_object&);
+  octave_value_list eval (bool, int, const octave_value_list&);
 
   // Store the original text corresponding to this constant for later
   // pretty printing.
@@ -658,11 +658,11 @@
 
   void make_unique (void);
 
-  tree_constant_rep *make_unique_map (void);
+  octave_value_rep *make_unique_map (void);
 
   // We want to eliminate this, or at least make it private.
 
-  tree_constant_rep::constant_type const_type (void) const
+  octave_value_rep::constant_type const_type (void) const
     { return rep->const_type (); }
 
   void convert_to_matrix_type (bool make_complex)
@@ -675,7 +675,7 @@
   void force_numeric (bool frc_str_conv = false)
     { rep->force_numeric (frc_str_conv); }
 
-  tree_constant make_numeric (bool frc_str_conv = false) const
+  octave_value make_numeric (bool frc_str_conv = false) const
     {
       if (is_numeric_type ())
 	return *this;
--- a/src/pt-exp-base.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-exp-base.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -44,7 +44,7 @@
 {
   bool expr_value = false;
 
-  tree_constant t1 = eval (false);
+  octave_value t1 = eval (false);
 
   if (! error_state)
     {
@@ -66,7 +66,7 @@
 	    }
 	  else if (! t1.is_scalar_type ())
 	    {
-	      tree_constant t2 = t1.all ();
+	      octave_value t2 = t1.all ();
 	      if (! error_state)
 		t1 = t2.all ();
 	    }
@@ -99,11 +99,11 @@
   panic_impossible ();
 }
 
-tree_constant
+octave_value
 tree_expression::eval (bool /* print */)
 {
   panic ("invalid evaluation of generic expression");
-  return tree_constant ();
+  return octave_value ();
 }
 
 /*
--- a/src/pt-exp-base.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-exp-base.h	Thu Apr 25 05:55:19 1996 +0000
@@ -27,7 +27,7 @@
 #pragma interface
 #endif
 
-class tree_constant;
+class octave_value;
 
 #include "pt-base.h"
 
@@ -112,7 +112,7 @@
 
   virtual void mark_for_possible_ans_assign (void);
 
-  virtual tree_constant eval (bool print) = 0;
+  virtual octave_value eval (bool print) = 0;
 
 protected:
   type etype;
--- a/src/pt-exp.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-exp.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -59,10 +59,10 @@
   delete id;
 }
 
-tree_constant
+octave_value
 tree_prefix_expression::eval (bool print)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
@@ -77,7 +77,7 @@
 	  retval = id->eval (print);
 	  if (error_state)
 	    {
-	      retval = tree_constant ();
+	      retval = octave_value ();
 	      if (error_state)
 		eval_error ();
 	    }
@@ -143,10 +143,10 @@
   delete id;
 }
 
-tree_constant
+octave_value
 tree_postfix_expression::eval (bool print)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
@@ -157,7 +157,7 @@
       id->bump_value (etype);
       if (error_state)
 	{
-	  retval = tree_constant ();
+	  retval = octave_value ();
 	  if (error_state)
 	    eval_error ();
 	}
@@ -217,13 +217,13 @@
 
 // Unary expressions.
 
-tree_constant
+octave_value
 tree_unary_expression::eval (bool /* print */)
 {
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
-  tree_constant retval;
+  octave_value retval;
 
   switch (etype)
     {
@@ -233,7 +233,7 @@
     case tree_expression::transpose:
       if (op)
 	{
-	  tree_constant u = op->eval (false);
+	  octave_value u = op->eval (false);
 	  if (error_state)
 	    eval_error ();
 	  else if (u.is_defined ())
@@ -241,7 +241,7 @@
 	      retval = do_unary_op (u, etype);
 	      if (error_state)
 		{
-		  retval = tree_constant ();
+		  retval = octave_value ();
 		  if (error_state)
 		    eval_error ();
 		}
@@ -335,13 +335,13 @@
 
 // Binary expressions.
  
-tree_constant
+octave_value
 tree_binary_expression::eval (bool /* print */)
 {
   if (error_state)
-    return tree_constant ();
+    return octave_value ();
 
-  tree_constant retval;
+  octave_value retval;
 
   switch (etype)
     {
@@ -365,12 +365,12 @@
     case tree_expression::or:
       if (op1)
 	{
-	  tree_constant a = op1->eval (false);
+	  octave_value a = op1->eval (false);
 	  if (error_state)
 	    eval_error ();
 	  else if (a.is_defined () && op2)
 	    {
-	      tree_constant b = op2->eval (false);
+	      octave_value b = op2->eval (false);
 	      if (error_state)
 		eval_error ();
 	      else if (b.is_defined ())
@@ -378,7 +378,7 @@
 		  retval = do_binary_op (a, b, etype);
 		  if (error_state)
 		    {
-		      retval = tree_constant ();
+		      retval = octave_value ();
 		      if (error_state)
 			eval_error ();
 		    }
@@ -393,7 +393,7 @@
 	bool result = false;
 	if (op1)
 	  {
-	    tree_constant a = op1->eval (false);
+	    octave_value a = op1->eval (false);
 	    if (error_state)
 	      {
 		eval_error ();
@@ -426,7 +426,7 @@
 
 	    if (op2)
 	      {
-		tree_constant b = op2->eval (false);
+		octave_value b = op2->eval (false);
 		if (error_state)
 		  {
 		    eval_error ();
@@ -442,7 +442,7 @@
 	      }
 	  }
       done:
-	retval = tree_constant ((double) result);
+	retval = octave_value ((double) result);
       }
       break;
 
@@ -628,19 +628,19 @@
   return lhs->ident ();
 }
 
-tree_constant
+octave_value
 tree_simple_assignment_expression::eval (bool print)
 {
   assert (etype == tree_expression::assignment);
 
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
 
   if (rhs)
     {
-      tree_constant rhs_val = rhs->eval (false);
+      octave_value rhs_val = rhs->eval (false);
       if (error_state)
 	{
 	  eval_error ();
@@ -660,7 +660,7 @@
 	{
 	  // Extract the arguments into a simple vector.
 
-	  Octave_object args = index->convert_to_const_vector ();
+	  octave_value_list args = index->convert_to_const_vector ();
 
 	  if (error_state)
 	    eval_error ();
@@ -757,15 +757,15 @@
   return retval;
 }
 
-tree_constant
+octave_value
 tree_colon_expression::eval (bool /* print */)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state || ! op1 || ! op2)
     return retval;
 
-  tree_constant tmp = op1->eval (false);
+  octave_value tmp = op1->eval (false);
 
   if (tmp.is_undefined ())
     {
@@ -820,13 +820,13 @@
 	}
     }
 
-  retval = tree_constant (base, limit, inc);
+  retval = octave_value (base, limit, inc);
 
   if (error_state)
     {
       if (error_state)
 	eval_error ("evaluating colon expression");
-      return tree_constant ();
+      return octave_value ();
     }
 
   return retval;
--- a/src/pt-exp.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-exp.h	Thu Apr 25 05:55:19 1996 +0000
@@ -51,7 +51,7 @@
 
   ~tree_prefix_expression (void);
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
   void eval_error (void);
 
@@ -81,7 +81,7 @@
 
   ~tree_postfix_expression (void);
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
   void eval_error (void);
 
@@ -109,7 +109,7 @@
   ~tree_unary_expression (void)
     { delete op; }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
   void eval_error (void);
 
@@ -140,7 +140,7 @@
       delete op2;
     }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
   void eval_error (void);
 
@@ -210,7 +210,7 @@
   bool is_ans_assign (void)
     { return ans_ass; }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
   bool is_assignment_expression (void) const
     { return true; }
@@ -254,7 +254,7 @@
 
   tree_colon_expression *chain (tree_expression *t);
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
   void eval_error (const char *s);
 
--- a/src/pt-fcn.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-fcn.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -65,12 +65,12 @@
 void
 tree_function::bind_nargin_and_nargout (int nargin, int nargout)
 {
-  tree_constant *tmp;
+  octave_value *tmp;
 
-  tmp = new tree_constant (nargin);
+  tmp = new octave_value (nargin);
   nargin_sr->define (tmp);
 
-  tmp = new tree_constant (nargout);
+  tmp = new octave_value (nargout);
   nargout_sr->define (tmp);
 }
 
@@ -157,10 +157,10 @@
   return (param_list && param_list->takes_varargs ());
 }
 
-tree_constant
+octave_value
 tree_function::octave_va_arg (void)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (curr_va_arg_number < num_args_passed)
     retval = args_passed (curr_va_arg_number++);
@@ -171,10 +171,10 @@
   return retval;
 }
 
-Octave_object
+octave_value_list
 tree_function::octave_all_va_args (void)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   retval.resize (num_args_passed - num_named_args);
 
@@ -192,7 +192,7 @@
 }
 
 void
-tree_function::octave_vr_val (const tree_constant& val)
+tree_function::octave_vr_val (const octave_value& val)
 {
   assert (vr_list);
 
@@ -205,16 +205,16 @@
   fcn_name = s;
 }
 
-tree_constant
+octave_value
 tree_function::eval (bool print)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state || ! cmd_list)
     return retval;
 
-  Octave_object tmp_args;
-  Octave_object tmp = eval (print, 0, tmp_args);
+  octave_value_list tmp_args;
+  octave_value_list tmp = eval (print, 0, tmp_args);
 
   if (! error_state && tmp.length () > 0)
     retval = tmp(0);
@@ -246,10 +246,10 @@
   tmp->clear ();
 }
 
-Octave_object
-tree_function::eval (bool /* print */, int nargout, const Octave_object& args)
+octave_value_list
+tree_function::eval (bool /* print */, int nargout, const octave_value_list& args)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (error_state)
     return retval;
@@ -333,7 +333,7 @@
     // Evaluate the commands that make up the function.
 
     bool pf = ! user_pref.silent_functions;
-    tree_constant last_computed_value = cmd_list->eval (pf);
+    octave_value last_computed_value = cmd_list->eval (pf);
 
     if (echo_commands)
       print_code_function_trailer ();
@@ -356,7 +356,7 @@
       {
 	if (nargout > 0 && user_pref.define_all_return_values)
 	  {
-	    tree_constant tmp = builtin_any_variable ("default_return_value");
+	    octave_value tmp = builtin_any_variable ("default_return_value");
 	    if (tmp.is_defined ())
 	      ret_list->initialize_undefined_elements (tmp);
 	  }
@@ -490,7 +490,7 @@
   "va_arg (): return next argument in a function that takes a\n\
 variable number of parameters")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -519,7 +519,7 @@
   "va_start (): reset the pointer to the list of optional arguments\n\
 to the beginning")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -548,7 +548,7 @@
   "vr_val (X): append X to the list of optional return values for a
 function that allows a variable number of return values")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/pt-fcn.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-fcn.h	Thu Apr 25 05:55:19 1996 +0000
@@ -107,22 +107,22 @@
   void octave_va_start (void)
     { curr_va_arg_number = num_named_args; }
 
-  tree_constant octave_va_arg (void);
+  octave_value octave_va_arg (void);
 
-  Octave_object octave_all_va_args (void);
+  octave_value_list octave_all_va_args (void);
 
   bool takes_var_return (void) const;
 
-  void octave_vr_val (const tree_constant& val);
+  void octave_vr_val (const octave_value& val);
 
   void stash_function_name (const string& s);
 
   string function_name (void)
     { return fcn_name; }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout, const Octave_object& args);
+  octave_value_list eval (bool print, int nargout, const octave_value_list& args);
 
   void traceback_error (void);
 
@@ -139,7 +139,7 @@
   time_t t_parsed;
   bool system_fcn_file;
   int num_named_args;
-  Octave_object args_passed;
+  octave_value_list args_passed;
   int num_args_passed;
   int curr_va_arg_number;
   tree_va_return_list *vr_list;
--- a/src/pt-fvc-base.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-fvc-base.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -39,11 +39,11 @@
 
 // A base class for objects that can be evaluated with argument lists.
 
-tree_constant
-tree_fvc::assign (tree_constant&, const Octave_object&)
+octave_value
+tree_fvc::assign (octave_value&, const octave_value_list&)
 {
   panic_impossible ();
-  return tree_constant ();
+  return octave_value ();
 }
 
 string
@@ -60,10 +60,10 @@
   panic_impossible ();
 }
 
-tree_constant
+octave_value
 tree_fvc::lookup_map_element (SLList<string>&, bool, bool)
 {
-  static tree_constant retval;
+  static octave_value retval;
 
   int l = line ();
   int c = column ();
--- a/src/pt-fvc-base.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-fvc-base.h	Thu Apr 25 05:55:19 1996 +0000
@@ -35,8 +35,8 @@
 
 #include <SLList.h>
 
-class tree_constant;
-class Octave_object;
+class octave_value;
+class octave_value_list;
 
 #include "pt-mvr-base.h"
 
@@ -50,14 +50,14 @@
 
   ~tree_fvc (void) { }
 
-  virtual tree_constant assign (tree_constant& t,
-				const Octave_object& args);
+  virtual octave_value assign (octave_value& t,
+				const octave_value_list& args);
 
   virtual string name (void) const;
 
   virtual void bump_value (tree_expression::type);
 
-  virtual tree_constant lookup_map_element (SLList<string>& list,
+  virtual octave_value lookup_map_element (SLList<string>& list,
 					    bool insert = false,
 					    bool silent = false);
 
--- a/src/pt-fvc.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-fvc.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -79,7 +79,7 @@
 // Are any of the arguments `:'?
 
 static bool
-any_arg_is_magic_colon (const Octave_object& args)
+any_arg_is_magic_colon (const octave_value_list& args)
 {
   int nargin = args.length ();
 
@@ -102,7 +102,7 @@
 }
 
 tree_identifier *
-tree_identifier::define (tree_constant *t)
+tree_identifier::define (octave_value *t)
 {
   int status = sym->define (t);
   return status ? this : 0;
@@ -122,10 +122,10 @@
     sym->document (s);
 }
 
-tree_constant
-tree_identifier::assign (tree_constant& rhs)
+octave_value
+tree_identifier::assign (octave_value& rhs)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (rhs.is_defined ())
     {
@@ -142,7 +142,7 @@
 	  sym->clear ();
 	}
 
-      tree_constant *tmp = new tree_constant (rhs);
+      octave_value *tmp = new octave_value (rhs);
 
       if (sym->define (tmp))
 	retval = rhs;
@@ -153,10 +153,10 @@
   return retval;
 }
 
-tree_constant
-tree_identifier::assign (tree_constant& rhs, const Octave_object& args)
+octave_value
+tree_identifier::assign (octave_value& rhs, const octave_value_list& args)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (rhs.is_defined ())
     {
@@ -189,7 +189,7 @@
 	    }
 	  else
 	    {
-	      tree_constant *tmp = new tree_constant ();
+	      octave_value *tmp = new octave_value ();
 	      retval = tmp->assign (rhs, args);
 	      if (retval.is_defined ())
 		sym->define (tmp);
@@ -200,10 +200,10 @@
   return retval;
 }
 
-tree_constant
-tree_identifier::assign (SLList<string> list, tree_constant& rhs)
+octave_value
+tree_identifier::assign (SLList<string> list, octave_value& rhs)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (rhs.is_defined ())
     {
@@ -212,12 +212,12 @@
 
       tree_fvc *curr_val = sym->def ();
 
-      tree_constant *tmp = 0;
+      octave_value *tmp = 0;
       if (curr_val && curr_val->is_constant ())
-	tmp = (tree_constant *) curr_val;
+	tmp = (octave_value *) curr_val;
       else
 	{
-	  tmp = new tree_constant ();
+	  tmp = new octave_value ();
 	  if (! sym->define (tmp))
 	    {
 	      delete tmp;
@@ -232,11 +232,11 @@
   return retval;
 }
 
-tree_constant
-tree_identifier::assign (SLList<string> list, tree_constant& rhs,
-			 const Octave_object& args)
+octave_value
+tree_identifier::assign (SLList<string> list, octave_value& rhs,
+			 const octave_value_list& args)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (rhs.is_defined ())
     {
@@ -247,9 +247,9 @@
 	{
 	  tree_fvc *curr_val = sym->def ();
 
-	  tree_constant *tmp;
+	  octave_value *tmp;
 	  if (curr_val && curr_val->is_constant ())
-	    tmp = (tree_constant *) curr_val;
+	    tmp = (octave_value *) curr_val;
 	  else
 	    panic_impossible ();
 
@@ -266,7 +266,7 @@
 	    }
 	  else
 	    {
-	      tree_constant *tmp = new tree_constant ();
+	      octave_value *tmp = new octave_value ();
 
 	      retval = tmp->assign_map_element (list, rhs, args);
 
@@ -359,10 +359,10 @@
     sym->mark_as_formal_parameter ();
 }
 
-tree_constant
+octave_value
 tree_identifier::eval (bool print)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
@@ -379,8 +379,8 @@
 
 	  if (nargout)
 	    {
-	      Octave_object tmp_args;
-	      Octave_object tmp = object_to_eval->eval (0, nargout, tmp_args);
+	      octave_value_list tmp_args;
+	      octave_value_list tmp = object_to_eval->eval (0, nargout, tmp_args);
 
 	      if (tmp.length () > 0)
 		retval = tmp(0);
@@ -403,10 +403,10 @@
   return retval;
 }
 
-Octave_object
-tree_identifier::eval (bool print, int nargout, const Octave_object& args)
+octave_value_list
+tree_identifier::eval (bool print, int nargout, const octave_value_list& args)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (error_state)
     return retval;
@@ -491,10 +491,10 @@
     }
 }
 
-tree_constant
-tree_indirect_ref::assign (tree_constant& t)
+octave_value
+tree_indirect_ref::assign (octave_value& t)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (refs.empty ())
     retval = id->assign (t);
@@ -504,10 +504,10 @@
   return retval;
 }
 
-tree_constant
-tree_indirect_ref::assign (tree_constant& t, const Octave_object& args)
+octave_value
+tree_indirect_ref::assign (octave_value& t, const octave_value_list& args)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (refs.empty ())
     retval = id->assign (t, args);
@@ -517,10 +517,10 @@
   return retval;
 }
 
-tree_constant
+octave_value
 tree_indirect_ref::eval (bool print)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
@@ -549,10 +549,10 @@
   return retval;
 }
 
-Octave_object
-tree_indirect_ref::eval (bool print, int nargout, const Octave_object& args)
+octave_value_list
+tree_indirect_ref::eval (bool print, int nargout, const octave_value_list& args)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (error_state)
     return retval;
@@ -569,7 +569,7 @@
 
       if (object_to_eval)
 	{
-	  tree_constant tmp = object_to_eval->lookup_map_element (refs);
+	  octave_value tmp = object_to_eval->lookup_map_element (refs);
 
 	  if (! error_state)
 	    {
@@ -632,18 +632,18 @@
   my_name = nm;
 }
 
-tree_constant
+octave_value
 tree_builtin::eval (bool /* print */)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
 
   if (fcn)
     {
-      Octave_object args;
-      Octave_object tmp = (*fcn) (args, 0);
+      octave_value_list args;
+      octave_value_list tmp = (*fcn) (args, 0);
       if (tmp.length () > 0)
 	retval = tmp(0);
     }
@@ -657,11 +657,11 @@
   return retval;
 }
 
-static tree_constant
-apply_mapper_fcn (const tree_constant& arg, Mapper_fcn& m_fcn,
+static octave_value
+apply_mapper_fcn (const octave_value& arg, Mapper_fcn& m_fcn,
 		  bool /* print */)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (arg.is_real_type ())
     {
@@ -744,10 +744,10 @@
   return retval;
 }
 
-Octave_object
-tree_builtin::eval (bool /* print */, int nargout, const Octave_object& args)
+octave_value_list
+tree_builtin::eval (bool /* print */, int nargout, const octave_value_list& args)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (error_state)
     return retval;
@@ -770,7 +770,7 @@
 //      else
       if (nargin > 0 && args(0).is_defined ())
 	{
-	  tree_constant tmp = apply_mapper_fcn (args(0), mapper_fcn, 0);
+	  octave_value tmp = apply_mapper_fcn (args(0), mapper_fcn, 0);
 	  retval(0) = tmp;
 	}
       else
--- a/src/pt-fvc.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-fvc.h	Thu Apr 25 05:55:19 1996 +0000
@@ -59,17 +59,17 @@
 
   string name (void) const;
 
-  tree_identifier *define (tree_constant *t);
+  tree_identifier *define (octave_value *t);
   tree_identifier *define (tree_function *t);
 
   void document (const string& s);
 
-  tree_constant assign (tree_constant& t);
-  tree_constant assign (tree_constant& t, const Octave_object& args);
+  octave_value assign (octave_value& t);
+  octave_value assign (octave_value& t, const octave_value_list& args);
 
-  tree_constant assign (SLList<string> list, tree_constant& t);
-  tree_constant assign (SLList<string> list, tree_constant& t,
-			const Octave_object& args); 
+  octave_value assign (SLList<string> list, octave_value& t);
+  octave_value assign (SLList<string> list, octave_value& t,
+			const octave_value_list& args); 
 
   bool is_defined (void);
 
@@ -84,9 +84,9 @@
   void mark_for_possible_ans_assign (void)
     { maybe_do_ans_assign = true; }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout, const Octave_object& args);
+  octave_value_list eval (bool print, int nargout, const octave_value_list& args);
 
   void eval_undefined_error (void);
 
@@ -127,15 +127,15 @@
 
   string name (void) const;
 
-  tree_constant assign (tree_constant& t);
-  tree_constant assign (tree_constant& t, const Octave_object& args);
+  octave_value assign (octave_value& t);
+  octave_value assign (octave_value& t, const octave_value_list& args);
 
   void mark_for_possible_ans_assign (void)
     { id->mark_for_possible_ans_assign (); }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout, const Octave_object& args);
+  octave_value_list eval (bool print, int nargout, const octave_value_list& args);
 
   void print_code (ostream& os);
 
@@ -164,9 +164,9 @@
   bool is_mapper_function (void) const
     { return is_mapper; }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout, const Octave_object& args);
+  octave_value_list eval (bool print, int nargout, const octave_value_list& args);
 
   string name (void) const
     { return my_name; }
--- a/src/pt-mat.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-mat.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -53,16 +53,16 @@
 private:
 
   class
-  tm_row_const_rep : public SLList<tree_constant>
+  tm_row_const_rep : public SLList<octave_value>
   {
   public:
 
     tm_row_const_rep (void)
-      : SLList<tree_constant> (), count (1), nr (0), nc (0),
+      : SLList<octave_value> (), count (1), nr (0), nc (0),
 	all_str (false), is_cmplx (false), ok (false) { }
 
     tm_row_const_rep (const tree_matrix_row& mr)
-      : SLList<tree_constant> (), count (1), nr (0), nc (0),
+      : SLList<octave_value> (), count (1), nr (0), nc (0),
 	all_str (false), is_cmplx (false), ok (false)
         { init (mr); }
 
@@ -129,9 +129,9 @@
   bool all_strings (void) const { return rep->all_str; }
   bool is_complex (void) const { return rep->is_cmplx; }
 
-  tree_constant& operator () (Pix p) { return rep->operator () (p); }
+  octave_value& operator () (Pix p) { return rep->operator () (p); }
 
-  const tree_constant& operator () (Pix p) const
+  const octave_value& operator () (Pix p) const
     { return rep->operator () (p); }
 
   Pix first (void) const { return rep->first (); }
@@ -160,7 +160,7 @@
     {
       tree_expression *elt = mr (p);
 
-      tree_constant tmp = elt->eval (false);
+      octave_value tmp = elt->eval (false);
 
       if (error_state || tmp.is_undefined ())
 	break;
@@ -431,10 +431,10 @@
 // Less ugly than before, anyway.
 // Looking better all the time.
 
-tree_constant
+octave_value
 tree_matrix::eval (bool /* print */)
 {
-  tree_constant retval;
+  octave_value retval;
 
   tm_const tmp (*this);
 
@@ -470,7 +470,7 @@
 
 	  for (Pix q = row.first (); q != 0; row.next (q))
 	    {
-	      tree_constant elt = row (q);
+	      octave_value elt = row (q);
 
 	      if (found_complex)
 		{
@@ -515,7 +515,7 @@
 		}
 
 	      if (all_strings && chm.rows () > 0 && chm.cols () > 0)
-		retval = tree_constant (chm, true);
+		retval = octave_value (chm, true);
 	      else if (found_complex)
 		retval = cm;
 	      else
--- a/src/pt-mat.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-mat.h	Thu Apr 25 05:55:19 1996 +0000
@@ -29,7 +29,7 @@
 
 class ostream;
 
-class tree_constant;
+class octave_value;
 class tree_return_list;
 
 #include <SLList.h>
@@ -75,7 +75,7 @@
 
   bool is_matrix_constant (void) const;
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
   void print_code (ostream& os);
 };
--- a/src/pt-misc.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-misc.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -116,11 +116,11 @@
     }
 }
 
-tree_constant
+octave_value
 tree_statement_list::eval (bool print)
 {
   bool pf;
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
@@ -147,7 +147,7 @@
 	    retval = expr->eval (pf);
 
 	  if (error_state)
-	    return tree_constant ();
+	    return octave_value ();
 
 	  if (breaking || continuing)
 	    break;
@@ -156,15 +156,15 @@
 	    break;
 	}
       else
-	retval = tree_constant ();
+	retval = octave_value ();
     }
   return retval;
 }
 
-Octave_object
+octave_value_list
 tree_statement_list::eval (bool print, int nargout)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (nargout > 1)
     {
@@ -195,7 +195,7 @@
 		{
 		  if (expr->is_multi_val_ret_expression ())
 		    {
-		      Octave_object args;
+		      octave_value_list args;
 		      tree_multi_val_ret *t = (tree_multi_val_ret *) expr;
 		      retval = t->eval (pf, nargout, args);
 		    }
@@ -204,7 +204,7 @@
 		}
 
 	      if (error_state)
-		return tree_constant ();
+		return octave_value ();
 
 	      if (breaking || continuing)
 		break;
@@ -213,7 +213,7 @@
 		break;
 	    }
 	  else
-	    retval = Octave_object ();
+	    retval = octave_value_list ();
 	}
       return retval;
     }
@@ -235,7 +235,7 @@
     }
 }
 
-Octave_object
+octave_value_list
 tree_argument_list::convert_to_const_vector (void)
 {
   int len = length ();
@@ -244,7 +244,7 @@
   // needs to be even when we have a list containing an all_va_args
   // token.
 
-  Octave_object args;
+  octave_value_list args;
   args.resize (len);
 
   Pix p = first ();
@@ -254,11 +254,11 @@
       tree_expression *elt = this->operator () (p);
       if (elt)
 	{
-	  tree_constant tmp = elt->eval (false);
+	  octave_value tmp = elt->eval (false);
 	  if (error_state)
 	    {
 	      ::error ("evaluating argument list element number %d", k);
-	      args = Octave_object ();
+	      args = octave_value_list ();
 	      break;
 	    }
 	  else
@@ -267,7 +267,7 @@
 		{
 		  if (curr_function)
 		    {
-		      Octave_object tva;
+		      octave_value_list tva;
 		      tva = curr_function->octave_all_va_args ();
 		      int n = tva.length ();
 		      for (int i = 0; i < n; i++)
@@ -276,7 +276,7 @@
 		  else
 		    {
 		      ::error ("all_va_args is only valid inside functions");
-		      args = Octave_object ();
+		      args = octave_value_list ();
 		      break;
 		    }
 		}
@@ -287,7 +287,7 @@
 	}
       else
 	{
-	  args(j++) = tree_constant ();
+	  args(j++) = octave_value ();
 	  break;
 	}
     }
@@ -340,7 +340,7 @@
 }
 
 void
-tree_parameter_list::initialize_undefined_elements (tree_constant& val)
+tree_parameter_list::initialize_undefined_elements (octave_value& val)
 {
   for (Pix p = first (); p != 0; next (p))
     {
@@ -351,7 +351,7 @@
 }
 
 void
-tree_parameter_list::define_from_arg_vector (const Octave_object& args)
+tree_parameter_list::define_from_arg_vector (const octave_value_list& args)
 {
   int nargin = args.length ();
 
@@ -366,7 +366,7 @@
     {
       tree_identifier *elt = this->operator () (p);
 
-      tree_constant *tmp = 0;
+      octave_value *tmp = 0;
 
       if (i < nargin)
 	{
@@ -375,7 +375,7 @@
 	      ::error ("invalid use of colon in function argument list");
 	      return;
 	    }
-	  tmp = new tree_constant (args(i));
+	  tmp = new octave_value (args(i));
 	}
 
       elt->define (tmp);
@@ -384,7 +384,7 @@
     }
 }
 
-Octave_object
+octave_value_list
 tree_parameter_list::convert_to_const_vector (tree_va_return_list *vr_list)
 {
   int nout = length ();
@@ -392,7 +392,7 @@
   if (vr_list)
     nout += vr_list->length ();
 
-  Octave_object retval;
+  octave_value_list retval;
   retval.resize (nout);
 
   int i = 0;
--- a/src/pt-misc.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-misc.h	Thu Apr 25 05:55:19 1996 +0000
@@ -29,8 +29,8 @@
 
 class ostream;
 
-class Octave_object;
-class tree_constant;
+class octave_value_list;
+class octave_value;
 class tree_command;
 class tree_expression;
 class tree_simple_assignment_expression;
@@ -116,9 +116,9 @@
 
   void mark_as_function_body (void) { function_body = true; }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout);
+  octave_value_list eval (bool print, int nargout);
 
   void print_code (ostream& os);
 
@@ -149,7 +149,7 @@
 	}
     }
 
-  Octave_object convert_to_const_vector (void);
+  octave_value_list convert_to_const_vector (void);
 
   void print_code (ostream& os);
 };
@@ -189,13 +189,13 @@
   bool varargs_only (void)
     { return (marked_for_varargs < 0); }
 
-  void initialize_undefined_elements (tree_constant& val);
+  void initialize_undefined_elements (octave_value& val);
 
-  void define_from_arg_vector (const Octave_object& args);
+  void define_from_arg_vector (const octave_value_list& args);
 
   bool is_defined (void);
 
-  Octave_object convert_to_const_vector (tree_va_return_list *vr_list);
+  octave_value_list convert_to_const_vector (tree_va_return_list *vr_list);
 
   void print_code (ostream& os);
 
@@ -224,10 +224,10 @@
 };
 
 class
-tree_va_return_list : public SLList<tree_constant>
+tree_va_return_list : public SLList<octave_value>
 {
 public:
-  tree_va_return_list (void) : SLList<tree_constant> () { }
+  tree_va_return_list (void) : SLList<octave_value> () { }
 
   ~tree_va_return_list (void) { }
 };
--- a/src/pt-mvr-base.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-mvr-base.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -34,11 +34,11 @@
 
 // A base class for objects that can be return multiple values
 
-tree_constant
+octave_value
 tree_multi_val_ret::eval (bool /* print */)
 {
   panic ("invalid evaluation of generic expression");
-  return tree_constant ();
+  return octave_value ();
 }
 
 /*
--- a/src/pt-mvr-base.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-mvr-base.h	Thu Apr 25 05:55:19 1996 +0000
@@ -27,8 +27,8 @@
 #pragma interface
 #endif
 
-class tree_constant;
-class Octave_object;
+class octave_value;
+class octave_value_list;
 
 #include "pt-exp-base.h"
 
@@ -48,10 +48,10 @@
   bool is_multi_val_ret_expression (void) const
     { return true; }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  virtual Octave_object eval (bool print, int nargout,
-			      const Octave_object& args) = 0;
+  virtual octave_value_list eval (bool print, int nargout,
+			      const octave_value_list& args) = 0;
 };
 
 #endif
--- a/src/pt-mvr.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-mvr.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -46,7 +46,7 @@
 // Make sure that all arguments have values.
 
 static bool
-all_args_defined (const Octave_object& args)
+all_args_defined (const octave_value_list& args)
 {
   int nargin = args.length ();
 
@@ -59,15 +59,15 @@
 
 // Used internally.
 
-tree_constant
+octave_value
 tree_oct_obj::eval (bool /* print */)
 {
   return values(0);
 }
 
-Octave_object
+octave_value_list
 tree_oct_obj::eval (bool /* print */, int /* nargout */,
-		    const Octave_object& /* args */)
+		    const octave_value_list& /* args */)
 {
   return values;
 }
@@ -109,10 +109,10 @@
     id->mark_for_possible_ans_assign ();
 }
 
-tree_constant
+octave_value
 tree_index_expression::eval (bool print)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
@@ -122,7 +122,7 @@
       // Extract the arguments into a simple vector.  Don't pass null
       // args.
 
-      Octave_object args = list->convert_to_const_vector ();
+      octave_value_list args = list->convert_to_const_vector ();
 
       if (error_state)
 	eval_error ();
@@ -134,7 +134,7 @@
 	    {
 	      if (all_args_defined (args))
 		{
-		  Octave_object tmp = id->eval (print, 1, args);
+		  octave_value_list tmp = id->eval (print, 1, args);
 
 		  if (error_state)
 		    eval_error ();
@@ -160,11 +160,11 @@
   return retval;
 }
 
-Octave_object
+octave_value_list
 tree_index_expression::eval (bool print, int nargout,
-			     const Octave_object& /* args */)
+			     const octave_value_list& /* args */)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (error_state)
     return retval;
@@ -174,7 +174,7 @@
       // Extract the arguments into a simple vector.  Don't pass null
       // args.
 
-      Octave_object tmp_args = list->convert_to_const_vector ();
+      octave_value_list tmp_args = list->convert_to_const_vector ();
 
       if (error_state)
 	eval_error ();
@@ -201,7 +201,7 @@
     }
   else
     {
-      Octave_object tmp_args;
+      octave_value_list tmp_args;
 
       retval = id->eval (print, nargout, tmp_args);
 
@@ -271,16 +271,16 @@
   delete rhs;
 }
 
-tree_constant
+octave_value
 tree_multi_assignment_expression::eval (bool print)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (error_state)
     return retval;
 
-  Octave_object tmp_args;
-  Octave_object result = eval (print, 1, tmp_args);
+  octave_value_list tmp_args;
+  octave_value_list result = eval (print, 1, tmp_args);
 
   if (result.length () > 0)
     retval = result(0);
@@ -288,18 +288,18 @@
   return retval;
 }
 
-Octave_object
+octave_value_list
 tree_multi_assignment_expression::eval (bool print, int nargout,
-					const Octave_object& /* args */)
+					const octave_value_list& /* args */)
 {
   assert (etype == tree_expression::multi_assignment);
 
   if (error_state || ! rhs)
-    return Octave_object ();
+    return octave_value_list ();
 
   nargout = lhs->length ();
-  Octave_object tmp_args;
-  Octave_object results = rhs->eval (0, nargout, tmp_args);
+  octave_value_list tmp_args;
+  octave_value_list results = rhs->eval (0, nargout, tmp_args);
 
   if (error_state)
     eval_error ();
@@ -323,7 +323,7 @@
 	      // works, but maybe we should have the option of
 	      // skipping the assignment instead.
 
-	      tree_constant *tmp = 0;
+	      octave_value *tmp = 0;
 	      if (results(i).is_undefined ())
 		{
 		  error ("element number %d undefined in return list", i+1);
@@ -331,7 +331,7 @@
 		  break;
 		}
 	      else
-		tmp = new tree_constant (results(i));
+		tmp = new octave_value (results(i));
 
 	      tree_simple_assignment_expression tmp_expr
 		(lhs_expr, tmp, 1, 0, ma_line, ma_column);
--- a/src/pt-mvr.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-mvr.h	Thu Apr 25 05:55:19 1996 +0000
@@ -29,7 +29,7 @@
 
 class ostream;
 
-class Octave_object;
+class octave_value_list;
 
 class tree_argument_list;
 class tree_identifier;
@@ -51,19 +51,19 @@
 public:
   tree_oct_obj (int l = -1, int c = -1) : tree_multi_val_ret (l, c) { }
 
-  tree_oct_obj (const Octave_object& v, int l = -1, int c = -1)
+  tree_oct_obj (const octave_value_list& v, int l = -1, int c = -1)
     : tree_multi_val_ret (l, c), values (v) { }
 
   ~tree_oct_obj (void) { }
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout, const Octave_object& args);
+  octave_value_list eval (bool print, int nargout, const octave_value_list& args);
 
   void print_code (ostream&) { }
 
 private:
-  Octave_object values;
+  octave_value_list values;
 };
 
 // Index expressions.
@@ -102,9 +102,9 @@
 
   void mark_for_possible_ans_assign (void);
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout, const Octave_object& args);
+  octave_value_list eval (bool print, int nargout, const octave_value_list& args);
 
   void eval_error (void);
 
@@ -134,9 +134,9 @@
 
   ~tree_multi_assignment_expression (void);
 
-  tree_constant eval (bool print);
+  octave_value eval (bool print);
 
-  Octave_object eval (bool print, int nargout, const Octave_object& args);
+  octave_value_list eval (bool print, int nargout, const octave_value_list& args);
 
   bool is_assignment_expression (void) const
     { return true; }
--- a/src/pt-plot.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-plot.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -404,7 +404,7 @@
 
   if (lower)
     {
-      tree_constant lower_val = lower->eval (false);
+      octave_value lower_val = lower->eval (false);
       if (error_state)
 	{
 	  ::error ("evaluating lower bound of plot range");
@@ -421,7 +421,7 @@
 
   if (upper)
     {
-      tree_constant upper_val = upper->eval (false);
+      octave_value upper_val = upper->eval (false);
       if (error_state)
 	{
 	  ::error ("evaluating upper bound of plot range");
@@ -472,7 +472,7 @@
     {
       if (x[i])
 	{
-	  tree_constant tmp = x[i]->eval (false);
+	  octave_value tmp = x[i]->eval (false);
 	  if (error_state)
 	    {
 	      ::error ("evaluating plot using command");
@@ -599,7 +599,7 @@
 
       if (linetype)
 	{
-	  tree_constant tmp = linetype->eval (false);
+	  octave_value tmp = linetype->eval (false);
 	  if (! error_state && tmp.is_defined ())
 	    {
 	      double val = tmp.double_value ();
@@ -620,7 +620,7 @@
 
       if (pointtype)
 	{
-	  tree_constant tmp = pointtype->eval (false);
+	  octave_value tmp = pointtype->eval (false);
 	  if (! error_state && tmp.is_defined ())
 	    {
 	      double val = tmp.double_value ();
@@ -678,24 +678,24 @@
   delete style_clause;
 }
 
-tree_constant
-subplot::extract_plot_data (int ndim, tree_constant& data)
+octave_value
+subplot::extract_plot_data (int ndim, octave_value& data)
 {
-  tree_constant retval;
+  octave_value retval;
 
   if (using_clause)
     {
       ColumnVector val = using_clause->values (ndim);
 
-      Octave_object args;
+      octave_value_list args;
       args(1) = val;
-      args(0) = tree_constant::magic_colon_t;
+      args(0) = octave_value::magic_colon_t;
 
-      Octave_object tmp = data.eval (0, 1, args);
+      octave_value_list tmp = data.eval (0, 1, args);
       retval = tmp(0);
 
       if (error_state)
-	return tree_constant ();
+	return octave_value ();
     }
   else
     {
@@ -710,7 +710,7 @@
 	{
 	  error ("plots with errorbars require 3 or 4 columns of data");
 	  error ("but %d were provided", nc);
-	  return tree_constant ();
+	  return octave_value ();
 	}
     }
 
@@ -722,7 +722,7 @@
 {
   if (plot_data)
     {
-      tree_constant data = plot_data->eval (false);
+      octave_value data = plot_data->eval (false);
 
       if (! error_state && data.is_defined ())
 	{
@@ -767,7 +767,7 @@
 	      // Eliminate the need for printing a using clause to
 	      // plot_buf.
 
-	      tree_constant tmp_data = extract_plot_data (ndim, data);
+	      octave_value tmp_data = extract_plot_data (ndim, data);
 
 	      if (tmp_data.is_defined ())
 		{
@@ -814,7 +814,7 @@
 
   if (title_clause)
     {
-      tree_constant tmp = title_clause->eval (false);
+      octave_value tmp = title_clause->eval (false);
       if (! error_state && tmp.is_string ())
 	plot_buf << " " << GNUPLOT_COMMAND_TITLE << " "
 	  << '"' << tmp.string_value () << '"';
@@ -912,7 +912,7 @@
 }
 
 string
-save_in_tmp_file (tree_constant& t, int ndim, bool parametric)
+save_in_tmp_file (octave_value& t, int ndim, bool parametric)
 {
   string name = oct_tempnam ();
 
@@ -991,7 +991,7 @@
 DEFUN (clearplot, , ,
   "clearplot (): clear the plot window")
 {
-  Octave_object retval;
+  octave_value_list retval;
   send_to_plot_stream ("clear\n");
 
   // XXX FIXME XXX -- instead of just clearing these things, it would
@@ -1017,7 +1017,7 @@
 DEFUN (closeplot, , ,
   "closeplot (): close the stream to plotter")
 {
-  Octave_object retval;
+  octave_value_list retval;
   close_plot_stream ();
   return retval;
 }
@@ -1028,7 +1028,7 @@
 determine whether the plot window is cleared before the next line is\n\
 drawn.  With no argument, toggle the current state.") 
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -1071,7 +1071,7 @@
 DEFUN (purge_tmp_files, , ,
   "delete temporary data files used for plotting")
 {
-  Octave_object retval;
+  octave_value_list retval;
   cleanup_tmp_files ();
   return retval;
 }
@@ -1081,7 +1081,7 @@
 \n\
 set plotting options")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -1127,7 +1127,7 @@
 \n\
 show plotting options")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
--- a/src/pt-plot.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/pt-plot.h	Thu Apr 25 05:55:19 1996 +0000
@@ -202,7 +202,7 @@
       return this;
     }
 
-  tree_constant extract_plot_data (int ndim, tree_constant& data);
+  octave_value extract_plot_data (int ndim, octave_value& data);
 
   int handle_plot_data (int ndim, ostrstream& plot_buf);
 
@@ -233,7 +233,7 @@
   void print_code (ostream& os);
 };
 
-extern string save_in_tmp_file (tree_constant& t, int ndim = 2,
+extern string save_in_tmp_file (octave_value& t, int ndim = 2,
 				bool parametric = false);
 
 extern void mark_for_deletion (const string&);
--- a/src/qpsol.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/qpsol.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -103,7 +103,7 @@
 
 */
 
-  Octave_object retval;
+  octave_value_list retval;
 
 #if defined (QPSOL_MISSING)
 
@@ -385,10 +385,10 @@
   warning ("qpsol_options: no match for `%s'", keyword.c_str ());
 }
 
-static Octave_object
+static octave_value_list
 show_qpsol_option (const string& keyword)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   QPSOL_OPTIONS *list = qpsol_option_table;
 
@@ -425,7 +425,7 @@
 to the shortest match.")
 #endif
 {
-  Octave_object retval;
+  octave_value_list retval;
 
 #if defined (QPSOL_MISSING)
 
--- a/src/qr.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/qr.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -55,7 +55,7 @@
 qr (X) alone returns the output of the LAPACK routine dgeqrf, such\n\
 that R = triu (qr (X))")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -65,14 +65,14 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int arg_is_empty = empty_arg ("qr", arg.rows (), arg.columns ());
 
   if (arg_is_empty < 0)
     return retval;
   else if (arg_is_empty > 0)
-    return Octave_object (3, Matrix ());
+    return octave_value_list (3, Matrix ());
 
   QR::type type = nargout == 1 ? QR::raw
     : (nargin == 2 ? QR::economy : QR::std);
--- a/src/quad.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/quad.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -50,12 +50,12 @@
 {
   double retval = 0.0;
 
-  Octave_object args;
+  octave_value_list args;
   args(0) = x;
 
   if (quad_fcn)
     {
-      Octave_object tmp = quad_fcn->eval (0, 1, args);
+      octave_value_list tmp = quad_fcn->eval (0, 1, args);
 
       if (error_state)
 	{
@@ -105,7 +105,7 @@
 The optional argument @var{sing} is a vector of values at which the\n\
 integrand is singular.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -332,10 +332,10 @@
   warning ("quad_options: no match for `%s'", keyword.c_str ());
 }
 
-static Octave_object
+static octave_value_list
 show_quad_option (const string& keyword)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   QUAD_OPTIONS *list = quad_option_table;
 
@@ -360,7 +360,7 @@
 Set or show options for quad.  Keywords may be abbreviated\n\
 to the shortest match.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/qzval.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/qzval.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -40,14 +40,14 @@
 compute generalized eigenvalues of the matrix pencil (A - lambda B).\n\
 A and B must be real matrices.")
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nargin = args.length ();
 
   if (nargin == 2)
     {
-      tree_constant arg_a = args(0);
-      tree_constant arg_b = args(1);
+      octave_value arg_a = args(0);
+      octave_value arg_b = args(1);
 
       Matrix a = arg_a.matrix_value ();
       Matrix b = arg_b.matrix_value ();
--- a/src/rand.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/rand.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -150,10 +150,10 @@
   initialized = 1;
 }
 
-static Octave_object
-do_rand (const Octave_object& args, int nargin)
+static octave_value_list
+do_rand (const octave_value_list& args, int nargin)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int n = 0;
   int m = 0;
@@ -167,7 +167,7 @@
     }
   else if (nargin == 1)
     {
-      tree_constant tmp = args(0);
+      octave_value tmp = args(0);
 
       if (tmp.is_string ())
 	{
@@ -341,7 +341,7 @@
 \n\
 See also: randn")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -375,7 +375,7 @@
 \n\
 See also: rand")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/resource.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/resource.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -80,11 +80,11 @@
 
   tv_tmp ["sec"] = (double) ru.ru_utime.tv_sec;
   tv_tmp ["usec"] = (double) ru.ru_utime.tv_usec;
-  m ["utime"] = tree_constant (tv_tmp);
+  m ["utime"] = octave_value (tv_tmp);
 
   tv_tmp ["sec"] = (double) ru.ru_stime.tv_sec;
   tv_tmp ["usec"] = (double) ru.ru_stime.tv_usec;
-  m ["stime"] = tree_constant (tv_tmp);
+  m ["stime"] = octave_value (tv_tmp);
 
   m ["maxrss"] = (double) ru.ru_maxrss;
   m ["ixrss"] = (double) ru.ru_ixrss;
@@ -118,7 +118,7 @@
 
   tv_tmp ["sec"] = (double) seconds;
   tv_tmp ["usec"] = (double) (fraction * 1e6 / HZ);
-  m ["utime"] = tree_constant (tv_tmp);
+  m ["utime"] = octave_value (tv_tmp);
 
   ticks = t.tms_stime + t.tms_cstime;
   fraction = ticks % HZ;
@@ -126,17 +126,17 @@
 
   tv_tmp ["sec"] = (double) seconds;
   tv_tmp ["usec"] = (double) (fraction * 1e6 / HZ);
-  m ["stime"] = tree_constant (tv_tmp);
+  m ["stime"] = octave_value (tv_tmp);
 
 #else
 
   tv_tmp ["sec"] = 0.0;
   tv_tmp ["usec"] = 0.0;
-  m ["utime"] = tree_constant (tv_tmp);
+  m ["utime"] = octave_value (tv_tmp);
 
   tv_tmp ["sec"] = 0.0;
   tv_tmp ["usec"] = 0.0;
-  m ["stime"] = tree_constant (tv_tmp);
+  m ["stime"] = octave_value (tv_tmp);
 
 #endif
 
@@ -157,7 +157,7 @@
 
 #endif
 
-  return tree_constant (m);
+  return octave_value (m);
 }
 
 /*
--- a/src/schur.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/schur.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -50,7 +50,7 @@
   D = discrete time poles\n\
   U = unordered schur (default)")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -60,7 +60,7 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   string ord;
 
@@ -93,7 +93,7 @@
   if (arg_is_empty < 0)
     return retval;
   else if (arg_is_empty > 0)
-    return Octave_object (2, Matrix ());
+    return octave_value_list (2, Matrix ());
 
   if (nr != nc)
     {
--- a/src/sort.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/sort.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -152,10 +152,10 @@
       ms.elem (i, j) = m.elem (k-1, j); \
     }
 
-static Octave_object
+static octave_value_list
 mx_sort (const Matrix& m)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nr = m.rows ();
   int nc = m.columns ();
@@ -188,10 +188,10 @@
   return retval;
 }
 
-static Octave_object
+static octave_value_list
 mx_sort (const RowVector& v)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int n = v.capacity ();
 
@@ -214,16 +214,16 @@
       VECTOR_CREATE_RETURN_VALUES (vs, v);
     }
 
-  retval (1) = tree_constant (idx, 0);
-  retval (0) = tree_constant (vs, 0);
+  retval (1) = octave_value (idx, 0);
+  retval (0) = octave_value (vs, 0);
 
   return retval;
 }
 
-static Octave_object
+static octave_value_list
 mx_sort (const ComplexMatrix& cm)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nr = cm.rows ();
   int nc = cm.columns ();
@@ -266,10 +266,10 @@
   return retval;
 }
 
-static Octave_object
+static octave_value_list
 mx_sort (ComplexRowVector& cv)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int n = cv.capacity ();
 
@@ -302,8 +302,8 @@
       VECTOR_CREATE_RETURN_VALUES (cvs, cv);
     }
 
-  retval (1) = tree_constant (idx, 0);
-  retval (0) = tree_constant (cvs, 0);
+  retval (1) = octave_value (idx, 0);
+  retval (0) = octave_value (cvs, 0);
 
   return retval;
 }
@@ -313,7 +313,7 @@
 \n\
 sort the columns of X, optionally return sort index")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -329,7 +329,7 @@
   else
     retval.resize (1);
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   if (arg.is_real_type ())
     {
--- a/src/strfns.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/strfns.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -39,7 +39,7 @@
 DEFUN (isstr, args, ,
   "isstr (X): return 1 if X is a string, 0 otherwise")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -54,7 +54,7 @@
 DEFUN (setstr, args, ,
   "setstr (V): convert a vector to a string")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -69,13 +69,13 @@
 DEFUN (toascii, args, ,
   "toascii (STRING): return ASCII representation of STRING in a matrix")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
   if (nargin == 1)
     {
-      tree_constant arg = args(0);
+      octave_value arg = args(0);
 
       if (arg.is_string ())
 	{
--- a/src/svd.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/svd.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -46,7 +46,7 @@
 \n\
 X may not contain any Inf or NaN values.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -56,14 +56,14 @@
       return retval;
     }
 
-  tree_constant arg = args(0);
+  octave_value arg = args(0);
 
   int arg_is_empty = empty_arg ("svd", arg.rows (), arg.columns ());
 
   if (arg_is_empty < 0)
     return retval;
   else if (arg_is_empty > 0)
-    return Octave_object (3, Matrix ());
+    return octave_value_list (3, Matrix ());
 
   SVD::type type = ((nargout == 0 || nargout == 1)
 		    ? SVD::sigma_only
@@ -88,7 +88,7 @@
 
 	  if (nargout == 0 || nargout == 1)
 	    {
-	      retval(0) = tree_constant (sigma.diag (), 1);
+	      retval(0) = octave_value (sigma.diag (), 1);
 	    }
 	  else
 	    {
@@ -117,7 +117,7 @@
 
 	  if (nargout == 0 || nargout == 1)
 	    {
-	      retval(0) = tree_constant (sigma.diag (), 1);
+	      retval(0) = octave_value (sigma.diag (), 1);
 	    }
 	  else
 	    {
--- a/src/syl.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/syl.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -36,7 +36,7 @@
 DEFUN_DLD_BUILTIN (syl, args, nargout,
   "X = syl (A, B, C): solve the Sylvester equation A X + X B + C = 0")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -46,9 +46,9 @@
       return retval;
     }
 
-  tree_constant arg_a = args(0);
-  tree_constant arg_b = args(1);
-  tree_constant arg_c = args(2);
+  octave_value arg_a = args(0);
+  octave_value arg_b = args(1);
+  octave_value arg_c = args(2);
 
   int a_nr = arg_a.rows ();
   int a_nc = arg_a.columns ();
--- a/src/symtab.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/symtab.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -49,7 +49,7 @@
   init_state ();
 }
 
-symbol_def::symbol_def (tree_constant *t)
+symbol_def::symbol_def (octave_value *t)
 {
   init_state ();
   definition = t;
@@ -136,7 +136,7 @@
 }
 
 void
-symbol_def::define (tree_constant *t)
+symbol_def::define (octave_value *t)
 {
   definition = t;
   if (! is_builtin_variable ())
@@ -370,7 +370,7 @@
 }
 
 int
-symbol_record::define (tree_constant *t)
+symbol_record::define (octave_value *t)
 {
   if (is_variable () && read_only_error ())
     return 0;
@@ -398,7 +398,7 @@
     {
       // Would be nice to be able to avoid this cast.  XXX FIXME XXX
 
-      definition->define ((tree_constant *) saved_def);
+      definition->define ((octave_value *) saved_def);
       return 0;
     }
 
@@ -465,7 +465,7 @@
 }
 
 int
-symbol_record::define_as_fcn (tree_constant *t)
+symbol_record::define_as_fcn (octave_value *t)
 {
   if (is_variable () && read_only_error ())
     return 0;
@@ -491,7 +491,7 @@
 }
 
 int
-symbol_record::define_builtin_var (tree_constant *t)
+symbol_record::define_builtin_var (octave_value *t)
 {
   define (t);
   if (is_variable ())
@@ -690,7 +690,7 @@
     {
       // Would be nice to avoid this cast.  XXX FIXME XXX
 
-      tree_constant *tmp = (tree_constant *) sr.def ();
+      octave_value *tmp = (octave_value *) sr.def ();
       if (tmp->is_real_scalar ())
 	const_type = SR_INFO_SCALAR;
       else if (tmp->is_complex_scalar ())
--- a/src/symtab.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/symtab.h	Thu Apr 25 05:55:19 1996 +0000
@@ -42,7 +42,7 @@
 class tree;
 class tree_fvc;
 class tree_builtin;
-class tree_constant;
+class octave_value;
 class tree_function;
 
 class string_vector;
@@ -62,7 +62,7 @@
 public:
 
   symbol_def (void);
-  symbol_def (tree_constant *t);
+  symbol_def (octave_value *t);
   symbol_def (tree_builtin *t, unsigned fcn_type = 0);
   symbol_def (tree_function *t, unsigned fcn_type = 0);
 
@@ -77,7 +77,7 @@
   int is_builtin_variable (void) const;
   int is_builtin_function (void) const;
 
-  void define (tree_constant *t);
+  void define (octave_value *t);
   void define (tree_builtin *t, unsigned fcn_type = 0);
   void define (tree_function *t, unsigned fcn_type = 0);
 
@@ -159,11 +159,11 @@
 
   void set_sv_function (sv_Function f);
 
-  int define (tree_constant *t);
+  int define (octave_value *t);
   int define (tree_builtin *t, int text_fcn = 0);
   int define (tree_function *t, int text_fcn = 0);
-  int define_as_fcn (tree_constant *t);
-  int define_builtin_var (tree_constant *t);
+  int define_as_fcn (octave_value *t);
+  int define_builtin_var (octave_value *t);
 
   void document (const string& h);
 
--- a/src/syscalls.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/syscalls.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -312,7 +312,7 @@
   Like stat (NAME), but if NAME refers to a symbolic link, returns\n\
   information about the link itself, not the file that it points to.")
 {
-  tree_constant retval = -1.0;
+  octave_value retval = -1.0;
 
   if (args.length () == 1)
     {
@@ -323,7 +323,7 @@
 	  file_stat fs (fname, false);
 
 	  if (fs)
-	    retval = tree_constant (mk_stat_map (fs));
+	    retval = octave_value (mk_stat_map (fs));
 	}
     }
   else
@@ -374,7 +374,7 @@
 DEFUN (pipe, args, ,
   "[file_ids, status] = pipe (): create an interprocess channel")
 {
-  Octave_object retval (2, tree_constant (-1.0));
+  octave_value_list retval (2, octave_value (-1.0));
 
 #if defined (HAVE_PIPE)
   int nargin = args.length ();
@@ -434,7 +434,7 @@
 \n\
   If the file does not exist, -1 is returned.")
 {
-  tree_constant retval = -1.0;
+  octave_value retval = -1.0;
 
   if (args.length () == 1)
     {
@@ -445,7 +445,7 @@
 	  file_stat fs (fname);
 
 	  if (fs)
-	    retval = tree_constant (mk_stat_map (fs));
+	    retval = octave_value (mk_stat_map (fs));
 	}
     }
   else
--- a/src/sysdep.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/sysdep.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -389,7 +389,7 @@
 DEFUN (clc, , ,
   "clc (): clear screen")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   rl_beg_of_line ();
   rl_kill_line (1);
@@ -413,7 +413,7 @@
 DEFUN (getenv, args, ,
   "getenv (STRING): get environment variable values")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -440,7 +440,7 @@
 DEFUN (putenv, args, ,
   "putenv (VAR, VALUE): define environment variable VAR=VALUE")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -469,7 +469,7 @@
 DEFUN (kbhit, , ,
   "kbhit: get a single character from the terminal")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   // XXX FIXME XXX -- add timeout and default value args?
 
@@ -488,7 +488,7 @@
 DEFUN (pause, args, ,
   "pause (seconds): suspend program execution")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -576,7 +576,7 @@
 DEFUN (tilde_expand, args, ,
   "tilde_expand (STRING): perform tilde expansion on STRING")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
--- a/src/timefns.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/timefns.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -128,7 +128,7 @@
   returned from localtime() but with values corresponding to\n\
   Coordinated Universal Time (UTC).")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (args.length () == 1)
     {
@@ -140,7 +140,7 @@
 	  double ip;
 	  double fraction = modf (tmp, &ip); 
 
-	  retval = tree_constant (mk_tm_map (gmtime (&timeval), fraction));
+	  retval = octave_value (mk_tm_map (gmtime (&timeval), fraction));
 	}
     }
   else
@@ -167,7 +167,7 @@
     isdst : Daylight Savings Time flag\n\
     zone  : Time zone")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (args.length () == 1)
     {
@@ -179,7 +179,7 @@
 	  double ip;
 	  double fraction = modf (tmp, &ip); 
 
-	  retval = tree_constant (mk_tm_map (localtime (&timeval), fraction));
+	  retval = octave_value (mk_tm_map (localtime (&timeval), fraction));
 	}
     }
   else
@@ -191,7 +191,7 @@
 DEFUN (mktime, args, ,
   "mktime (TMSTRUCT)")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (args.length () == 1 && args(0).is_map ()) 
     {
@@ -271,7 +271,7 @@
     %y	last two digits of year (00..99)\n\
     %Y	year (1970...)")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   if (args.length () == 2 && args(0).is_string () && args(1).is_map ()) 
     {
--- a/src/toplev.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/toplev.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -271,7 +271,7 @@
 Parse and execute the contents of FILE.  Like executing commands in a\n\
 script file but without requiring the file to be named `FILE.m'.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -331,7 +331,7 @@
 DEFUN_TEXT (casesen, args, ,
   "casesen [on|off]")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -355,7 +355,7 @@
 \n\
 Have Octave ask the system, \"What kind of computer are you?\"")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -390,7 +390,7 @@
 \n\
 STATUS should be an integer value.  If STATUS is missing, 0 is assumed.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int exit_status = 0;
 
@@ -418,7 +418,7 @@
 DEFUN (warranty, , ,
   "warranty (): describe copying conditions")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   ostrstream output_buf;
   output_buf << "\n" OCTAVE_NAME_VERSION_AND_COPYRIGHT "\n\n\
@@ -445,16 +445,16 @@
 
 // XXX FIXME XXX -- this may not be the best place for these...
 
-Octave_object
-feval (const Octave_object& args, int nargout)
+octave_value_list
+feval (const octave_value_list& args, int nargout)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   tree_fvc *fcn = is_valid_function (args(0), "feval", 1);
   if (fcn)
     {
       int tmp_nargin = args.length () - 1;
-      Octave_object tmp_args;
+      octave_value_list tmp_args;
       tmp_args.resize (tmp_nargin);
       for (int i = 0; i < tmp_nargin; i++)
 	tmp_args(i) = args(i+1);
@@ -469,7 +469,7 @@
 \n\
 evaluate NAME as a function, passing ARGS as its arguments")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -481,7 +481,7 @@
   return retval;
 }
 
-static Octave_object
+static octave_value_list
 eval_string (const string& s, int print, int& parse_status,
 	     int nargout) 
 {
@@ -518,7 +518,7 @@
 
   run_unwind_frame ("eval_string");
 
-  Octave_object retval;
+  octave_value_list retval;
 
   if (parse_status == 0 && command)
     {
@@ -529,20 +529,20 @@
   return retval;
 }
 
-tree_constant
+octave_value
 eval_string (const string& s, int print, int& parse_status)
 {
-  tree_constant retval;
+  octave_value retval;
 
-  Octave_object tmp = eval_string (s, print, parse_status, 1);
+  octave_value_list tmp = eval_string (s, print, parse_status, 1);
 
   retval = tmp(0);
 
   return retval;
 }
 
-static Octave_object
-eval_string (const tree_constant& arg, int& parse_status, int nargout)
+static octave_value_list
+eval_string (const octave_value& arg, int& parse_status, int nargout)
 {
   string s = arg.string_value ();
 
@@ -563,7 +563,7 @@
 Evaluate the string TRY as octave code.  If that fails, evaluate the\n\
 string CATCH.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -594,7 +594,7 @@
 
 	  eval_string (args(1), parse_status, nargout);
 
-	  retval = Octave_object ();
+	  retval = octave_value_list ();
 	}
 
       run_unwind_frame ("Feval");
@@ -613,10 +613,10 @@
   delete (iprocstream *) p;
 }
 
-static Octave_object
+static octave_value_list
 do_system (const string& cmd_str, bool return_output)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   iprocstream *cmd = new iprocstream (cmd_str.c_str ());
 
@@ -685,7 +685,7 @@
 sent to Octave's standard output (possibly being passed through the\n\
 pager).")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -757,7 +757,7 @@
 {
   while (! octave_atexit_functions.empty ())
     {
-      Octave_object fcn = octave_atexit_functions.pop ();
+      octave_value_list fcn = octave_atexit_functions.pop ();
 
       feval (fcn, 0);
     }
@@ -769,7 +769,7 @@
 Functions are called with no arguments in the reverse of the order in
 which they were registered with atexit()")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
 #if defined (HAVE_ATEXIT) || defined (HAVE_ON_EXIT)
   int nargin = args.length ();
--- a/src/toplev.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/toplev.h	Thu Apr 25 05:55:19 1996 +0000
@@ -25,7 +25,7 @@
 
 #include <cstdio>
 
-class tree_constant;
+class octave_value;
 class tree_function;
 class tree_statement_list;
 class charMatrix;
@@ -40,7 +40,7 @@
 			       int verbose = 0,
 			       const char *warn_for = 0);
 
-extern tree_constant eval_string (const string&, int print,
+extern octave_value eval_string (const string&, int print,
 				  int& parse_status);
 
 extern int main_loop (void);
--- a/src/utils.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/utils.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -337,7 +337,7 @@
 DEFUN (file_in_path, args, ,
   "file_in_path (PATH, NAME)")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -477,7 +477,7 @@
 DEFUN (undo_string_escapes, args, ,
   "undo_string_escapes (STRING)")
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nargin = args.length ();
 
--- a/src/utils.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/utils.h	Thu Apr 25 05:55:19 1996 +0000
@@ -30,7 +30,7 @@
 
 #include "lo-utils.h"
 
-class Octave_object;
+class octave_value_list;
 class string_vector;
 
 extern char *strsave (const char *);
--- a/src/variables.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/variables.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -124,10 +124,10 @@
   return (sr && sr->is_linked_to_global ());
 }
 
-// Is this tree_constant a valid function?
+// Is this octave_value a valid function?
 
 tree_fvc *
-is_valid_function (const tree_constant& arg, const string& warn_for, int warn)
+is_valid_function (const octave_value& arg, const string& warn_for, int warn)
 {
   tree_fvc *ans = 0;
 
@@ -167,7 +167,7 @@
   "is_global (X): return 1 if the string X names a global variable\n\
 otherwise, return 0.")
 {
-  Octave_object retval = 0.0;
+  octave_value_list retval = 0.0;
 
   int nargin = args.length ();
 
@@ -203,7 +203,7 @@
    3 : NAME is a .oct file in the current LOADPATH\n\
    5 : NAME is a built-in function")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
@@ -247,9 +247,9 @@
 	  retval = 0.0;
 	  if (def->is_constant ())
 	    {
-	      tree_constant *tmp = (tree_constant *) def;
+	      octave_value *tmp = (octave_value *) def;
 
-	      tree_constant ult	= tmp->lookup_map_element (struct_elts, 0, 1);
+	      octave_value ult	= tmp->lookup_map_element (struct_elts, 0, 1);
 
 	      if (ult.is_defined ())
 		retval = 1.0;
@@ -902,7 +902,7 @@
 
   if (defn)
     {
-      tree_constant val = defn->eval (0);
+      octave_value val = defn->eval (0);
 
       if (! error_state && val.is_string ())
 	retval = val.string_value ();
@@ -929,7 +929,7 @@
 
   if (defn)
     {
-      tree_constant val = defn->eval (0);
+      octave_value val = defn->eval (0);
 
       if (! error_state && val.is_scalar_type ())
 	{
@@ -943,10 +943,10 @@
 
 // Look for the given name in the global symbol table.
 
-tree_constant
+octave_value
 builtin_any_variable (const string& name)
 {
-  tree_constant retval;
+  octave_value retval;
 
   symbol_record *sr = global_sym_tab->lookup (name, 0, 0);
 
@@ -990,11 +990,11 @@
     {
       // Would be nice not to have this cast.  XXX FIXME XXX
 
-      tree_constant *tmp = (tree_constant *) sr->def ();
+      octave_value *tmp = (octave_value *) sr->def ();
       if (tmp)
-	tmp = new tree_constant (*tmp);
+	tmp = new octave_value (*tmp);
       else
-	tmp = new tree_constant ();
+	tmp = new octave_value ();
       gsr->define (tmp);
     }
   else
@@ -1004,7 +1004,7 @@
   // to hide it with a variable.
 
   if (gsr->is_function ())
-    gsr->define ((tree_constant *) 0);
+    gsr->define ((octave_value *) 0);
 
   sr->alias (gsr, 1);
   sr->mark_as_linked_to_global ();
@@ -1195,7 +1195,7 @@
 \n\
 Associate a cryptic message with a variable name.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -1230,10 +1230,10 @@
 // XXX FIXME XXX -- this should take a list of regular expressions
 // naming the variables to look for.
 
-static Octave_object
+static octave_value_list
 do_who (int argc, const string_vector& argv)
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int show_builtins = 0;
   int show_functions = (curr_sym_tab == top_level_sym_tab);
@@ -1338,7 +1338,7 @@
 List currently defined symbol(s).  Options may be shortened to one\n\
 character, but may not be combined.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
@@ -1358,11 +1358,11 @@
 List currently defined symbol(s).  Options may be shortened to one\n\
 character, but may not be combined.")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int nargin = args.length ();
 
-  Octave_object tmp_args;
+  octave_value_list tmp_args;
   for (int i = nargin; i > 0; i--)
     tmp_args(i) = args(i-1);
   tmp_args(0) = "-long";
@@ -1433,7 +1433,7 @@
 }
 
 void
-install_builtin_variable_as_function (const string& name, tree_constant *val,
+install_builtin_variable_as_function (const string& name, octave_value *val,
 				      int protect, int eternal,
 				      const string& help)
 {
@@ -1476,28 +1476,28 @@
 void
 bind_nargin_and_nargout (symbol_table *sym_tab, int nargin, int nargout)
 {
-  tree_constant *tmp;
+  octave_value *tmp;
   symbol_record *sr;
 
   sr = sym_tab->lookup ("nargin", 1, 0);
   sr->unprotect ();
-  tmp = new tree_constant (nargin);
+  tmp = new octave_value (nargin);
   sr->define (tmp);
 
   sr = sym_tab->lookup ("nargout", 1, 0);
   sr->unprotect ();
-  tmp = new tree_constant (nargout);
+  tmp = new octave_value (nargout);
   sr->define (tmp);
 }
 #endif
 
 void
-bind_ans (const tree_constant& val, int print)
+bind_ans (const octave_value& val, int print)
 {
   static symbol_record *sr = global_sym_tab->lookup ("ans", 1, 0);
 
   tree_identifier *ans_id = new tree_identifier (sr);
-  tree_constant *tmp = new tree_constant (val);
+  octave_value *tmp = new octave_value (val);
 
   // XXX FIXME XXX -- making ans_id static, passing its address to
   // tree_simple_assignment_expression along with a flag to not delete
@@ -1540,7 +1540,7 @@
 // functions needed?
 
 void
-bind_builtin_variable (const string& varname, tree_constant *val,
+bind_builtin_variable (const string& varname, octave_value *val,
 		       int protect, int eternal, sv_Function sv_fcn,
 		       const string& help)
 {
@@ -1572,11 +1572,11 @@
 }
 
 void
-bind_builtin_variable (const string& varname, const tree_constant& val,
+bind_builtin_variable (const string& varname, const octave_value& val,
 		       int protect, int eternal, sv_Function sv_fcn,
 		       const string& help)
 {
-  tree_constant *tc = new tree_constant (val);
+  octave_value *tc = new octave_value (val);
   bind_builtin_variable (varname, tc, protect, eternal, sv_fcn, help);
 }
 
@@ -1899,7 +1899,7 @@
 \n\
 With -x, exclude the named variables")
 {
-  Octave_object retval;
+  octave_value_list retval;
 
   int argc = args.length () + 1;
 
--- a/src/variables.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/variables.h	Thu Apr 25 05:55:19 1996 +0000
@@ -27,8 +27,8 @@
 class symbol_table;
 
 class tree_fvc;
-class tree_constant;
-class Octave_object;
+class octave_value;
+class octave_value_list;
 class string_vector;
 
 #include <string>
@@ -39,13 +39,13 @@
 
 struct builtin_variable
 {
-  builtin_variable (const string& n, tree_constant *v, int iaf, int p,
+  builtin_variable (const string& n, octave_value *v, int iaf, int p,
 		    int e, sv_Function svf, const string& h)
     : name (n), value (v), install_as_function (iaf), protect (p),
       eternal (e), sv_function (svf), help_string (h) { }
 
   string name;
-  tree_constant *value;
+  octave_value *value;
   int install_as_function;
   int protect;
   int eternal;
@@ -53,7 +53,7 @@
   string help_string;
 };
 
-typedef Octave_object (*Octave_builtin_fcn)(const Octave_object&, int);
+typedef octave_value_list (*Octave_builtin_fcn)(const octave_value_list&, int);
 
 struct builtin_function
 {
@@ -77,7 +77,7 @@
 
 extern string builtin_string_variable (const string&);
 extern int builtin_real_scalar_variable (const string&, double&);
-extern tree_constant builtin_any_variable (const string&);
+extern octave_value builtin_any_variable (const string&);
 
 extern void link_to_global_variable (symbol_record *sr);
 extern void link_to_builtin_variable (symbol_record *sr);
@@ -89,7 +89,7 @@
 extern bool is_text_function_name (const string&);
 extern bool is_globally_visible (const string&);
 
-extern tree_fvc *is_valid_function (const tree_constant&, const string&,
+extern tree_fvc *is_valid_function (const octave_value&, const string&,
 				    int warn = 0); 
 
 extern string_vector make_name_list (void);
@@ -102,7 +102,7 @@
 
 extern void
 install_builtin_variable_as_function
-  (const string& name, tree_constant *val, int protect = 0,
+  (const string& name, octave_value *val, int protect = 0,
    int eternal = 0, const string& help = string ());
 
 extern void alias_builtin (const string& alias, const string& name);
@@ -112,18 +112,18 @@
 				     int nargin, int nargout);
 #endif
 
-extern void bind_ans (const tree_constant& val, int print);
+extern void bind_ans (const octave_value& val, int print);
 
 extern void bind_global_error_variable (void);
 
 extern void clear_global_error_variable (void *);
 
-extern void bind_builtin_variable (const string&, tree_constant *,
+extern void bind_builtin_variable (const string&, octave_value *,
 				   int protect = 0, int eternal = 0,
 				   sv_Function f = (sv_Function) 0,
 				   const string& help = string ());
 
-extern void bind_builtin_variable (const string&, const tree_constant&,
+extern void bind_builtin_variable (const string&, const octave_value&,
 				   int protect = 0, int eternal = 0,
 				   sv_Function f = (sv_Function) 0,
 				   const string& help = string ());
--- a/src/xpow.cc	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/xpow.cc	Thu Apr 25 05:55:19 1996 +0000
@@ -79,7 +79,7 @@
 //   E -> error, trapped in arith-ops.cc.
 
 // -*- 1 -*-
-tree_constant
+octave_value
 xpow (double a, double b)
 {
   if (a < 0.0 && (int) b != b)
@@ -92,10 +92,10 @@
 }
 
 // -*- 2 -*-
-tree_constant
+octave_value
 xpow (double a, const Matrix& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = b.rows ();
   int nc = b.columns ();
@@ -125,7 +125,7 @@
 }
 
 // -*- 3 -*-
-tree_constant
+octave_value
 xpow (double a, const Complex& b)
 {
   Complex result;
@@ -135,10 +135,10 @@
 }
 
 // -*- 4 -*-
-tree_constant
+octave_value
 xpow (double a, const ComplexMatrix& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = b.rows ();
   int nc = b.columns ();
@@ -170,10 +170,10 @@
 }
 
 // -*- 5 -*-
-tree_constant
+octave_value
 xpow (const Matrix& a, double b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = a.rows ();
   int nc = a.columns ();
@@ -240,10 +240,10 @@
 }
 
 // -*- 6 -*-
-tree_constant
+octave_value
 xpow (const Matrix& a, const Complex& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = a.rows ();
   int nc = a.columns ();
@@ -270,7 +270,7 @@
 }
 
 // -*- 7 -*-
-tree_constant
+octave_value
 xpow (const Complex& a, double b)
 {
   Complex result;
@@ -284,10 +284,10 @@
 }
 
 // -*- 8 -*-
-tree_constant
+octave_value
 xpow (const Complex& a, const Matrix& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = b.rows ();
   int nc = b.columns ();
@@ -319,7 +319,7 @@
 }
 
 // -*- 9 -*-
-tree_constant
+octave_value
 xpow (const Complex& a, const Complex& b)
 {
   Complex result;
@@ -328,10 +328,10 @@
 }
 
 // -*- 10 -*-
-tree_constant
+octave_value
 xpow (const Complex& a, const ComplexMatrix& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = b.rows ();
   int nc = b.columns ();
@@ -363,10 +363,10 @@
 }
 
 // -*- 11 -*-
-tree_constant
+octave_value
 xpow (const ComplexMatrix& a, double b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = a.rows ();
   int nc = a.columns ();
@@ -433,10 +433,10 @@
 }
 
 // -*- 12 -*-
-tree_constant
+octave_value
 xpow (const ComplexMatrix& a, const Complex& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = a.rows ();
   int nc = a.columns ();
@@ -478,10 +478,10 @@
 //   * -> not needed.
 
 // -*- 1 -*-
-tree_constant
+octave_value
 elem_xpow (double a, const Matrix& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = b.rows ();
   int nc = b.columns ();
@@ -512,7 +512,7 @@
 }
 
 // -*- 2 -*-
-tree_constant
+octave_value
 elem_xpow (double a, const ComplexMatrix& b)
 {
   int nr = b.rows ();
@@ -527,10 +527,10 @@
 }
 
 // -*- 3 -*-
-tree_constant
+octave_value
 elem_xpow (const Matrix& a, double b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = a.rows ();
   int nc = a.columns ();
@@ -561,10 +561,10 @@
 }
 
 // -*- 4 -*-
-tree_constant
+octave_value
 elem_xpow (const Matrix& a, const Matrix& b)
 {
-  tree_constant retval;
+  octave_value retval;
 
   int nr = a.rows ();
   int nc = a.columns ();
@@ -615,7 +615,7 @@
 }
 
 // -*- 5 -*-
-tree_constant
+octave_value
 elem_xpow (const Matrix& a, const Complex& b)
 {
   int nr = a.rows ();
@@ -630,7 +630,7 @@
 }
 
 // -*- 6 -*-
-tree_constant
+octave_value
 elem_xpow (const Matrix& a, const ComplexMatrix& b)
 {
   int nr = a.rows ();
@@ -647,7 +647,7 @@
 }
 
 // -*- 7 -*-
-tree_constant
+octave_value
 elem_xpow (const Complex& a, const Matrix& b)
 {
   int nr = b.rows ();
@@ -668,7 +668,7 @@
 }
 
 // -*- 8 -*-
-tree_constant
+octave_value
 elem_xpow (const Complex& a, const ComplexMatrix& b)
 {
   int nr = b.rows ();
@@ -683,7 +683,7 @@
 }
 
 // -*- 9 -*-
-tree_constant
+octave_value
 elem_xpow (const ComplexMatrix& a, double b)
 {
   int nr = a.rows ();
@@ -708,7 +708,7 @@
 }
 
 // -*- 10 -*-
-tree_constant
+octave_value
 elem_xpow (const ComplexMatrix& a, const Matrix& b)
 {
   int nr = a.rows ();
@@ -731,7 +731,7 @@
 }
 
 // -*- 11 -*-
-tree_constant
+octave_value
 elem_xpow (const ComplexMatrix& a, const Complex& b)
 {
   int nr = a.rows ();
@@ -746,7 +746,7 @@
 }
 
 // -*- 12 -*-
-tree_constant
+octave_value
 elem_xpow (const ComplexMatrix& a, const ComplexMatrix& b)
 {
   int nr = a.rows ();
--- a/src/xpow.h	Thu Apr 25 05:55:19 1996 +0000
+++ b/src/xpow.h	Thu Apr 25 05:55:19 1996 +0000
@@ -27,39 +27,39 @@
 
 class Matrix;
 class ComplexMatrix;
-class tree_constant;
+class octave_value;
 
-extern tree_constant xpow (double a, double b);
-extern tree_constant xpow (double a, const Matrix& b);
-extern tree_constant xpow (double a, const Complex& b);
-extern tree_constant xpow (double a, const ComplexMatrix& b);
+extern octave_value xpow (double a, double b);
+extern octave_value xpow (double a, const Matrix& b);
+extern octave_value xpow (double a, const Complex& b);
+extern octave_value xpow (double a, const ComplexMatrix& b);
 
-extern tree_constant xpow (const Matrix& a, double b);
-extern tree_constant xpow (const Matrix& a, const Complex& b);
+extern octave_value xpow (const Matrix& a, double b);
+extern octave_value xpow (const Matrix& a, const Complex& b);
 
-extern tree_constant xpow (const Complex& a, double b);
-extern tree_constant xpow (const Complex& a, const Matrix& b);
-extern tree_constant xpow (const Complex& a, const Complex& b);
-extern tree_constant xpow (const Complex& a, const ComplexMatrix& b);
+extern octave_value xpow (const Complex& a, double b);
+extern octave_value xpow (const Complex& a, const Matrix& b);
+extern octave_value xpow (const Complex& a, const Complex& b);
+extern octave_value xpow (const Complex& a, const ComplexMatrix& b);
 
-extern tree_constant xpow (const ComplexMatrix& a, double b);
-extern tree_constant xpow (const ComplexMatrix& a, const Complex& b);
+extern octave_value xpow (const ComplexMatrix& a, double b);
+extern octave_value xpow (const ComplexMatrix& a, const Complex& b);
 
-extern tree_constant elem_xpow (double a, const Matrix& b);
-extern tree_constant elem_xpow (double a, const ComplexMatrix& b);
+extern octave_value elem_xpow (double a, const Matrix& b);
+extern octave_value elem_xpow (double a, const ComplexMatrix& b);
 
-extern tree_constant elem_xpow (const Matrix& a, double b);
-extern tree_constant elem_xpow (const Matrix& a, const Matrix& b);
-extern tree_constant elem_xpow (const Matrix& a, const Complex& b);
-extern tree_constant elem_xpow (const Matrix& a, const ComplexMatrix& b);
+extern octave_value elem_xpow (const Matrix& a, double b);
+extern octave_value elem_xpow (const Matrix& a, const Matrix& b);
+extern octave_value elem_xpow (const Matrix& a, const Complex& b);
+extern octave_value elem_xpow (const Matrix& a, const ComplexMatrix& b);
 
-extern tree_constant elem_xpow (const Complex& a, const Matrix& b);
-extern tree_constant elem_xpow (const Complex& a, const ComplexMatrix& b);
+extern octave_value elem_xpow (const Complex& a, const Matrix& b);
+extern octave_value elem_xpow (const Complex& a, const ComplexMatrix& b);
 
-extern tree_constant elem_xpow (const ComplexMatrix& a, double b);
-extern tree_constant elem_xpow (const ComplexMatrix& a, const Matrix& b);
-extern tree_constant elem_xpow (const ComplexMatrix& a, const Complex& b);
-extern tree_constant elem_xpow (const ComplexMatrix& a,
+extern octave_value elem_xpow (const ComplexMatrix& a, double b);
+extern octave_value elem_xpow (const ComplexMatrix& a, const Matrix& b);
+extern octave_value elem_xpow (const ComplexMatrix& a, const Complex& b);
+extern octave_value elem_xpow (const ComplexMatrix& a,
 				const ComplexMatrix& b);
 
 #endif