diff src/ov.h @ 2974:ebbc34ff7f66

[project @ 1997-05-15 19:36:16 by jwe]
author jwe
date Thu, 15 May 1997 19:42:59 +0000
parents c0c280cda856
children a3556d2adec9
line wrap: on
line diff
--- a/src/ov.h	Thu May 15 19:30:57 1997 +0000
+++ b/src/ov.h	Thu May 15 19:42:59 1997 +0000
@@ -39,10 +39,9 @@
 #include "oct-alloc.h"
 #include "str-vec.h"
 
-#include "oct-sym.h"
-
 class Octave_map;
 class octave_stream;
+class octave_function;
 class octave_value_list;
 class octave_variable_reference;
 
@@ -74,7 +73,7 @@
 typedef octave_value * (*type_conv_fcn) (const octave_value&);
 
 class
-octave_value : public octave_symbol
+octave_value
 {
 public:
 
@@ -150,6 +149,7 @@
   octave_value (const Range& r);
   octave_value (const Octave_map& m);
   octave_value (octave_stream *s, int n);
+  octave_value (octave_function *f);
   octave_value (const octave_value_list& m);
   octave_value (octave_value::magic_colon);
   octave_value (octave_value::all_va_args);
@@ -213,9 +213,12 @@
   virtual octave_value *try_narrowing_conversion (void)
     { return rep->try_narrowing_conversion (); }
 
-  virtual octave_value do_index_op (const octave_value_list& idx) const
+  virtual octave_value do_index_op (const octave_value_list& idx)
     { return rep->do_index_op (idx); }
 
+  virtual octave_value_list
+  do_index_op (int nargout, const octave_value_list& idx);
+
   void assign (assign_op, const octave_value& rhs);
 
   void assign (assign_op, const octave_value_list& idx,
@@ -343,15 +346,16 @@
   virtual bool is_zero_by_zero (void) const
     { return rep->is_zero_by_zero (); }
 
-  bool is_constant (void) const
-    { return true; }
+  virtual bool is_constant (void) const
+    { return rep->is_constant (); }
+
+  virtual bool is_function (void) const
+    { return rep->is_function (); }
 
   // Values.
 
   octave_value eval (void) { return *this; }
 
-  octave_value_list eval (int, const octave_value_list& idx);
-
   virtual double double_value (bool frc_str_conv = false) const
     { return rep->double_value (frc_str_conv); }
 
@@ -385,6 +389,8 @@
 
   virtual int stream_number (void) const;
 
+  virtual octave_function *function_value (bool silent = false);
+
   virtual octave_value_list list_value (void) const;
 
   virtual bool bool_value (void) const