26#if ! defined (octave_ov_fcn_h)
27#define octave_ov_fcn_h 1
29#include "octave-config.h"
48OCTAVE_END_NAMESPACE(octave)
57 : m_relative (false), m_locked (false), m_private (false),
58 m_dispatch_class (), m_package_name (), m_name (), m_dir_name (),
78 virtual octave::filepos beg_pos ()
const;
79 virtual octave::filepos end_pos ()
const;
87 {
return octave::symbol_scope::invalid (); }
90 {
return std::list<std::string> (); }
94 virtual octave::symbol_scope
scope () {
return octave::symbol_scope::invalid (); }
97 {
return octave::sys::time (
static_cast<OCTAVE_TIME_T
> (0)); }
100 {
return octave::sys::time (
static_cast<OCTAVE_TIME_T
> (0)); }
114 return (is_classdef_constructor (cname) || is_legacy_constructor (cname));
119 return (is_classdef_method (cname) || is_legacy_method (cname));
160 m_dispatch_class = cname;
166 {
return m_private && m_dispatch_class == nm; }
172 std::string
dir_name ()
const {
return m_dir_name; }
178 this->lock_subfunctions ();
184 this->unlock_subfunctions ();
202 {
return std::list<std::string> (); }
208 std::string
name ()
const {
return m_name; }
212 if (m_package_name.empty ())
215 return m_package_name +
'.' + m_name;
218 void document (
const std::string& ds) { m_doc = ds; }
225 virtual void accept (octave::tree_walker&) { }
228 {
return (type ==
'('); }
232 call (octave::tree_evaluator& tw,
int nargout = 0,
238 execute (octave::tree_evaluator& tw,
int nargout = 0,
244 const std::string& ds =
"")
245 : m_relative (false), m_locked (false), m_private (false),
246 m_dispatch_class (), m_name (nm), m_dir_name (), m_doc (ds) { }
virtual bool handles_dispatch_class(const std::string &) const
virtual bool is_anonymous_function_of_class(const std::string &="") const
virtual octave::symbol_scope scope()
virtual void unlock_subfunctions()
octave_function(const std::string &nm, const std::string &ds="")
virtual bool is_nested_function() const
virtual bool is_legacy_constructor(const std::string &="") const
virtual bool is_subfunction() const
std::string dispatch_class() const
virtual octave_value_list execute(octave::tree_evaluator &tw, int nargout=0, const octave_value_list &args=octave_value_list())=0
virtual std::string profiler_name() const
std::string canonical_name() const
virtual std::list< std::string > subfunction_names() const
std::string package_name() const
virtual octave::symbol_scope parent_fcn_scope() const
bool is_class_method(const std::string &cname="") const
virtual bool takes_var_return() const
virtual bool takes_varargs() const
bool is_class_constructor(const std::string &cname="") const
virtual std::string doc_string(const std::string &="") const
bool is_private_function() const
virtual octave::sys::time time_checked() const
virtual std::string parent_fcn_name() const
virtual void push_dispatch_class(const std::string &)
virtual bool is_classdef_constructor(const std::string &="") const
virtual void maybe_relocate_end()
virtual bool accepts_postfix_index(char type) const
virtual std::string src_file_name() const
~octave_function()=default
void document(const std::string &ds)
std::string m_dispatch_class
void stash_dir_name(const std::string &dir)
virtual bool is_legacy_method(const std::string &="") const
virtual bool is_classdef_method(const std::string &="") const
virtual void lock_subfunctions()
virtual bool is_parent_function() const
virtual int call_depth() const
virtual bool has_subfunctions() const
virtual std::list< std::string > parent_fcn_names() const
std::string m_package_name
virtual void mark_fcn_file_up_to_date(const octave::sys::time &)
virtual octave::sys::time time_parsed() const
virtual bool is_compiled() const
void stash_dispatch_class(const std::string &nm)
bool is_private_function_of_class(const std::string &nm) const
virtual std::string fcn_file_name() const
virtual void mark_as_private_function(const std::string &cname="")
virtual bool is_system_fcn_file() const
std::string dir_name() const
void stash_package_name(const std::string &pack)
virtual void accept(octave::tree_walker &)
virtual void stash_subfunction_names(const std::list< std::string > &)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn