23 #if ! defined (octave_ov_usr_fcn_h)
24 #define octave_ov_usr_fcn_h 1
26 #include "octave-config.h"
49 #if defined (HAVE_LLVM)
64 virtual std::map<std::string, octave_value> subfunctions (
void)
const;
119 mark_fcn_file_up_to_date (t);
129 const std::list<octave_value_list>& idx)
136 const std::list<octave_value_list>& idx,
189 return is_anonymous_function ()
207 location_line = line;
208 location_column = col;
216 end_location_line = line;
217 end_location_column = col;
223 void maybe_relocate_end (
void);
238 mark_fcn_file_up_to_date (t);
255 void mark_as_system_fcn_file (
void);
266 bool takes_varargs (
void)
const;
268 bool takes_var_return (
void)
const;
277 void lock_subfunctions (
void);
279 void unlock_subfunctions (
void);
281 std::map<std::string, octave_value> subfunctions (
void)
const;
283 bool has_subfunctions (
void)
const;
285 void stash_subfunction_names (
const std::list<std::string>& names);
308 bool is_anonymous_function_of_class
311 return anonymous_function
313 ? (! dispatch_class ().empty ())
314 : cname == dispatch_class ())
323 return is_inline_function () || is_anonymous_function ();
336 return class_constructor == legacy
337 ? (cname.empty () ?
true : cname == dispatch_class ()) :
false;
342 return class_constructor == classdef
343 ? (cname.empty () ?
true : cname == dispatch_class ()) :
false;
351 ? (cname.empty () ?
true : cname == dispatch_class ()) :
false;
355 const std::list<octave_value_list>& idx)
362 const std::list<octave_value_list>& idx,
366 const std::list<octave_value_list>& idx,
368 const std::list<octave_lvalue>* lvalue_list);
375 const std::list<octave_lvalue>* lvalue_list);
391 bool subsasgn_optimization_ok (
void);
395 template <
typename T>
398 if (curr_unwind_protect_frame)
400 curr_unwind_protect_frame->protect_var (variable);
407 #if defined (HAVE_LLVM)
414 void print_symtab_info (std::ostream& os)
const;
502 #if defined (HAVE_LLVM)
506 void maybe_relocate_end_internal (
void);
508 void print_code_function_header (
void);
510 void print_code_function_trailer (
void);
514 const std::list<octave_lvalue> *lvalue_list);
516 void restore_warning_states (
void);
void stash_trailing_comment(octave_comment_list *tc)
void mark_fcn_file_up_to_date(const octave::sys::time &t)
std::list< std::string > subfunction_names(void) const
int beginning_line(void) const
octave::unwind_protect * curr_unwind_protect_frame
void mark_as_inline_function(void)
symbol_table::scope_id local_scope
octave_user_function * user_function_value(bool=false)
std::list< std::string > subfcn_names
void stash_fcn_file_time(const octave::sys::time &t)
octave_comment_list * trail_comm
tree_parameter_list * parameter_list(void)
F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_REAL const F77_REAL F77_REAL &F77_RET_T const F77_DBLE const F77_DBLE F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T F77_DBLE &F77_RET_T F77_REAL &F77_RET_T F77_REAL &F77_RET_T F77_DBLE &F77_RET_T const F77_DBLE F77_DBLE &F77_RET_T const F77_REAL F77_REAL &F77_RET_T F77_REAL F77_REAL &F77_RET_T F77_DBLE F77_DBLE &F77_RET_T const F77_DBLE const F77_DBLE * f
octave::sys::time t_parsed
octave_idx_type length(void) const
idx subsref(val, idx) esult
bool is_classdef_constructor(const std::string &cname="") const
bool local_protect(T &variable)
bool is_user_script(void) const
octave::sys::time t_checked
bool is_inline_function(void) const
symbol_table::scope_id scope(void)
bool is_user_code(void) const
void stash_fcn_end_location(int line, int col)
bool is_special_expr(void) const
octave_comment_list * trailing_comment(void)
bool is_user_function(void) const
octave_comment_list * lead_comm
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
void stash_info(jit_function_info *info)
octave_user_code * user_code_value(bool=false)
symbol_table::scope_id parent_scope
bool is_class_method(const std::string &cname="") const
octave_comment_list * leading_comment(void)
OCTAVE_EXPORT octave_value_list return the number of command line arguments passed to Octave If called with the optional argument the function t
octave_user_code(const std::string &nm, const std::string &ds="")
void stash_leading_comment(octave_comment_list *lc)
octave_function * function_value(bool=false)
octave::sys::time t_parsed
void mark_fcn_file_up_to_date(const octave::sys::time &t)
symbol_table::context_id active_context() const
symbol_table::scope_id parent_fcn_scope(void) const
void stash_fcn_location(int line, int col)
bool is_system_fcn_file(void) const
is any Octave expression that can be evaluated in the code context that exists at the breakpoint When the breakpoint is and execution will stop if for example because it refers to an undefined variable
bool is_subfunction(void) const
bool is_class_constructor(const std::string &cname="") const
static void mark_subfunctions_in_scope_as_private(scope_id scope, const std::string &class_name)
#define DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA
bool is_anonymous_function(void) const
OCTAVE_EXPORT octave_value_list isdir nd deftypefn *std::string nm
OCTAVE_EXPORT octave_value_list return the number of command line arguments passed to Octave If called with the optional argument the function xample nargout(@histc)
void stash_function_name(const std::string &s)
tree_parameter_list * return_list(void)
void mark_as_nested_function(void)
static void erase_subfunctions_in_scope(scope_id scope)
void stash_parent_fcn_scope(symbol_table::scope_id ps)
void mark_as_class_method(void)
virtual void mark_as_private_function(const std::string &cname="")
octave::sys::time t_checked
void stash_fcn_file_time(const octave::sys::time &t)
tree_statement_list * cmd_list
jit_function_info * get_info(void)
std::string fcn_file_name(void) const
octave_value subsref(const std::string &type, const std::list< octave_value_list > &idx)
void mark_as_classdef_constructor(void)
octave_user_code * user_code_value(bool=false)
octave_user_script * user_script_value(bool=false)
tree_statement_list * body(void)
void erase_subfunctions(void)
octave::sys::time time_parsed(void) const
jit_function_info * jit_info
octave::sys::time time_checked(void) const
void stash_fcn_file_name(const std::string &nm)
tree_statement_list * cmd_list
class_ctor_type class_constructor
octave_function * function_value(bool=false)
tree_parameter_list * param_list
void mark_as_anonymous_function(void)
octave::sys::time time_parsed(void) const
octave::sys::time time_checked(void) const
void mark_as_subfunction(void)
int ending_line(void) const
int beginning_column(void) const
std::string fcn_file_name(void) const
tree_statement_list * body(void)
void stash_parent_fcn_name(const std::string &p)
std::string parent_fcn_name(void) const
tree_parameter_list * ret_list
If this string is the system will ring the terminal sometimes it is useful to be able to print the original representation of the string
void mark_as_class_constructor(void)
return octave_value(v1.char_array_value().concat(v2.char_array_value(), ra_idx),((a1.is_sq_string()||a2.is_sq_string())? '\'': '"'))
void mark_as_private_function(const std::string &cname="")
bool is_nested_function(void) const
int ending_column(void) const