26#if ! defined (octave_interpreter_h)
27#define octave_interpreter_h 1
29#include "octave-config.h"
101 void insert (
const std::string& file);
108 std::set<std::string> m_files;
132 void initialize_history (
bool read_history_file =
false);
140 void initialize_load_path (
bool set_initial_path =
true);
149 void get_line_and_eval ();
155 void parse_and_execute (
const std::string& input,
bool& incomplete_parse);
167 return m_interactive;
177 m_read_site_files = flag;
182 m_read_user_files = flag;
185 OCTAVE_DEPRECATED (10,
"interpreter::read_init_files is deprecated, use read_user_files")
186 void read_init_files (
bool flag)
188 read_user_files (flag);
196 OCTAVE_DEPRECATED (10,
"interpreter::verbose is deprecated, use init_trace")
197 void verbose (
bool flag)
204 m_traditional = flag;
209 return m_traditional;
214 m_inhibit_startup_message = flag;
219 return m_evaluator.in_top_level_repl ();
224 return m_initialized;
227 OCTAVE_DEPRECATED (9,
"use octave::is_initialized instead")
230 return is_initialized ();
235 m_interrupt_all_in_process_group = b;
240 return m_interrupt_all_in_process_group;
245 return m_app_context;
250 return m_display_info;
255 return m_environment;
265 return m_error_system;
272 return m_help_system;
277 return m_input_system;
282 return m_output_system;
287 return m_history_system;
292 return m_dynamic_loader;
302 return m_load_save_system;
312 return m_symbol_table;
317 symbol_scope require_current_scope (
const std::string& who)
const;
332 return m_cdef_manager;
337 return m_gtk_manager;
342 return m_event_manager;
347 return *m_gh_manager;
355 int chdir (
const std::string& dir);
357 void mlock (
bool skip_first =
false)
const;
358 void munlock (
bool skip_first =
false)
const;
359 bool mislocked (
bool skip_first =
false)
const;
363 void munlock (
const char *nm);
364 void munlock (
const std::string& nm);
366 bool mislocked (
const char *nm);
367 bool mislocked (
const std::string& nm);
369 std::string mfilename (
const std::string& opt =
"")
const;
372 int& parse_status,
int nargout);
374 octave_value eval_string (
const std::string& eval_str,
bool silent,
378 int& parse_status,
int nargout);
383 const std::string& catch_code,
int nargout);
386 const std::string& try_code,
int nargout);
389 const std::string& try_code,
390 const std::string& catch_code,
int nargout);
393 feval (
const char *name,
398 feval (
const std::string& name,
414 std::string inputname (
int n,
bool ids_only =
true)
const;
416 octave_value make_function_handle (
const std::string& name);
418 void install_variable (
const std::string& name,
const octave_value& value,
423 octave_value global_varval (
const std::string& name)
const;
425 void global_assign (
const std::string& name,
428 octave_value top_level_varval (
const std::string& name)
const;
430 void top_level_assign (
const std::string& name,
433 bool is_variable (
const std::string& name)
const;
435 bool is_local_variable (
const std::string& name)
const;
439 void assign (
const std::string& name,
442 void assignin (
const std::string& context,
const std::string& varname,
446 const std::string& context =
"",
447 bool verbose =
false,
bool require_file =
true);
449 bool at_top_level ()
const;
451 bool isglobal (
const std::string& name)
const;
455 void clear_all (
bool force =
false);
457 void clear_objects ();
459 void clear_variable (
const std::string& name);
461 void clear_variable_pattern (
const std::string& pattern);
463 void clear_variable_regexp (
const std::string& pattern);
465 void clear_variables ();
467 void clear_global_variable (
const std::string& name);
469 void clear_global_variable_pattern (
const std::string& pattern);
471 void clear_global_variable_regexp (
const std::string& pattern);
473 void clear_global_variables ();
475 void clear_functions (
bool force =
false);
477 void clear_function (
const std::string& name);
479 void clear_symbol (
const std::string& name);
481 void clear_function_pattern (
const std::string& pat);
483 void clear_function_regexp (
const std::string& pat);
485 void clear_symbol_pattern (
const std::string& pat);
487 void clear_symbol_regexp (
const std::string& pat);
489 std::list<std::string> variable_names ();
491 std::list<std::string> top_level_variable_names ();
493 std::list<std::string> global_variable_names ();
495 std::list<std::string> user_function_names ();
497 std::list<std::string> autoloaded_functions ()
const;
511 void add_debug_watch_expression (
const std::string& expr);
515 void remove_debug_watch_expression (
const std::string& expr);
519 void clear_debug_watch_expressions ();
523 std::set<std::string> debug_watch_expressions ()
const;
529 std::string PS1 ()
const;
530 std::string PS1 (
const std::string& s);
531 void set_PS1 (
const std::string& s);
534 std::string PS2 ()
const;
535 std::string PS2 (
const std::string& s);
536 void set_PS2 (
const std::string& s);
539 std::string PS4 ()
const;
540 std::string PS4 (
const std::string& s);
541 void set_PS4 (
const std::string& s);
545 bool experimental_terminal_widget ()
const;
549 void recover_from_exception ();
551 void mark_for_deletion (
const std::string& file);
553 void cleanup_tmp_files ();
555 void quit (
int exit_status,
bool force =
false,
bool confirm =
true);
561 return m_executing_finish_script;
564 void add_atexit_fcn (
const std::string& fname);
566 bool remove_atexit_fcn (
const std::string& fname);
572 void display_startup_message ()
const;
574 int execute_startup_files ();
576 int execute_eval_option_code ();
578 int execute_command_line_file ();
586 void execute_atexit_fcns ();
588 void maximum_braindamage ();
590 void execute_pkg_add (
const std::string& dir);
592 int safe_source_file (
const std::string& file_name,
593 const std::string& context =
"",
594 bool verbose =
false,
bool require_file =
true);
606 OCTAVE_THREAD_LOCAL
static interpreter *s_instance;
612 std::list<std::string> m_atexit_fcns;
659 bool m_read_site_files;
661 bool m_read_user_files;
667 bool m_inhibit_startup_message;
669 bool m_load_path_initialized;
671 bool m_history_initialized;
673 bool m_interrupt_all_in_process_group;
677 bool m_executing_finish_script;
679 bool m_executing_atexit;
684OCTAVE_END_NAMESPACE(octave)
Provides threadsafe access to octave.
void interrupt_all_in_process_group(bool b)
cdef_manager & get_cdef_manager()
error_system & get_error_system()
settings & get_settings()
void read_site_files(bool flag)
bool in_top_level_repl() const
display_info & get_display_info()
output_system & get_output_system()
load_path & get_load_path()
application * get_app_context()
bool executing_finish_script() const
gtk_manager & get_gtk_manager()
environment & get_environment()
void cancel_quit(bool flag)
help_system & get_help_system()
history_system & get_history_system()
dynamic_loader & get_dynamic_loader()
void traditional(bool flag)
type_info & get_type_info()
void read_user_files(bool flag)
child_list & get_child_list()
void interactive(bool arg)
void inhibit_startup_message(bool flag)
load_save_system & get_load_save_system()
static interpreter * the_interpreter()
bool is_initialized() const
void set_global_value(const std::string &name, const octave_value &value)
gh_manager & get_gh_manager()
bool interrupt_all_in_process_group() const
input_system & get_input_system()
void init_trace(bool flag)
event_manager & get_event_manager()
symbol_table & get_symbol_table()
void insert(const std::string &file)
OCTAVE_BEGIN_NAMESPACE(octave) static octave_value daspk_fcn
bool octave_interpreter_ready
sys::time Vlast_chdir_time
std::atomic< bool > octave_initialized
int chdir(const std::string &path_arg)
octave_value_list feval(const char *name, const octave_value_list &args, int nargout)
Evaluate an Octave function (built-in or interpreted) and return the list of result values.
void source_file(const std::string &file_name, const std::string &context, bool verbose, bool require_file)