#include "stack-frame.h"
Inherited by base_value_stack_frame, compiled_fcn_stack_frame, and script_stack_frame.
Public Types | |
enum | auto_var_type { ARG_NAMES , IGNORED , NARGIN , NARGOUT , SAVED_WARNING_STATES , NUM_AUTO_VARS } |
typedef std::map< std::string, octave_value > | local_vars_map |
enum | scope_flags { LOCAL , GLOBAL , PERSISTENT } |
Public Member Functions | |
stack_frame ()=delete | |
stack_frame (const stack_frame &elt)=default | |
stack_frame (tree_evaluator &tw, std::size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link, const std::shared_ptr< stack_frame > &access_link) | |
virtual | ~stack_frame ()=default |
virtual void | accept (stack_frame_walker &sfw)=0 |
std::shared_ptr< stack_frame > | access_link () const |
symbol_info_list | all_variables () |
void | assign (const std::string &name, const octave_value &val) |
void | assign (const symbol_record &sym, const octave_value &val) |
void | assign (octave_value::assign_op op, const symbol_record &sym, const std::string &type, const std::list< octave_value_list > &idx, const octave_value &rhs) |
virtual void | break_closure_cycles (const std::shared_ptr< stack_frame > &) |
void | clear (const symbol_record &sym) |
void | clear_objects () |
void | clear_parent_static_link () |
virtual void | clear_values () |
void | clear_variable (const std::string &name) |
void | clear_variable_pattern (const std::string &pattern) |
void | clear_variable_pattern (const string_vector &patterns) |
void | clear_variable_regexp (const std::string &pattern) |
void | clear_variable_regexp (const string_vector &patterns) |
void | clear_variables () |
virtual int | column () const |
void | column (int c) |
virtual void | display (bool follow=true) const |
void | display_stopped_in_message (std::ostream &os) const |
std::string | fcn_file_name () const |
std::string | fcn_name (bool print_subfn=true) const |
octave_value | find_subfunction (const std::string &name) const |
virtual octave_function * | function () const |
virtual octave_value | get_auto_fcn_var (auto_var_type) const =0 |
std::string | get_dispatch_class () const |
virtual symbol_scope | get_scope () const =0 |
virtual scope_flags | get_scope_flag (std::size_t) const |
symbol_info_list | get_symbol_info () |
symbol_info_list | glob_symbol_info (const std::string &pattern) |
std::size_t | index () const |
virtual symbol_record | insert_symbol (const std::string &)=0 |
void | install_variable (const std::string &name, const octave_value &value, bool global) |
void | install_variable (const symbol_record &sym, const octave_value &value, bool global) |
bool | is_closure_context () const |
virtual bool | is_compiled_fcn_frame () const |
bool | is_defined (const symbol_record &sym) const |
bool | is_global (const std::string &name) const |
bool | is_global (const symbol_record &sym) const |
bool | is_local_variable (const std::string &name) const |
bool | is_object (const std::string &name) const |
bool | is_object (const symbol_record &sym) const |
bool | is_persistent (const std::string &name) const |
bool | is_persistent (const symbol_record &sym) const |
virtual bool | is_scope_frame () const |
virtual bool | is_user_fcn_frame () const |
virtual bool | is_user_script_frame () const |
bool | is_variable (const std::string &name) const |
bool | is_variable (const symbol_record &sym) const |
virtual int | line () const |
void | line (int l) |
virtual symbol_record | lookup_symbol (const std::string &) const =0 |
void | make_global (const symbol_record &sym) |
void | make_persistent (const symbol_record &sym) |
symbol_info_list | make_symbol_info_list (const std::list< symbol_record > &symrec_list) const |
void | mark_closure_context () |
void | mark_global (const symbol_record &sym) |
void | mark_persistent (const symbol_record &sym) |
virtual void | mark_scope (const symbol_record &, scope_flags)=0 |
void | non_const_unary_op (octave_value::unary_op op, const symbol_record &sym, const std::string &type, const std::list< octave_value_list > &idx) |
stack_frame & | operator= (const stack_frame &elt)=delete |
std::size_t | parent_frame_index () const |
std::shared_ptr< stack_frame > | parent_link () const |
symbol_info_list | regexp_symbol_info (const std::string &pattern) |
virtual void | resize (std::size_t) |
virtual scope_flags | scope_flag (const symbol_record &) const =0 |
virtual void | set_auto_fcn_var (auto_var_type, const octave_value &)=0 |
void | set_dispatch_class (const std::string &class_name) |
virtual void | set_nargin (int nargin) |
virtual void | set_nargout (int nargout) |
virtual void | set_scope_flag (std::size_t, scope_flags) |
virtual std::size_t | size () const |
std::shared_ptr< stack_frame > | static_link () const |
void | unmark_global (const symbol_record &sym) |
void | unmark_persistent (const symbol_record &sym) |
virtual unwind_protect * | unwind_protect_frame () |
octave_value | value (const symbol_record &sym, const std::string &type, const std::list< octave_value_list > &idx) const |
std::list< std::string > | variable_names () const |
virtual octave_value & | varref (const symbol_record &sym)=0 |
virtual octave_value & | varref (std::size_t data_offset) |
octave_value | varval (const std::string &name) const |
virtual octave_value | varval (const symbol_record &sym) const =0 |
virtual octave_value | varval (std::size_t data_offset) const |
octave_value | who (const string_vector &patterns, bool have_regexp, bool return_list, bool verbose, const std::string &whos_line_fmt, const std::string &msg) |
octave_value | workspace () |
Static Public Member Functions | |
static stack_frame * | create (tree_evaluator &tw, const symbol_scope &scope, std::size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link) |
static stack_frame * | create (tree_evaluator &tw, octave_function *fcn, std::size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link) |
static stack_frame * | create (tree_evaluator &tw, octave_user_function *fcn, std::size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link, const local_vars_map &local_vars, const std::shared_ptr< stack_frame > &access_link=std::shared_ptr< stack_frame >()) |
static stack_frame * | create (tree_evaluator &tw, octave_user_function *fcn, std::size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link, const std::shared_ptr< stack_frame > &access_link=std::shared_ptr< stack_frame >()) |
static stack_frame * | create (tree_evaluator &tw, octave_user_script *script, std::size_t index, const std::shared_ptr< stack_frame > &parent_link, const std::shared_ptr< stack_frame > &static_link) |
Protected Attributes | |
std::shared_ptr< stack_frame > | m_access_link |
int | m_column |
std::string | m_dispatch_class |
tree_evaluator & | m_evaluator |
std::size_t | m_index |
bool | m_is_closure_context |
int | m_line |
std::shared_ptr< stack_frame > | m_parent_link |
std::shared_ptr< stack_frame > | m_static_link |
Definition at line 108 of file stack-frame.h.
typedef std::map<std::string, octave_value> stack_frame::local_vars_map |
Definition at line 112 of file stack-frame.h.
Enumerator | |
---|---|
ARG_NAMES | |
IGNORED | |
NARGIN | |
NARGOUT | |
SAVED_WARNING_STATES | |
NUM_AUTO_VARS |
Definition at line 130 of file stack-frame.h.
Enumerator | |
---|---|
LOCAL | |
GLOBAL | |
PERSISTENT |
Definition at line 120 of file stack-frame.h.
|
delete |
|
inline |
Definition at line 142 of file stack-frame.h.
|
default |
|
virtualdefault |
|
pure virtual |
|
inline |
Definition at line 326 of file stack-frame.h.
References m_access_link.
Referenced by create(), display(), mark_closure_context(), and workspace().
symbol_info_list stack_frame::all_variables | ( | ) |
Definition at line 1185 of file stack-frame.cc.
References accept().
Referenced by get_symbol_info(), and workspace().
|
inline |
Definition at line 469 of file stack-frame.h.
References assign(), and insert_symbol().
|
inline |
Definition at line 458 of file stack-frame.h.
References octave_value::call_object_destructor(), octave_value::get_count(), octave_value::storable_value(), and varref().
Referenced by assign(), clear(), and install_variable().
|
inline |
Definition at line 476 of file stack-frame.h.
References octave_value::assign(), assign(), octave_value::op_asn_eq, and varref().
|
inlinevirtual |
Definition at line 568 of file stack-frame.h.
|
inline |
Definition at line 530 of file stack-frame.h.
References assign(), is_global(), is_persistent(), unmark_global(), and unmark_persistent().
Referenced by install_variable().
void stack_frame::clear_objects | ( | ) |
Definition at line 1381 of file stack-frame.cc.
References accept().
|
inline |
Definition at line 310 of file stack-frame.h.
References m_parent_link, and m_static_link.
|
virtual |
Definition at line 1114 of file stack-frame.cc.
References warning().
void stack_frame::clear_variable | ( | const std::string & | name | ) |
Definition at line 1389 of file stack-frame.cc.
References accept().
void stack_frame::clear_variable_pattern | ( | const std::string & | pattern | ) |
Definition at line 1397 of file stack-frame.cc.
References accept().
void stack_frame::clear_variable_pattern | ( | const string_vector & | patterns | ) |
Definition at line 1405 of file stack-frame.cc.
References accept().
void stack_frame::clear_variable_regexp | ( | const std::string & | pattern | ) |
Definition at line 1413 of file stack-frame.cc.
References accept().
void stack_frame::clear_variable_regexp | ( | const string_vector & | patterns | ) |
Definition at line 1421 of file stack-frame.cc.
References accept().
void stack_frame::clear_variables | ( | ) |
Definition at line 1429 of file stack-frame.cc.
References accept().
|
inlinevirtual |
Definition at line 208 of file stack-frame.h.
References m_column.
|
inline |
Definition at line 207 of file stack-frame.h.
References m_column.
|
static |
Definition at line 1101 of file stack-frame.cc.
References index(), parent_link(), and static_link().
|
static |
Definition at line 1057 of file stack-frame.cc.
References index(), parent_link(), and static_link().
Referenced by call_stack::push().
|
static |
Definition at line 1088 of file stack-frame.cc.
References access_link(), index(), parent_link(), and static_link().
|
static |
Definition at line 1077 of file stack-frame.cc.
References access_link(), index(), parent_link(), and static_link().
|
static |
Definition at line 1067 of file stack-frame.cc.
References index(), parent_link(), and static_link().
|
virtual |
Definition at line 1454 of file stack-frame.cc.
References access_link(), m_access_link, m_column, m_index, m_line, m_parent_link, m_static_link, and octave_stdout.
void stack_frame::display_stopped_in_message | ( | std::ostream & | os | ) | const |
Definition at line 1437 of file stack-frame.cc.
References fcn_file_name(), fcn_name(), index(), and line().
|
inline |
Definition at line 210 of file stack-frame.h.
References octave_function::fcn_file_name().
Referenced by display_stopped_in_message().
|
inline |
Definition at line 217 of file stack-frame.h.
References octave_base_value::is_anonymous_function(), octave_function::name(), and octave_function::parent_fcn_name().
Referenced by display_stopped_in_message().
|
inline |
Definition at line 523 of file stack-frame.h.
References symbol_scope::find_subfunction(), and get_scope().
|
inlinevirtual |
Definition at line 243 of file stack-frame.h.
|
pure virtual |
|
inline |
Definition at line 553 of file stack-frame.h.
References m_dispatch_class.
|
pure virtual |
Referenced by find_subfunction(), and variable_names().
|
virtual |
Definition at line 1294 of file stack-frame.cc.
References panic_impossible.
|
inline |
Definition at line 273 of file stack-frame.h.
References all_variables().
symbol_info_list stack_frame::glob_symbol_info | ( | const std::string & | pattern | ) |
Definition at line 1254 of file stack-frame.cc.
References accept().
|
inline |
Definition at line 202 of file stack-frame.h.
References m_index.
Referenced by create(), and display_stopped_in_message().
|
pure virtual |
Referenced by assign(), and install_variable().
|
inline |
Definition at line 427 of file stack-frame.h.
References insert_symbol(), install_variable(), and value().
void stack_frame::install_variable | ( | const symbol_record & | sym, |
const octave_value & | value, | ||
bool | global | ||
) |
Definition at line 1314 of file stack-frame.cc.
References assign(), clear(), tree_evaluator::global_varref(), tree_evaluator::global_varval(), octave_value::is_defined(), is_global(), m_evaluator, mark_global(), symbol_record::name(), value(), varval(), and warning_with_id().
Referenced by install_variable(), make_global(), and make_persistent().
|
inline |
Definition at line 585 of file stack-frame.h.
References m_is_closure_context.
|
inlinevirtual |
Definition at line 195 of file stack-frame.h.
|
inline |
Definition at line 352 of file stack-frame.h.
References octave_value::is_defined(), and varval().
|
inline |
Definition at line 405 of file stack-frame.h.
References is_global(), and lookup_symbol().
|
inline |
Definition at line 400 of file stack-frame.h.
References GLOBAL, and scope_flag().
Referenced by clear(), install_variable(), is_global(), is_local_variable(), make_persistent(), and make_symbol_info_list().
|
inline |
Definition at line 373 of file stack-frame.h.
References is_global(), is_variable(), and lookup_symbol().
|
inline |
Definition at line 387 of file stack-frame.h.
References is_object(), and lookup_symbol().
|
inline |
Definition at line 380 of file stack-frame.h.
References octave_value::isobject(), and varval().
Referenced by is_object().
|
inline |
Definition at line 417 of file stack-frame.h.
References is_persistent(), and lookup_symbol().
|
inline |
Definition at line 412 of file stack-frame.h.
References PERSISTENT, and scope_flag().
Referenced by clear(), is_persistent(), make_global(), and make_symbol_info_list().
|
inlinevirtual |
Definition at line 198 of file stack-frame.h.
|
inlinevirtual |
Definition at line 197 of file stack-frame.h.
Referenced by make_symbol_info_list().
|
inlinevirtual |
Definition at line 196 of file stack-frame.h.
|
inline |
Definition at line 366 of file stack-frame.h.
References is_variable(), and lookup_symbol().
|
inline |
Definition at line 359 of file stack-frame.h.
References octave_value::is_defined(), and varval().
Referenced by is_local_variable(), is_variable(), and variable_names().
|
inlinevirtual |
Definition at line 205 of file stack-frame.h.
References m_line.
Referenced by display_stopped_in_message().
|
inline |
Definition at line 204 of file stack-frame.h.
References m_line.
|
pure virtual |
Referenced by is_global(), is_local_variable(), is_object(), is_persistent(), is_variable(), and varval().
|
inline |
Definition at line 297 of file stack-frame.h.
References error(), install_variable(), is_persistent(), mark_global(), and symbol_record::name().
|
inline |
Definition at line 278 of file stack-frame.h.
References error(), install_variable(), symbol_record::is_formal(), is_global(), mark_persistent(), and symbol_record::name().
symbol_info_list stack_frame::make_symbol_info_list | ( | const std::list< symbol_record > & | symrec_list | ) | const |
Definition at line 1120 of file stack-frame.cc.
References base_list< elt_type >::append(), symbol_record::frame_offset(), octave_value::is_defined(), symbol_record::is_formal(), is_global(), is_persistent(), is_user_fcn_frame(), symbol_record::name(), value(), and varval().
|
inline |
Definition at line 570 of file stack-frame.h.
References access_link(), and m_is_closure_context.
|
inline |
Definition at line 332 of file stack-frame.h.
References GLOBAL, and mark_scope().
Referenced by install_variable(), and make_global().
|
inline |
Definition at line 342 of file stack-frame.h.
References mark_scope(), and PERSISTENT.
Referenced by make_persistent().
|
pure virtual |
Referenced by mark_global(), mark_persistent(), unmark_global(), and unmark_persistent().
|
inline |
Definition at line 492 of file stack-frame.h.
References octave_value::non_const_unary_op(), and varref().
|
delete |
|
inline |
Definition at line 317 of file stack-frame.h.
References m_parent_link.
|
inline |
symbol_info_list stack_frame::regexp_symbol_info | ( | const std::string & | pattern | ) |
Definition at line 1264 of file stack-frame.cc.
References accept().
|
virtual |
Definition at line 1284 of file stack-frame.cc.
References panic_impossible.
|
pure virtual |
Referenced by is_global(), and is_persistent().
|
pure virtual |
Referenced by set_nargin(), and set_nargout().
|
inline |
Definition at line 555 of file stack-frame.h.
References m_dispatch_class.
|
inlinevirtual |
Definition at line 439 of file stack-frame.h.
References NARGIN, and set_auto_fcn_var().
|
inlinevirtual |
Definition at line 440 of file stack-frame.h.
References NARGOUT, and set_auto_fcn_var().
|
virtual |
Definition at line 1304 of file stack-frame.cc.
References panic_impossible.
|
virtual |
Definition at line 1274 of file stack-frame.cc.
References panic_impossible.
|
inline |
|
inline |
Definition at line 337 of file stack-frame.h.
References LOCAL, and mark_scope().
Referenced by clear().
|
inline |
Definition at line 347 of file stack-frame.h.
References LOCAL, and mark_scope().
Referenced by clear().
|
inlinevirtual |
Definition at line 245 of file stack-frame.h.
|
inline |
Definition at line 503 of file stack-frame.h.
References octave_value::is_constant(), octave_value_list::length(), octave_value(), octave_value::subsref(), and varval().
Referenced by install_variable(), and make_symbol_info_list().
std::list< std::string > stack_frame::variable_names | ( | ) | const |
Definition at line 1234 of file stack-frame.cc.
References get_scope(), is_variable(), and symbol_scope::symbols().
|
pure virtual |
Referenced by assign(), and non_const_unary_op().
|
virtual |
Definition at line 1371 of file stack-frame.cc.
References panic_impossible.
|
inline |
Definition at line 446 of file stack-frame.h.
References lookup_symbol(), octave_value(), and varval().
|
pure virtual |
Referenced by install_variable(), is_defined(), is_object(), is_variable(), make_symbol_info_list(), value(), and varval().
|
virtual |
Definition at line 1361 of file stack-frame.cc.
References panic_impossible.
octave_value stack_frame::who | ( | const string_vector & | patterns, |
bool | have_regexp, | ||
bool | return_list, | ||
bool | verbose, | ||
const std::string & | whos_line_fmt, | ||
const std::string & | msg | ||
) |
Definition at line 1142 of file stack-frame.cc.
References accept(), string_vector::list_in_columns(), octave_stdout, and octave_value().
octave_value stack_frame::workspace | ( | ) |
Definition at line 1195 of file stack-frame.cc.
References access_link(), all_variables(), octave_scalar_map::assign(), octave_value::is_defined(), symbol_info_list::names(), and symbol_info_list::varval().
|
protected |
Definition at line 618 of file stack-frame.h.
Referenced by access_link(), and display().
|
protected |
Definition at line 601 of file stack-frame.h.
|
protected |
Definition at line 622 of file stack-frame.h.
Referenced by get_dispatch_class(), and set_dispatch_class().
|
protected |
Definition at line 592 of file stack-frame.h.
Referenced by install_variable().
|
protected |
Definition at line 604 of file stack-frame.h.
|
protected |
Definition at line 596 of file stack-frame.h.
Referenced by is_closure_context(), and mark_closure_context().
|
protected |
Definition at line 600 of file stack-frame.h.
|
protected |
Definition at line 608 of file stack-frame.h.
Referenced by clear_parent_static_link(), display(), parent_frame_index(), and parent_link().
|
protected |
Definition at line 613 of file stack-frame.h.
Referenced by clear_parent_static_link(), display(), and static_link().