#include "cdef-class.h"
Classes | |
class | cdef_class_rep |
Public Types | |
enum | { property_normal , property_inherited , property_all } |
Public Member Functions | |
cdef_class (const cdef_class &cls) | |
cdef_class (const cdef_object &obj) | |
cdef_class (const std::string &nm, const std::list< cdef_class > &superclasses) | |
cdef_class (void) | |
~cdef_class (void)=default | |
Array< cdef_object > | array_value (void) const |
std::string | class_name (void) const |
cdef_object | clone (void) const |
octave_value | construct (const octave_value_list &args) |
cdef_object | construct_object (const octave_value_list &args) |
cdef_object | copy (void) const |
void | delete_object (const cdef_object &obj) |
dim_vector | dims (void) const |
void | doc_string (const std::string &txt) |
std::string | doc_string (void) const |
cdef_object | empty_clone (void) const |
cdef_method | find_method (const std::string &nm, bool local=false) |
cdef_property | find_property (const std::string &nm) |
octave_value | get (const std::string &pname) const |
cdef_class | get_class (void) const |
octave_value | get_constructor_function (void) |
std::string | get_directory (void) const |
octave_value | get_method (const std::string &nm) const |
octave_value | get_method_function (const std::string &nm) |
std::map< std::string, cdef_method > | get_method_map (bool only_inherited=false, bool include_ctor=false) |
Cell | get_methods (bool include_ctor=false) |
std::string | get_name (void) const |
string_vector | get_names (void) |
Cell | get_properties (int mode=property_normal) |
octave_value | get_property (octave_idx_type idx, const std::string &pname) const |
std::map< std::string, cdef_property > | get_property_map (int mode=property_normal) |
void | initialize_object (cdef_object &obj) |
void | install_method (const cdef_method &meth) |
void | install_property (const cdef_property &prop) |
bool | is (const cdef_object &obj) const |
bool | is_abstract (void) const |
bool | is_array (void) const |
bool | is_builtin (void) const |
bool | is_class (void) const |
bool | is_constructed (void) const |
bool | is_constructed_for (const cdef_class &cls) const |
bool | is_handle_class (void) const |
bool | is_handle_object (void) const |
bool | is_meta_class (void) const |
bool | is_meta_object (void) const |
bool | is_method (void) const |
bool | is_package (void) const |
bool | is_partially_constructed_for (const cdef_class &cls) const |
bool | is_property (void) const |
bool | is_sealed (void) const |
bool | is_value_object (void) const |
cdef_object | make_array (void) const |
string_vector | map_keys (void) const |
octave_map | map_value (void) const |
void | mark_as_constructed (const cdef_class &cls) |
void | mark_as_constructed (void) |
void | mark_as_handle_class (void) |
void | mark_as_meta_class (void) |
void | mark_for_construction (const cdef_class &cls) |
bool | meta_accepts_postfix_index (char type) const |
void | meta_release (void) |
octave_value_list | meta_subsref (const std::string &type, const std::list< octave_value_list > &idx, int nargout) |
bool | ok (void) const |
cdef_class & | operator= (const cdef_class &cls) |
void | put (const std::string &pname, const octave_value &val) |
void | run_constructor (cdef_object &obj, const octave_value_list &args) |
void | set_class (const cdef_class &cls) |
void | set_directory (const std::string &dir) |
void | set_property (octave_idx_type idx, const std::string &pname, const octave_value &pval) |
octave_value | subsasgn (const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs, int ignore_copies=0) |
octave_value_list | subsref (const std::string &type, const std::list< octave_value_list > &idx, int nargout, size_t &skip, const cdef_class &context, bool auto_add=false) |
Static Public Member Functions | |
static cdef_class | make_meta_class (interpreter &interp, tree_classdef *t, bool is_at_folder=false) |
Analyze the tree_classdef tree and transform it to a cdef_class. More... | |
Protected Member Functions | |
void | make_unique (int ignore_copies) |
Private Member Functions | |
cdef_class_rep * | get_rep (void) |
const cdef_class_rep * | get_rep (void) const |
Private Attributes | |
cdef_object_rep * | rep |
Friends | |
void | install_classdef (interpreter &interp) |
bool | operator!= (const cdef_class &, const cdef_class &) |
bool | operator< (const cdef_class &, const cdef_class &) |
bool | operator== (const cdef_class &, const cdef_class &) |
Definition at line 50 of file cdef-class.h.
anonymous enum |
Enumerator | |
---|---|
property_normal | |
property_inherited | |
property_all |
Definition at line 389 of file cdef-class.h.
|
inline |
Definition at line 224 of file cdef-class.h.
|
inline |
Definition at line 226 of file cdef-class.h.
|
inline |
Definition at line 232 of file cdef-class.h.
|
inline |
Definition at line 234 of file cdef-class.h.
References error().
|
default |
|
inlineinherited |
Definition at line 254 of file cdef-object.h.
Referenced by octave::cdef_object::map_value(), and octave::cdef_object_array::subsasgn().
|
inlineinherited |
Definition at line 228 of file cdef-object.h.
Referenced by make_meta_class(), octave::cdef_object_array::subsasgn(), and octave::ctor_analyzer::visit_superclass_ref().
|
inlineinherited |
Definition at line 230 of file cdef-object.h.
|
inline |
Definition at line 349 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::meta_subsref().
|
inline |
Definition at line 354 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::construct(), octave::cdef_object_array::fill_empty_values(), and octave::cdef_object_array::subsasgn().
|
inlineinherited |
Definition at line 244 of file cdef-object.h.
Referenced by octave::cdef_object_array::fill_empty_values().
|
inline |
Definition at line 308 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::delete_object(), and octave::cdef_object_rep::release().
|
inlineinherited |
Definition at line 237 of file cdef-object.h.
|
inline |
Definition at line 383 of file cdef-class.h.
Referenced by octave_classdef_meta::doc_string().
|
inline |
Definition at line 385 of file cdef-class.h.
|
inlineinherited |
Definition at line 232 of file cdef-object.h.
|
inline |
Definition at line 438 of file cdef-class.h.
References octave::cdef_class::cdef_class_rep::find_method(), and get_rep().
Referenced by octave::check_access(), octave::class_fevalStatic(), octave::cdef_class::cdef_class_rep::delete_object(), octave_classdef_meta::doc_string(), octave_classdef_superclass_ref::execute(), octave::cdef_class::cdef_class_rep::find_method(), octave::cdef_manager::find_method_symbol(), octave::tree_evaluator::make_fcn_handle(), octave::cdef_class::cdef_class_rep::meta_subsref(), octave::cdef_class::cdef_class_rep::run_constructor(), octave_classdef::size(), octave_classdef::subsasgn(), octave_classdef::subsref(), octave::cdef_object_scalar::subsref(), and octave_classdef::xnumel().
|
inline |
Definition at line 444 of file cdef-class.h.
References octave::cdef_class::cdef_class_rep::find_property(), and get_rep().
Referenced by octave::check_access(), octave::class_getConstant(), octave::cdef_class::cdef_class_rep::find_property(), octave::cdef_class::cdef_class_rep::meta_subsref(), octave::cdef_object_scalar::subsasgn(), and octave::cdef_object_scalar::subsref().
|
inlineinherited |
Definition at line 261 of file cdef-object.h.
Referenced by octave::check_access(), octave::cdef_method::cdef_method_rep::check_access(), octave::cdef_property::cdef_property_rep::check_get_access(), octave::cdef_property::cdef_property_rep::check_set_access(), octave::class_get_inferiorclasses(), octave::class_get_superclasses(), octave::cdef_class::cdef_class_rep::delete_object(), octave::err_method_access(), octave::cdef_property::cdef_property_rep::err_property_access(), octave::cdef_method::cdef_method_rep::execute(), octave::cdef_class::cdef_class_rep::find_method(), octave::cdef_class::cdef_class_rep::find_methods(), octave::cdef_class::cdef_class_rep::find_names(), octave::cdef_class::cdef_class_rep::find_properties(), octave::cdef_class::cdef_class_rep::find_property(), Fproperties(), octave::cdef_object_array::get_property(), octave::cdef_property::cdef_property_rep::get_value(), octave::cdef_class::cdef_class_rep::initialize_object(), octave::is_superclass(), make_meta_class(), octave::cdef_object_scalar::mark_for_construction(), octave_classdef::print_raw(), octave::property_get_defaultvalue(), and octave::cdef_property::cdef_property_rep::set_value().
|
inherited |
Definition at line 183 of file cdef-object.cc.
References octave::cdef_object_rep::get_class(), and octave::cdef_object::rep.
Referenced by Fmetaclass(), octave::tree_evaluator::make_fcn_handle(), octave::cdef_object::map_value(), octave_classdef::print_raw(), octave_classdef::size(), octave::cdef_object_array::subsasgn(), octave_classdef::subsasgn(), octave_classdef::subsref(), and octave_classdef::xnumel().
|
inline |
Definition at line 344 of file cdef-class.h.
Referenced by octave::cdef_manager::cdef_manager(), and octave::tree_classdef::make_meta_class().
|
inline |
Definition at line 299 of file cdef-class.h.
|
inline |
Definition at line 337 of file cdef-class.h.
Referenced by octave::cdef_manager::find_method().
octave_value octave::cdef_class::get_method_function | ( | const std::string & | nm | ) |
Definition at line 1153 of file cdef-class.cc.
References octave_value().
|
inline |
Definition at line 265 of file cdef-class.h.
Referenced by F__methods__().
|
inline |
Definition at line 259 of file cdef-class.h.
Referenced by octave::class_get_methods(), and make_meta_class().
|
inline |
Definition at line 304 of file cdef-class.h.
Referenced by octave::handle_cdef_object::~handle_cdef_object(), octave::value_cdef_object::~value_cdef_object(), octave::check_access(), octave::cdef_object_rep::class_name(), octave::cdef_class::cdef_class_rep::construct_object(), octave::cdef_class::cdef_class_rep::delete_object(), octave_classdef_superclass_ref::execute(), octave::cdef_property::cdef_property_rep::get_value(), octave_classdef_meta::is_classdef_constructor(), octave::make_function_of_class(), octave::cdef_manager::make_method(), octave::cdef_manager::make_property(), octave::cdef_object_scalar::mark_for_construction(), octave::cdef_manager::register_class(), octave::cdef_class::cdef_class_rep::run_constructor(), octave::cdef_property::cdef_property_rep::set_value(), octave::cdef_manager::unregister_class(), and octave_classdef::xnumel().
|
inline |
Definition at line 288 of file cdef-class.h.
Referenced by octave::cdef_object_rep::map_keys().
|
inline |
Definition at line 277 of file cdef-class.h.
Referenced by octave::class_get_properties().
|
inlineinherited |
Definition at line 273 of file cdef-object.h.
|
inline |
Definition at line 283 of file cdef-class.h.
Referenced by Fproperties(), octave::cdef_class::cdef_class_rep::get_properties(), octave::cdef_object::map_value(), and octave_classdef::print_raw().
|
inlineprivate |
Definition at line 398 of file cdef-class.h.
References octave::cdef_object::get_rep().
Referenced by find_method(), octave::cdef_class::cdef_class_rep::find_methods(), octave::cdef_class::cdef_class_rep::find_names(), octave::cdef_class::cdef_class_rep::find_properties(), and find_property().
|
inlineprivate |
Definition at line 403 of file cdef-class.h.
References octave::cdef_object::get_rep().
|
inline |
Definition at line 359 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::construct_object().
|
inline |
Definition at line 254 of file cdef-class.h.
Referenced by octave::cdef_manager::cdef_manager().
|
inline |
Definition at line 272 of file cdef-class.h.
Referenced by octave::cdef_manager::cdef_manager().
|
inlineinherited |
Definition at line 324 of file cdef-object.h.
References octave::cdef_object::rep.
Referenced by octave::is_method_executing(), and octave::cdef_object_array::subsasgn().
|
inline |
Definition at line 290 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::construct_object().
|
inlineinherited |
Definition at line 246 of file cdef-object.h.
Referenced by octave::cdef_object::map_value(), octave_classdef::print_raw(), and octave::cdef_object_array::subsasgn().
|
inline |
Definition at line 306 of file cdef-class.h.
Referenced by octave::cdef_manager::find_class().
|
inlineinherited |
Definition at line 658 of file cdef-object.h.
|
inlineinherited |
Definition at line 307 of file cdef-object.h.
Referenced by octave::cdef_property::cdef_property_rep::get_value(), and octave::cdef_property::cdef_property_rep::set_value().
|
inlineinherited |
Definition at line 309 of file cdef-object.h.
|
inline |
Definition at line 374 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::construct_object().
|
inlineinherited |
Definition at line 250 of file cdef-object.h.
|
inline |
Definition at line 381 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::construct_object().
|
inlineinherited |
Definition at line 252 of file cdef-object.h.
|
inlineinherited |
Definition at line 662 of file cdef-object.h.
|
inlineinherited |
Definition at line 664 of file cdef-object.h.
|
inlineinherited |
Definition at line 314 of file cdef-object.h.
Referenced by octave::cdef_property::cdef_property_rep::get_value(), and octave::cdef_property::cdef_property_rep::set_value().
|
inlineinherited |
Definition at line 660 of file cdef-object.h.
|
inline |
Definition at line 292 of file cdef-class.h.
|
inlineinherited |
Definition at line 248 of file cdef-object.h.
|
inlineinherited |
Definition at line 239 of file cdef-object.h.
|
static |
Analyze the tree_classdef tree and transform it to a cdef_class.
All attribute validation should occur here.
Classdef attribute values can be given in the form of expressions. These expressions must be evaluated before assigning them as attribute values. Evaluating them as they are parsed causes trouble with possible recursion in the parser so we do it here. For example
will fail because each attempt to compute the metaclass of recursion_class will cause recursion_class to be parsed again.
Definition at line 846 of file cdef-class.cc.
References octave::__get_cdef_manager__(), octave::action_container::add_method(), octave::tree_classdef::attribute_list(), octave::attribute_value_to_string(), octave::tree_classdef::body(), octave_value::bool_value(), octave::cdef_object::class_name(), octave::compute_attribute_value(), octave::tree_classdef::doc_string(), error(), octave::tree_expression::evaluate(), Array< T >::find(), octave::cdef_manager::find_package(), octave_value::function_value(), octave::cdef_object::get(), octave::interpreter::get_evaluator(), octave::interpreter::get_load_path(), get_methods(), octave::tree_classdef::ident(), octave::lookup_class(), octave::cdef_manager::make_class(), octave::make_fcn_handle(), octave::make_function_of_class(), octave::cdef_manager::make_method(), octave::cdef_manager::make_property(), octave::load_path::methods(), octave::tree_classdef_body::methods_list(), octave_function::name(), octave::tree_identifier::name(), octave::cdef_object::ok(), octave::tree_classdef::package_name(), octave::tree_evaluator::pop_scope(), octave::tree_classdef_body::properties_list(), octave::tree_evaluator::push_dummy_scope(), octave::cdef_object::put(), retval, octave_user_function::stash_function_name(), octave::tree_classdef::superclass_list(), and octave::to_ov().
Referenced by octave::tree_classdef::make_meta_class().
|
inlineprotectedinherited |
Definition at line 330 of file cdef-object.h.
|
inlineinherited |
Definition at line 294 of file cdef-object.h.
|
inherited |
Definition at line 137 of file cdef-object.cc.
References octave::cdef_object::array_value(), Array< T >::dims(), octave::cdef_object::get_class(), get_property_map(), octave::cdef_object::is_array(), Array< T >::numel(), octave::cdef_object::ok(), property_all, retval, and warning_with_id().
|
inlineinherited |
Definition at line 321 of file cdef-object.h.
|
inlineinherited |
Definition at line 319 of file cdef-object.h.
Referenced by octave::cdef_class::cdef_class_rep::run_constructor().
|
inline |
Definition at line 369 of file cdef-class.h.
Referenced by octave::cdef_manager::make_class().
|
inline |
Definition at line 379 of file cdef-class.h.
Referenced by octave::cdef_manager::make_meta_class().
|
inlineinherited |
Definition at line 302 of file cdef-object.h.
Referenced by octave::cdef_class::cdef_class_rep::initialize_object().
|
inlineinherited |
Definition at line 675 of file cdef-object.h.
|
inlineinherited |
Definition at line 673 of file cdef-object.h.
|
inlineinherited |
Definition at line 667 of file cdef-object.h.
|
inlineinherited |
Definition at line 300 of file cdef-object.h.
Referenced by octave::check_access(), octave::class_fevalStatic(), octave::class_getConstant(), octave::cdef_class::cdef_class_rep::construct(), octave::cdef_class::cdef_class_rep::construct_object(), octave::cdef_class::cdef_class_rep::delete_object(), octave_classdef_meta::doc_string(), octave_classdef_superclass_ref::execute(), F__methods__(), octave::cdef_object_array::fill_empty_values(), octave::cdef_manager::find_class(), octave::cdef_class::cdef_class_rep::find_method(), octave::cdef_manager::find_method_symbol(), octave::cdef_manager::find_package_symbol(), octave::cdef_class::cdef_class_rep::find_property(), Fproperties(), in_class_method(), octave_classdef::is_instance_of(), octave::tree_evaluator::make_fcn_handle(), octave::tree_classdef::make_meta_class(), make_meta_class(), octave::cdef_object_rep::map_keys(), octave::cdef_object::map_value(), octave::cdef_class::cdef_class_rep::meta_subsref(), octave_classdef::print_raw(), read_mat5_binary_element(), octave::cdef_class::cdef_class_rep::run_constructor(), octave::cdef_object_base::set_class(), octave_classdef::size(), octave::cdef_object_array::subsasgn(), octave::cdef_object_scalar::subsasgn(), octave_classdef::subsasgn(), octave_classdef::subsref(), octave::cdef_object_scalar::subsref(), octave::to_ov(), octave::ctor_analyzer::visit_superclass_ref(), and octave_classdef::xnumel().
|
inline |
Definition at line 243 of file cdef-class.h.
References octave::cdef_object::operator=().
|
inlineinherited |
Definition at line 256 of file cdef-object.h.
Referenced by octave::cdef_class::cdef_class_rep::initialize_object(), octave::cdef_manager::make_class(), octave::cdef_manager::make_meta_class(), make_meta_class(), octave::cdef_manager::make_method(), octave::cdef_manager::make_package(), octave::cdef_manager::make_property(), octave::cdef_object_array::set_property(), and octave::cdef_property::cdef_property_rep::set_value().
|
inline |
Definition at line 364 of file cdef-class.h.
Referenced by octave::cdef_class::cdef_class_rep::construct_object(), octave_classdef_superclass_ref::execute(), and octave::cdef_class::cdef_class_rep::run_constructor().
|
inlineinherited |
Definition at line 226 of file cdef-object.h.
Referenced by octave::cdef_manager::cdef_manager(), octave::cdef_class::cdef_class_rep::construct_object(), octave::cdef_manager::make_class(), octave::cdef_manager::make_method(), octave::cdef_manager::make_package(), octave::cdef_manager::make_property(), octave::cdef_object_scalar::subsasgn(), octave::cdef_object_array::subsref(), and octave::cdef_object_scalar::subsref().
|
inline |
Definition at line 294 of file cdef-class.h.
|
inlineinherited |
Definition at line 266 of file cdef-object.h.
|
inlineinherited |
Definition at line 287 of file cdef-object.h.
Referenced by octave::cdef_object_array::subsasgn(), and octave::cdef_object_scalar::subsasgn().
|
inlineinherited |
Definition at line 279 of file cdef-object.h.
References octave::context.
Referenced by octave::cdef_object_scalar::subsref().
|
friend |
|
friend |
Definition at line 424 of file cdef-class.h.
|
friend |
Definition at line 431 of file cdef-class.h.
|
friend |
Definition at line 416 of file cdef-class.h.
|
privateinherited |
Definition at line 338 of file cdef-object.h.
Referenced by octave::cdef_object::get_class(), octave::cdef_object::is(), and octave::cdef_object::operator=().