26#if ! defined (octave_interpreter_h)
27#define octave_interpreter_h 1
29#include "octave-config.h"
100 void insert (
const std::string& file);
107 std::set<std::string> m_files;
131 void initialize_history (
bool read_history_file =
false);
139 void initialize_load_path (
bool set_initial_path =
true);
148 void get_line_and_eval ();
154 void parse_and_execute (
const std::string& input,
bool& incomplete_parse);
166 return m_interactive;
176 m_read_site_files = flag;
181 m_read_user_files = flag;
184 OCTAVE_DEPRECATED (10,
"interpreter::read_init_files is deprecated, use read_user_files")
185 void read_init_files (
bool flag)
187 read_user_files (flag);
196 void verbose (
bool flag)
203 m_traditional = flag;
208 return m_traditional;
213 m_inhibit_startup_message = flag;
218 return m_evaluator.in_top_level_repl ();
223 return m_initialized;
228 m_interrupt_all_in_process_group = b;
233 return m_interrupt_all_in_process_group;
238 return m_app_context;
243 return m_display_info;
248 return m_environment;
253 return m_evaluator.get_error_system ();
260 return m_help_system;
265 return m_input_system;
270 return m_output_system;
275 return m_history_system;
280 return m_dynamic_loader;
290 return m_load_save_system;
300 return m_symbol_table;
305 symbol_scope require_current_scope (
const std::string& who)
const;
320 return m_cdef_manager;
325 return m_gtk_manager;
330 return m_event_manager;
335 return *m_gh_manager;
343 int chdir (
const std::string& dir);
345 void mlock (
bool skip_first =
false)
const;
346 void munlock (
bool skip_first =
false)
const;
347 bool mislocked (
bool skip_first =
false)
const;
351 void munlock (
const char *nm);
352 void munlock (
const std::string& nm);
354 bool mislocked (
const char *nm);
355 bool mislocked (
const std::string& nm);
357 std::string mfilename (
const std::string& opt =
"")
const;
360 int& parse_status,
int nargout);
362 octave_value eval_string (
const std::string& eval_str,
bool silent,
366 int& parse_status,
int nargout);
371 const std::string& catch_code,
int nargout);
374 const std::string& try_code,
int nargout);
377 const std::string& try_code,
378 const std::string& catch_code,
int nargout);
381 feval (
const char *name,
386 feval (
const std::string& name,
402 std::string inputname (
int n,
bool ids_only =
true)
const;
404 octave_value make_function_handle (
const std::string& name);
406 void install_variable (
const std::string& name,
const octave_value& value,
411 octave_value global_varval (
const std::string& name)
const;
413 void global_assign (
const std::string& name,
416 octave_value top_level_varval (
const std::string& name)
const;
418 void top_level_assign (
const std::string& name,
421 bool is_variable (
const std::string& name)
const;
423 bool is_local_variable (
const std::string& name)
const;
427 void assign (
const std::string& name,
430 void assignin (
const std::string& context,
const std::string& varname,
434 const std::string& context =
"",
435 bool verbose =
false,
bool require_file =
true);
437 bool at_top_level ()
const;
439 bool isglobal (
const std::string& name)
const;
443 void clear_all (
bool force =
false);
445 void clear_objects ();
447 void clear_variable (
const std::string& name);
449 void clear_variable_pattern (
const std::string& pattern);
451 void clear_variable_regexp (
const std::string& pattern);
453 void clear_variables ();
455 void clear_global_variable (
const std::string& name);
457 void clear_global_variable_pattern (
const std::string& pattern);
459 void clear_global_variable_regexp (
const std::string& pattern);
461 void clear_global_variables ();
463 void clear_functions (
bool force =
false);
465 void clear_function (
const std::string& name);
467 void clear_symbol (
const std::string& name);
469 void clear_function_pattern (
const std::string& pat);
471 void clear_function_regexp (
const std::string& pat);
473 void clear_symbol_pattern (
const std::string& pat);
475 void clear_symbol_regexp (
const std::string& pat);
477 std::list<std::string> variable_names ();
479 std::list<std::string> top_level_variable_names ();
481 std::list<std::string> global_variable_names ();
483 std::list<std::string> user_function_names ();
485 std::list<std::string> autoloaded_functions ()
const;
499 void add_debug_watch_expression (
const std::string& expr);
503 void remove_debug_watch_expression (
const std::string& expr);
507 void clear_debug_watch_expressions ();
511 std::set<std::string> debug_watch_expressions ()
const;
517 std::string PS1 ()
const;
518 std::string PS1 (
const std::string& s);
519 void set_PS1 (
const std::string& s);
522 std::string PS2 ()
const;
523 std::string PS2 (
const std::string& s);
524 void set_PS2 (
const std::string& s);
527 std::string PS4 ()
const;
528 std::string PS4 (
const std::string& s);
529 void set_PS4 (
const std::string& s);
533 bool experimental_terminal_widget ()
const;
537 void recover_from_exception ();
539 void mark_for_deletion (
const std::string& file);
541 void cleanup_tmp_files ();
543 void quit (
int exit_status,
bool force =
false,
bool confirm =
true);
549 return m_executing_finish_script;
552 void add_atexit_fcn (
const std::string& fname);
554 bool remove_atexit_fcn (
const std::string& fname);
560 void display_startup_message ()
const;
562 int execute_startup_files ();
564 int execute_eval_option_code ();
566 int execute_command_line_file ();
568 void run_startup_tests ();
576 void execute_atexit_fcns ();
578 void maximum_braindamage ();
580 void execute_pkg_add (
const std::string& dir);
582 int safe_source_file (
const std::string& file_name,
583 const std::string& context =
"",
584 bool verbose =
false,
bool require_file =
true);
596 OCTAVE_THREAD_LOCAL
static interpreter *s_instance;
602 std::list<std::string> m_atexit_fcns;
645 bool m_read_site_files;
647 bool m_read_user_files;
653 bool m_inhibit_startup_message;
655 bool m_load_path_initialized;
657 bool m_history_initialized;
659 bool m_interrupt_all_in_process_group;
663 bool m_executing_finish_script;
665 bool m_executing_atexit;
670OCTAVE_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()
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
OCTAVE_DEPRECATED(11, "") typedef bool(*b_d_Mapper)(double)
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)
int chdir(const std::string &path_arg)