26#if ! defined (octave_tree_classdef_h)
27#define octave_tree_classdef_h 1
29#include "octave-config.h"
53 : m_method_name (meth), m_class_name (cls), m_token (tok)
95 std::string m_method_name;
99 std::string m_class_name;
109 : m_class_name (cls), m_token (tok)
132 return ovl (evaluate (tw, nargout));
142 std::string m_class_name;
156 : m_id (i), m_eq_tok (eq_tok), m_expr (e)
160 : m_not_tok (not_tok), m_id (i), m_neg (b)
171 filepos beg_pos ()
const {
return m_not_tok ? m_not_tok.beg_pos () : m_id->beg_pos (); }
172 filepos end_pos ()
const {
return m_expr ? m_expr->end_pos () : m_id->end_pos (); }
223 m_delims.push (open_delim, close_delim);
244 : m_fqident (fqident)
276 :
public std::list<tree_classdef_superclass *>
306 : m_block_tok (block_tok), m_attr_list (a), m_end_tok (end_tok)
400 std::string m_doc_string;
668 m_property_lst.push_back (pb);
669 m_all_elements.push_back (pb);
675 m_method_lst.push_back (mb);
676 m_all_elements.push_back (mb);
682 m_event_lst.push_back (evb);
683 m_all_elements.push_back (evb);
689 m_enum_lst.push_back (enb);
690 m_all_elements.push_back (enb);
696 return m_property_lst;
721 std::list<tree_classdef_properties_block *> m_property_lst;
723 std::list<tree_classdef_methods_block *> m_method_lst;
725 std::list<tree_classdef_events_block *> m_event_lst;
727 std::list<tree_classdef_enum_block *> m_enum_lst;
729 std::list<tree_base_classdef_block *> m_all_elements;
739 : m_scope (scope), m_cdef_tok (cdef_tok), m_attr_list (a), m_id (i), m_supclass_list (sc), m_body (b), m_end_tok (end_tok), m_pack_name (pn), m_file_name (fn)
750 delete m_supclass_list;
781 bool is_at_folder =
false);
792 void cache_doc_string ()
802 if (m_doc_string.empty ())
804 comments = m_body->leading_comments ();
828 std::string m_pack_name;
829 std::string m_file_name;
831 std::string m_doc_string;
834OCTAVE_END_NAMESPACE(octave)
octave_idx_type length() const
comment_list leading_comments() const
comment_list trailing_comments() const
tree_classdef_attribute_list * m_attr_list
tree_base_classdef_block(const token &block_tok, tree_classdef_attribute_list *a, const token &end_tok)
void accept(tree_walker &)
comment_list leading_comments() const
token block_token() const
tree_classdef_attribute_list * attribute_list()
~tree_base_classdef_block()
tree_classdef_attribute_list(const std::list< tree_classdef_attribute * > &a)
tree_classdef_attribute_list()
tree_classdef_attribute_list(tree_classdef_attribute *a)
tree_delimiter_list delims() const
tree_classdef_attribute_list * mark_in_delims(const token &open_delim, token &close_delim)
void accept(tree_walker &tw)
tree_classdef_attribute(tree_identifier *i, const token eq_tok, tree_expression *e)
tree_identifier * ident()
void accept(tree_walker &tw)
comment_list trailing_comments() const
tree_expression * expression()
tree_classdef_attribute(const token ¬_tok, tree_identifier *i, bool b)
comment_list leading_comments() const
tree_classdef_attribute(tree_identifier *i)
~tree_classdef_attribute()
comment_list trailing_comments() const
comment_list leading_comments() const
tree_classdef_block(const token &block_tok, tree_classdef_attribute_list *a, T *elt_list, const token &end_tok)
std::list< tree_classdef_methods_block * >::const_iterator method_list_const_iterator
std::list< tree_classdef_events_block * >::const_iterator event_list_const_iterator
std::list< tree_classdef_events_block * >::iterator event_list_iterator
tree_classdef_body * append(tree_classdef_properties_block *pb)
std::list< tree_classdef_properties_block * >::const_iterator property_list_const_iterator
tree_classdef_body * append(tree_classdef_events_block *evb)
tree_classdef_body * append(tree_classdef_enum_block *enb)
std::list< tree_classdef_properties_block * >::iterator property_list_iterator
void accept(tree_walker &tw)
std::list< tree_classdef_enum_block * >::iterator enum_list_iterator
std::list< tree_classdef_properties_block * > property_list()
std::list< tree_classdef_methods_block * > method_list()
tree_classdef_body * append(tree_classdef_methods_block *mb)
std::list< tree_classdef_enum_block * > enum_list()
std::list< tree_classdef_events_block * > event_list()
std::list< tree_classdef_enum_block * >::const_iterator enum_list_const_iterator
std::list< tree_classdef_methods_block * >::iterator method_list_iterator
tree_classdef_enum_list * enum_list()
tree_classdef_enum_block(const token &block_tok, tree_classdef_attribute_list *a, tree_classdef_enum_list *elist, const token &end_tok)
void accept(tree_walker &tw)
~tree_classdef_enum_block()=default
void accept(tree_walker &tw)
tree_classdef_enum_list(const std::list< tree_classdef_enum * > &a)
tree_classdef_enum_list()
tree_classdef_enum_list(tree_classdef_enum *e)
tree_identifier * ident()
tree_expression * expression()
token close_paren() const
void accept(tree_walker &tw)
tree_classdef_event_list()
void accept(tree_walker &tw)
tree_classdef_event_list(const std::list< tree_classdef_event * > &a)
tree_classdef_event_list(tree_classdef_event *e)
void accept(tree_walker &tw)
tree_identifier * ident()
void accept(tree_walker &tw)
~tree_classdef_events_block()=default
tree_classdef_event_list * event_list()
tree_classdef_events_block(const token &block_tok, tree_classdef_attribute_list *a, tree_classdef_event_list *elist, const token &end_tok)
tree_classdef_method_list(const octave_value &f)
tree_classdef_method_list()
void accept(tree_walker &tw)
tree_classdef_method_list(const std::list< octave_value > &a)
~tree_classdef_method_list()=default
tree_classdef_method_list * method_list()
void accept(tree_walker &tw)
tree_classdef_methods_block(const token &block_tok, tree_classdef_attribute_list *a, tree_classdef_method_list *mlist, const token &end_tok)
~tree_classdef_methods_block()=default
~tree_classdef_properties_block()=default
tree_classdef_properties_block(const token &block_tok, tree_classdef_attribute_list *a, tree_classdef_property_list *plist, const token &end_tok)
tree_classdef_property_list * property_list()
void accept(tree_walker &tw)
tree_classdef_property_list(const std::list< tree_classdef_property * > &a)
tree_classdef_property_list()
void accept(tree_walker &tw)
tree_classdef_property_list(tree_classdef_property *p)
tree_arg_validation * arg_validation()
void doc_string(const std::string &s)
std::string doc_string() const
void accept(tree_walker &tw)
bool have_doc_string() const
tree_classdef_superclass_list(const std::list< tree_classdef_superclass * > &a)
void accept(tree_walker &tw)
tree_classdef_superclass_list(tree_classdef_superclass *sc)
tree_classdef_superclass_list()
tree_classdef_superclass(const token &fqident)
token fqident_token() const
token separator_token() const
void accept(tree_walker &tw)
~tree_classdef_superclass()=default
void set_separator(const token &sep_tok)
token classdef_token() const
comment_list leading_comments() const
std::string package_name() const
comment_list trailing_comments() const
tree_classdef_body * body()
tree_identifier * ident()
void accept(tree_walker &tw)
tree_classdef_superclass_list * superclass_list()
tree_classdef_attribute_list * attribute_list()
std::string doc_string() const
tree_classdef(const symbol_scope &scope, const token &cdef_tok, tree_classdef_attribute_list *a, tree_identifier *i, tree_classdef_superclass_list *sc, tree_classdef_body *b, const token &end_tok, const std::string &pn="", const std::string &fn="")
std::string file_name() const
virtual octave_value evaluate(tree_evaluator &tw, int nargout=1)=0
tree_delimiter_list m_delims
virtual tree_expression * dup(symbol_scope &scope) const =0
virtual octave_value_list evaluate_n(tree_evaluator &tw, int nargout=1)=0
void accept(tree_walker &tw)
std::string method_name() const
tree_superclass_ref(const std::string &meth, const std::string &cls, const token &tok)
comment_list trailing_comments() const
octave_value evaluate(tree_evaluator &tw, int nargout=1)
comment_list leading_comments() const
~tree_superclass_ref()=default
std::string class_name() const
virtual void visit_classdef_attribute(tree_classdef_attribute &)
virtual void visit_classdef_methods_block(tree_classdef_methods_block &)
virtual void visit_classdef_enum_block(tree_classdef_enum_block &)
virtual void visit_classdef(tree_classdef &)
virtual void visit_classdef_superclass(tree_classdef_superclass &)
virtual void visit_classdef_property(tree_classdef_property &)
virtual void visit_classdef_event_list(tree_classdef_event_list &)
virtual void visit_classdef_events_block(tree_classdef_events_block &)
virtual void visit_classdef_property_list(tree_classdef_property_list &)
virtual void visit_classdef_body(tree_classdef_body &)
virtual void visit_classdef_enum(tree_classdef_enum &)
virtual void visit_classdef_enum_list(tree_classdef_enum_list &)
virtual void visit_classdef_properties_block(tree_classdef_properties_block &)
virtual void visit_classdef_superclass_list(tree_classdef_superclass_list &)
virtual void visit_classdef_attribute_list(tree_classdef_attribute_list &)
virtual void visit_classdef_method_list(tree_classdef_method_list &)
virtual void visit_classdef_event(tree_classdef_event &)
virtual void visit_superclass_ref(tree_superclass_ref &)
virtual void visit_metaclass_query(tree_metaclass_query &)
virtual comment_list leading_comments() const =0
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
octave_value_list ovl(const OV_Args &... args)
Construct an octave_value_list with less typing.
F77_RET_T const F77_DBLE const F77_DBLE * f