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)
90 std::string m_method_name;
94 std::string m_class_name;
104 : m_class_name (cls), m_token (tok)
132 std::string m_class_name;
146 : m_id (i), m_eq_tok (eq_tok), m_expr (e)
150 : m_not_tok (not_tok), m_id (i), m_neg (b)
202 m_delims.
push (open_delim, close_delim);
221 : m_fqident (fqident)
249 :
public std::list<tree_classdef_superclass *>
364 std::string m_doc_string;
629 m_property_lst.push_back (pb);
630 m_all_elements.push_back (pb);
636 m_method_lst.push_back (mb);
637 m_all_elements.push_back (mb);
643 m_event_lst.push_back (evb);
644 m_all_elements.push_back (evb);
650 m_enum_lst.push_back (enb);
651 m_all_elements.push_back (enb);
657 return m_property_lst;
682 std::list<tree_classdef_properties_block *> m_property_lst;
684 std::list<tree_classdef_methods_block *> m_method_lst;
686 std::list<tree_classdef_events_block *> m_event_lst;
688 std::list<tree_classdef_enum_block *> m_enum_lst;
690 std::list<tree_base_classdef_block *> m_all_elements;
700 : 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)
711 delete m_supclass_list;
737 bool is_at_folder =
false);
748 void cache_doc_string ()
758 if (m_doc_string.empty ())
784 std::string m_doc_string;
786 std::string m_pack_name;
787 std::string m_file_name;
790OCTAVE_END_NAMESPACE(octave)
octave_idx_type length() const
comment_list leading_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
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_list(tree_classdef_attribute *a)
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)
tree_expression * expression()
tree_classdef_attribute(const token ¬_tok, tree_identifier *i, bool b)
tree_classdef_attribute(tree_identifier *i)
~tree_classdef_attribute()
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)
comment_list leading_comments() const
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()
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()
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_list(tree_classdef_property *p)
~tree_classdef_property()
comment_list leading_comments()
void doc_string(const std::string &s)
std::string doc_string() const
void accept(tree_walker &tw)
tree_expression * expression()
tree_identifier * ident()
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_list()
tree_classdef_superclass(const token &fqident)
void accept(tree_walker &tw)
~tree_classdef_superclass()=default
void set_separator(const token &sep_tok)
comment_list leading_comments() const
octave_value make_meta_class(interpreter &interp, bool is_at_folder=false)
std::string package_name() 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
void push(const token &open_delim, const token &close_delim)
void accept(tree_walker &tw)
std::string method_name() const
tree_superclass_ref(const std::string &meth, const std::string &cls, const token &tok)
octave_value evaluate(tree_evaluator &tw, int nargout=1)
~tree_superclass_ref()=default
std::string class_name() const
octave_value_list evaluate_n(tree_evaluator &tw, int nargout=1)
tree_superclass_ref * dup(symbol_scope &scope) 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 filepos end_pos() const =0
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
F77_RET_T const F77_DBLE const F77_DBLE * f
octave_value_list ovl(const OV_Args &... args)
Construct an octave_value_list with less typing.