changeset 2962:5e0fe4c5d52f

[project @ 1997-05-12 03:13:57 by jwe]
author jwe
date Mon, 12 May 1997 03:21:56 +0000
parents 8a77d52c9d02
children c0c280cda856
files src/help.cc src/ov-base.cc src/ov-base.h src/ov-bool-mat.cc src/ov-bool-mat.h src/ov-bool.cc src/ov-bool.h src/ov-complex.cc src/ov-complex.h src/ov-cx-mat.cc src/ov-cx-mat.h src/ov-list.cc src/ov-list.h src/ov-range.cc src/ov-range.h src/ov-re-mat.cc src/ov-re-mat.h src/ov-scalar.cc src/ov-scalar.h src/ov-str-mat.cc src/ov-str-mat.h src/ov-struct.cc src/ov-struct.h
diffstat 23 files changed, 76 insertions(+), 34 deletions(-) [+]
line wrap: on
line diff
--- a/src/help.cc
+++ b/src/help.cc
@@ -53,6 +53,7 @@
 #include "help.h"
 #include "input.h"
 #include "oct-obj.h"
+#include "oct-usr-fcn.h"
 #include "pager.h"
 #include "pathsearch.h"
 #include "pt-pr-code.h"
@@ -718,7 +719,7 @@
 }
 
 DEFUN_TEXT (type, args, nargout,
-  "type NAME ...]\n\
+  "type NAME\n\
 \n\
 display the definition of each NAME that refers to a function")
 {
@@ -782,7 +783,10 @@
 	    {
 	      if (sym_rec->is_user_function ())
 		{
-		  octave_symbol *defn = sym_rec->def ();
+		  octave_symbol *tmp = sym_rec->def ();
+
+		  octave_user_function *defn
+		    = static_cast<octave_user_function *> (tmp);
 
 		  string fn = defn->fcn_file_name ();
 		  string ff = fcn_file_in_path (fn);
@@ -815,8 +819,7 @@
 
 		      tree_print_code tpc (output_buf, "", pr_orig_txt);
 
-		      // XXX FIXME XXX
-		      // defn->accept (tpc);
+		      defn->accept (tpc);
 		    }
 		}
 
--- a/src/ov-base.cc
+++ b/src/ov-base.cc
@@ -52,7 +52,7 @@
 const string octave_base_value::t_name ("<unknown type>");
 
 octave_value
-octave_base_value::index (const octave_value_list&) const
+octave_base_value::do_index_op (const octave_value_list&) const
 {
   string nm = type_name ();
   error ("can't perform indexing operations for %s type", nm.c_str ());
@@ -68,7 +68,18 @@
 }
 
 octave_value
-octave_base_value::struct_elt_val (const string&, bool) const
+octave_base_value::do_struct_elt_index_op (const string&,
+					   const octave_value_list&,
+					   bool)
+{
+  string nm = type_name ();
+  error ("can't perform indexed structure reference operations for %s type",
+	 nm.c_str ());
+  return octave_value ();
+}
+
+octave_value
+octave_base_value::do_struct_elt_index_op (const string&, bool)
 {
   string nm = type_name ();
   error ("can't perform structure reference operations for %s type",
--- a/src/ov-base.h
+++ b/src/ov-base.h
@@ -70,11 +70,15 @@
   octave_value *try_narrowing_conversion (void)
     { return static_cast<octave_value *> (0); }
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   idx_vector index_vector (void) const;
 
-  octave_value struct_elt_val (const string& nm, bool silent) const;
+  octave_value
+  do_struct_elt_index_op (const string& nm, const octave_value_list& idx,
+			  bool silent);
+
+  octave_value do_struct_elt_index_op (const string& nm, bool silent);
 
   octave_variable_reference
   struct_elt_ref (octave_value *parent, const string& nm);
--- a/src/ov-bool-mat.cc
+++ b/src/ov-bool-mat.cc
@@ -79,7 +79,7 @@
 }
 
 octave_value
-octave_bool_matrix::index (const octave_value_list& idx) const
+octave_bool_matrix::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
--- a/src/ov-bool-mat.h
+++ b/src/ov-bool-mat.h
@@ -75,7 +75,7 @@
 
   octave_value *try_narrowing_conversion (void);
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   void assign (const octave_value_list& idx, const boolMatrix& rhs);
 
--- a/src/ov-bool.cc
+++ b/src/ov-bool.cc
@@ -76,7 +76,7 @@
 }
 
 octave_value
-octave_bool::index (const octave_value_list& idx) const
+octave_bool::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
@@ -96,7 +96,7 @@
 
       octave_value tmp (new octave_matrix (matrix_value ()));
 
-      retval = tmp.index (idx);
+      retval = tmp.do_index_op (idx);
     }
 
   return retval;
--- a/src/ov-bool.h
+++ b/src/ov-bool.h
@@ -74,7 +74,7 @@
 
   type_conv_fcn numeric_conversion_function (void) const;
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   idx_vector index_vector (void) const { return idx_vector (scalar); }
 
--- a/src/ov-complex.cc
+++ b/src/ov-complex.cc
@@ -73,7 +73,7 @@
 }
 
 octave_value
-octave_complex::index (const octave_value_list& idx) const
+octave_complex::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
@@ -93,7 +93,7 @@
 
       octave_value tmp (new octave_complex_matrix (complex_matrix_value ()));
 
-      retval = tmp.index (idx);
+      retval = tmp.do_index_op (idx);
     }
 
   return retval;
--- a/src/ov-complex.h
+++ b/src/ov-complex.h
@@ -74,7 +74,7 @@
 
   octave_value *try_narrowing_conversion (void);
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   int rows (void) const { return 1; }
   int columns (void) const { return 1; }
--- a/src/ov-cx-mat.cc
+++ b/src/ov-cx-mat.cc
@@ -89,7 +89,7 @@
 }
 
 octave_value
-octave_complex_matrix::index (const octave_value_list& idx) const
+octave_complex_matrix::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
--- a/src/ov-cx-mat.h
+++ b/src/ov-cx-mat.h
@@ -81,7 +81,7 @@
 
   octave_value *try_narrowing_conversion (void);
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   void assign (const octave_value_list& idx, const ComplexMatrix& rhs);
 
--- a/src/ov-list.cc
+++ b/src/ov-list.cc
@@ -49,7 +49,7 @@
 octave_list::t_name ("list");
 
 octave_value
-octave_list::index (const octave_value_list& idx) const
+octave_list::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
--- a/src/ov-list.h
+++ b/src/ov-list.h
@@ -70,7 +70,7 @@
   void operator delete (void *p, size_t size)
     { allocator.free (p, size); }
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   bool is_defined (void) const { return true; }
 
--- a/src/ov-range.cc
+++ b/src/ov-range.cc
@@ -86,7 +86,7 @@
 }
 
 octave_value
-octave_range::index (const octave_value_list& idx) const
+octave_range::do_index_op (const octave_value_list& idx) const
 {
   // XXX FIXME XXX -- this doesn't solve the problem of
   //
@@ -100,7 +100,7 @@
 
   octave_value tmp (new octave_matrix (range.matrix_value ()));
 
-  return tmp.index (idx);
+  return tmp.do_index_op (idx);
 }
 
 double
--- a/src/ov-range.h
+++ b/src/ov-range.h
@@ -91,7 +91,7 @@
 
   octave_value *try_narrowing_conversion (void);
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   idx_vector index_vector (void) const { return idx_vector (range); }
 
--- a/src/ov-re-mat.cc
+++ b/src/ov-re-mat.cc
@@ -77,7 +77,7 @@
 }
 
 octave_value
-octave_matrix::index (const octave_value_list& idx) const
+octave_matrix::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
@@ -215,7 +215,15 @@
 }
 
 octave_value
-octave_matrix::struct_elt_val (const string& nm, bool silent) const
+octave_matrix::do_struct_elt_index_op (const string& nm,
+				       const octave_value_list& idx,
+				       bool silent)
+{
+  // XXX DO_ME XXX
+}
+
+octave_value
+octave_matrix::do_struct_elt_index_op (const string& nm, bool silent)
 {
   octave_value retval;
 
--- a/src/ov-re-mat.h
+++ b/src/ov-re-mat.h
@@ -81,7 +81,7 @@
 
   octave_value *try_narrowing_conversion (void);
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   void assign (const octave_value_list& idx, const Matrix& rhs);
 
@@ -94,7 +94,11 @@
 
   idx_vector index_vector (void) const { return idx_vector (matrix); }
 
-  octave_value struct_elt_val (const string& nm, bool silent) const;
+  octave_value
+  do_struct_elt_index_op (const string& nm, const octave_value_list& idx,
+			  bool silent);
+
+  octave_value do_struct_elt_index_op (const string& nm, bool silent);
 
   octave_variable_reference
   struct_elt_ref (octave_value *parent, const string& nm);
--- a/src/ov-scalar.cc
+++ b/src/ov-scalar.cc
@@ -62,7 +62,7 @@
 }
 
 octave_value
-octave_scalar::index (const octave_value_list& idx) const
+octave_scalar::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
@@ -82,7 +82,7 @@
 
       octave_value tmp (new octave_matrix (matrix_value ()));
 
-      retval = tmp.index (idx);
+      retval = tmp.do_index_op (idx);
     }
 
   return retval;
--- a/src/ov-scalar.h
+++ b/src/ov-scalar.h
@@ -73,7 +73,7 @@
   void operator delete (void *p, size_t size)
     { allocator.free (p, size); }
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   idx_vector index_vector (void) const { return idx_vector (scalar); }
 
--- a/src/ov-str-mat.cc
+++ b/src/ov-str-mat.cc
@@ -61,7 +61,7 @@
 }
 
 octave_value
-octave_char_matrix_str::index (const octave_value_list& idx) const
+octave_char_matrix_str::do_index_op (const octave_value_list& idx) const
 {
   octave_value retval;
 
--- a/src/ov-str-mat.h
+++ b/src/ov-str-mat.h
@@ -80,7 +80,7 @@
 
   type_conv_fcn numeric_conversion_function (void) const;
 
-  octave_value index (const octave_value_list& idx) const;
+  octave_value do_index_op (const octave_value_list& idx) const;
 
   void assign (const octave_value_list& idx, const charMatrix& rhs);
 
--- a/src/ov-struct.cc
+++ b/src/ov-struct.cc
@@ -46,7 +46,15 @@
 octave_struct::t_name ("struct");
 
 octave_value
-octave_struct::struct_elt_val (const string& nm, bool silent) const
+octave_struct::do_struct_elt_index_op (const string& nm,
+				       const octave_value_list& idx,
+				       bool silent)
+{
+  // XXX DO_ME XXX
+}
+
+octave_value
+octave_struct::do_struct_elt_index_op (const string& nm, bool silent)
 {
   octave_value retval;
 
--- a/src/ov-struct.h
+++ b/src/ov-struct.h
@@ -73,7 +73,11 @@
   void operator delete (void *p, size_t size)
     { allocator.free (p, size); }
 
-  octave_value struct_elt_val (const string& nm, bool silent) const;
+  octave_value
+  do_struct_elt_index_op (const string& nm, const octave_value_list& idx,
+			  bool silent);
+
+  octave_value do_struct_elt_index_op (const string& nm, bool silent);
 
   octave_variable_reference
   struct_elt_ref (octave_value *parent, const string& nm);