26 #if ! defined (octave_ov_fcn_h)
27 #define octave_ov_fcn_h 1
29 #include "octave-config.h"
47 OCTAVE_END_NAMESPACE(
octave)
58 : m_relative (false), m_locked (false), m_private (false),
59 m_dispatch_class (), m_package_name (), m_name (), m_dir_name (),
85 {
return octave::symbol_scope::invalid (); }
88 {
return std::list<std::string> (); }
92 virtual octave::symbol_scope
scope () {
return octave::symbol_scope::invalid (); }
95 {
return octave::sys::time (
static_cast<OCTAVE_TIME_T
> (0)); }
98 {
return octave::sys::time (
static_cast<OCTAVE_TIME_T
> (0)); }
112 return (is_classdef_constructor (cname) || is_legacy_constructor (cname));
117 return (is_classdef_method (cname) || is_legacy_method (cname));
158 m_dispatch_class = cname;
164 {
return m_private && m_dispatch_class == nm; }
170 std::string
dir_name ()
const {
return m_dir_name; }
176 this->lock_subfunctions ();
182 this->unlock_subfunctions ();
200 {
return std::list<std::string> (); }
206 std::string
name ()
const {
return m_name; }
210 if (m_package_name.empty ())
213 return m_package_name +
'.' + m_name;
216 void document (
const std::string& ds) { m_doc = ds; }
223 virtual void accept (octave::tree_walker&) { }
226 {
return (type ==
'('); }
230 call (octave::tree_evaluator& tw,
int nargout = 0,
236 execute (octave::tree_evaluator& tw,
int nargout = 0,
242 const std::string& ds =
"")
243 : m_relative (false), m_locked (false), m_private (false),
244 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 std::list< std::string > parent_fcn_names() const
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
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
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
virtual std::list< std::string > subfunction_names() 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