Mercurial > octave
diff libinterp/corefcn/interpreter.h @ 31607:aac27ad79be6 stable
maint: Re-indent code after switch to using namespace macros.
* build-env.h, build-env.in.cc, Cell.h, __betainc__.cc, __eigs__.cc,
__ftp__.cc, __ichol__.cc, __ilu__.cc, __isprimelarge__.cc, __magick_read__.cc,
__pchip_deriv__.cc, amd.cc, base-text-renderer.cc, base-text-renderer.h,
besselj.cc, bitfcns.cc, bsxfun.cc, c-file-ptr-stream.h, call-stack.cc,
call-stack.h, ccolamd.cc, cellfun.cc, chol.cc, colamd.cc, dasrt.cc, data.cc,
debug.cc, defaults.cc, defaults.h, det.cc, display.cc, display.h, dlmread.cc,
dynamic-ld.cc, dynamic-ld.h, ellipj.cc, environment.cc, environment.h,
error.cc, error.h, errwarn.h, event-manager.cc, event-manager.h,
event-queue.cc, event-queue.h, fcn-info.cc, fcn-info.h, fft.cc, fft2.cc,
file-io.cc, filter.cc, find.cc, ft-text-renderer.cc, ft-text-renderer.h,
gcd.cc, gl-render.cc, gl-render.h, gl2ps-print.cc, gl2ps-print.h,
graphics-toolkit.cc, graphics-toolkit.h, graphics.cc, gsvd.cc, gtk-manager.cc,
gtk-manager.h, help.cc, help.h, hook-fcn.cc, hook-fcn.h, input.cc, input.h,
interpreter-private.cc, interpreter-private.h, interpreter.cc, interpreter.h,
inv.cc, jsondecode.cc, jsonencode.cc, latex-text-renderer.cc,
latex-text-renderer.h, load-path.cc, load-path.h, load-save.cc, load-save.h,
lookup.cc, ls-hdf5.cc, ls-mat4.cc, ls-mat5.cc, lsode.cc, lu.cc, mappers.cc,
matrix_type.cc, max.cc, mex.cc, mexproto.h, mxarray.h, mxtypes.in.h,
oct-errno.in.cc, oct-hdf5-types.cc, oct-hist.cc, oct-hist.h, oct-map.cc,
oct-map.h, oct-opengl.h, oct-prcstrm.h, oct-process.cc, oct-process.h,
oct-stdstrm.h, oct-stream.cc, oct-stream.h, oct-strstrm.h,
octave-default-image.h, ordqz.cc, ordschur.cc, pager.cc, pager.h, pinv.cc,
pow2.cc, pr-output.cc, psi.cc, qr.cc, quadcc.cc, rand.cc, regexp.cc,
settings.cc, settings.h, sighandlers.cc, sighandlers.h, sparse-xpow.cc,
sqrtm.cc, stack-frame.cc, stack-frame.h, stream-euler.cc, strfns.cc, svd.cc,
syminfo.cc, syminfo.h, symrcm.cc, symrec.cc, symrec.h, symscope.cc, symscope.h,
symtab.cc, symtab.h, sysdep.cc, sysdep.h, text-engine.cc, text-engine.h,
text-renderer.cc, text-renderer.h, time.cc, toplev.cc, typecast.cc,
url-handle-manager.cc, url-handle-manager.h, urlwrite.cc, utils.cc, utils.h,
variables.cc, variables.h, xdiv.cc, __delaunayn__.cc, __init_fltk__.cc,
__init_gnuplot__.cc, __ode15__.cc, __voronoi__.cc, audioread.cc, convhulln.cc,
gzip.cc, cdef-class.cc, cdef-class.h, cdef-fwd.h, cdef-manager.cc,
cdef-manager.h, cdef-method.cc, cdef-method.h, cdef-object.cc, cdef-object.h,
cdef-package.cc, cdef-package.h, cdef-property.cc, cdef-property.h,
cdef-utils.cc, cdef-utils.h, ov-base-diag.cc, ov-base-int.cc, ov-base-mat.cc,
ov-base-mat.h, ov-base-scalar.cc, ov-base.cc, ov-base.h, ov-bool-mat.cc,
ov-bool-mat.h, ov-bool-sparse.cc, ov-bool.cc, ov-builtin.h, ov-cell.cc,
ov-ch-mat.cc, ov-class.cc, ov-class.h, ov-classdef.cc, ov-classdef.h,
ov-complex.cc, ov-cx-diag.cc, ov-cx-mat.cc, ov-cx-sparse.cc, ov-dld-fcn.cc,
ov-dld-fcn.h, ov-fcn-handle.cc, ov-fcn-handle.h, ov-fcn.h, ov-float.cc,
ov-flt-complex.cc, ov-flt-cx-diag.cc, ov-flt-cx-mat.cc, ov-flt-re-diag.cc,
ov-flt-re-mat.cc, ov-flt-re-mat.h, ov-intx.h, ov-java.cc, ov-lazy-idx.cc,
ov-legacy-range.cc, ov-magic-int.cc, ov-mex-fcn.cc, ov-mex-fcn.h,
ov-null-mat.cc, ov-perm.cc, ov-range.cc, ov-re-diag.cc, ov-re-mat.cc,
ov-re-mat.h, ov-re-sparse.cc, ov-scalar.cc, ov-str-mat.cc, ov-struct.cc,
ov-typeinfo.cc, ov-typeinfo.h, ov-usr-fcn.cc, ov-usr-fcn.h, ov.cc, ov.h, ovl.h,
octave.cc, octave.h, op-b-sbm.cc, op-bm-sbm.cc, op-cs-scm.cc, op-fm-fcm.cc,
op-fs-fcm.cc, op-s-scm.cc, op-scm-cs.cc, op-scm-s.cc, op-sm-cs.cc, ops.h,
anon-fcn-validator.cc, anon-fcn-validator.h, bp-table.cc, bp-table.h,
comment-list.cc, comment-list.h, filepos.h, lex.h, oct-lvalue.cc, oct-lvalue.h,
parse.h, profiler.cc, profiler.h, pt-anon-scopes.cc, pt-anon-scopes.h,
pt-arg-list.cc, pt-arg-list.h, pt-args-block.cc, pt-args-block.h,
pt-array-list.cc, pt-array-list.h, pt-assign.cc, pt-assign.h, pt-binop.cc,
pt-binop.h, pt-bp.cc, pt-bp.h, pt-cbinop.cc, pt-cbinop.h, pt-cell.cc,
pt-cell.h, pt-check.cc, pt-check.h, pt-classdef.cc, pt-classdef.h, pt-cmd.h,
pt-colon.cc, pt-colon.h, pt-const.cc, pt-const.h, pt-decl.cc, pt-decl.h,
pt-eval.cc, pt-eval.h, pt-except.cc, pt-except.h, pt-exp.cc, pt-exp.h,
pt-fcn-handle.cc, pt-fcn-handle.h, pt-id.cc, pt-id.h, pt-idx.cc, pt-idx.h,
pt-jump.h, pt-loop.cc, pt-loop.h, pt-mat.cc, pt-mat.h, pt-misc.cc, pt-misc.h,
pt-pr-code.cc, pt-pr-code.h, pt-select.cc, pt-select.h, pt-spmd.cc, pt-spmd.h,
pt-stmt.cc, pt-stmt.h, pt-tm-const.cc, pt-tm-const.h, pt-unop.cc, pt-unop.h,
pt-walk.cc, pt-walk.h, pt.cc, pt.h, token.cc, token.h, Range.cc, Range.h,
idx-vector.cc, idx-vector.h, range-fwd.h, CollocWt.cc, CollocWt.h,
aepbalance.cc, aepbalance.h, chol.cc, chol.h, gepbalance.cc, gepbalance.h,
gsvd.cc, gsvd.h, hess.cc, hess.h, lo-mappers.cc, lo-mappers.h, lo-specfun.cc,
lo-specfun.h, lu.cc, lu.h, oct-convn.cc, oct-convn.h, oct-fftw.cc, oct-fftw.h,
oct-norm.cc, oct-norm.h, oct-rand.cc, oct-rand.h, oct-spparms.cc,
oct-spparms.h, qr.cc, qr.h, qrp.cc, qrp.h, randgamma.cc, randgamma.h,
randmtzig.cc, randmtzig.h, randpoisson.cc, randpoisson.h, schur.cc, schur.h,
sparse-chol.cc, sparse-chol.h, sparse-lu.cc, sparse-lu.h, sparse-qr.cc,
sparse-qr.h, svd.cc, svd.h, child-list.cc, child-list.h, dir-ops.cc, dir-ops.h,
file-ops.cc, file-ops.h, file-stat.cc, file-stat.h, lo-sysdep.cc, lo-sysdep.h,
lo-sysinfo.cc, lo-sysinfo.h, mach-info.cc, mach-info.h, oct-env.cc, oct-env.h,
oct-group.cc, oct-group.h, oct-password.cc, oct-password.h, oct-syscalls.cc,
oct-syscalls.h, oct-time.cc, oct-time.h, oct-uname.cc, oct-uname.h,
action-container.cc, action-container.h, base-list.h, cmd-edit.cc, cmd-edit.h,
cmd-hist.cc, cmd-hist.h, f77-fcn.h, file-info.cc, file-info.h,
lo-array-errwarn.cc, lo-array-errwarn.h, lo-hash.cc, lo-hash.h, lo-ieee.h,
lo-regexp.cc, lo-regexp.h, lo-utils.cc, lo-utils.h, oct-base64.cc,
oct-base64.h, oct-glob.cc, oct-glob.h, oct-inttypes.h, oct-mutex.cc,
oct-mutex.h, oct-refcount.h, oct-shlib.cc, oct-shlib.h, oct-sparse.cc,
oct-sparse.h, oct-string.h, octave-preserve-stream-state.h, pathsearch.cc,
pathsearch.h, quit.cc, quit.h, unwind-prot.cc, unwind-prot.h, url-transfer.cc,
url-transfer.h:
Re-indent code after switch to using namespace macros.
author | Rik <rik@octave.org> |
---|---|
date | Thu, 01 Dec 2022 18:02:15 -0800 |
parents | e88a07dec498 |
children | d9970470108a |
line wrap: on
line diff
--- a/libinterp/corefcn/interpreter.h Thu Dec 01 14:23:45 2022 -0800 +++ b/libinterp/corefcn/interpreter.h Thu Dec 01 18:02:15 2022 -0800 @@ -72,581 +72,581 @@ OCTAVE_BEGIN_NAMESPACE(octave) - class profiler; - class child_list; - class push_parser; +class profiler; +class child_list; +class push_parser; - // The time we last time we changed directories. - extern sys::time Vlast_chdir_time; +// The time we last time we changed directories. +extern sys::time Vlast_chdir_time; - // The application object contains a pointer to the current - // interpreter and the interpreter contains a pointer back to the - // application context so we need a forward declaration for one (or - // both) of them... +// The application object contains a pointer to the current +// interpreter and the interpreter contains a pointer back to the +// application context so we need a forward declaration for one (or +// both) of them... - class application; +class application; + +class temporary_file_list +{ +public: - class temporary_file_list - { - public: + temporary_file_list (void) : m_files () { } + + // No copying! - temporary_file_list (void) : m_files () { } + temporary_file_list (const temporary_file_list&) = delete; - // No copying! - - temporary_file_list (const temporary_file_list&) = delete; + temporary_file_list& operator = (const temporary_file_list&) = delete; - temporary_file_list& operator = (const temporary_file_list&) = delete; + ~temporary_file_list (void); - ~temporary_file_list (void); + void insert (const std::string& file); - void insert (const std::string& file); + void cleanup (void); - void cleanup (void); +private: - private: + // List of temporary files to delete when we exit. + std::set<std::string> m_files; - // List of temporary files to delete when we exit. - std::set<std::string> m_files; +}; - }; +class OCTINTERP_API interpreter +{ +public: - class OCTINTERP_API interpreter - { - public: + // Create an interpreter object and perform basic initialization. - // Create an interpreter object and perform basic initialization. + interpreter (application *app_context = nullptr); - interpreter (application *app_context = nullptr); + // No copying, at least not yet... - // No copying, at least not yet... + interpreter (const interpreter&) = delete; - interpreter (const interpreter&) = delete; + interpreter& operator = (const interpreter&) = delete; - interpreter& operator = (const interpreter&) = delete; + // Clean up the interpreter object. - // Clean up the interpreter object. + ~interpreter (void); - ~interpreter (void); + void intern_nargin (octave_idx_type nargs); - void intern_nargin (octave_idx_type nargs); + // If creating an embedded interpreter, you may inhibit reading + // the command history file by calling initialize_history with + // read_history_file = false prior to calling initialize. - // If creating an embedded interpreter, you may inhibit reading - // the command history file by calling initialize_history with - // read_history_file = false prior to calling initialize. + void initialize_history (bool read_history_file = false); - void initialize_history (bool read_history_file = false); + // If creating an embedded interpreter, you may inhibit setting + // the default compiled-in path by calling initialize_load_path + // with set_initial_path = false prior calling initialize. After + // that, you can add directories to the load path to set up a + // custom path. - // If creating an embedded interpreter, you may inhibit setting - // the default compiled-in path by calling initialize_load_path - // with set_initial_path = false prior calling initialize. After - // that, you can add directories to the load path to set up a - // custom path. + void initialize_load_path (bool set_initial_path = true); - void initialize_load_path (bool set_initial_path = true); + // Load command line history, set the load path. - // Load command line history, set the load path. + void initialize (void); - void initialize (void); + // Note: GET_LINE_AND_EVAL is only used by new experimental terminal + // widget. - // Note: GET_LINE_AND_EVAL is only used by new experimental terminal - // widget. + void get_line_and_eval (void); - void get_line_and_eval (void); + // Parse a line of input. If input ends at a complete statement + // boundary, execute the resulting parse tree. Useful to handle + // parsing user input when running in server mode. - // Parse a line of input. If input ends at a complete statement - // boundary, execute the resulting parse tree. Useful to handle - // parsing user input when running in server mode. + void parse_and_execute (const std::string& input, bool& incomplete_parse); - void parse_and_execute (const std::string& input, bool& incomplete_parse); + // Initialize the interpreter (if not already done by an explicit + // call to initialize), execute startup files, --eval option code, + // script files, and/or interactive commands. - // Initialize the interpreter (if not already done by an explicit - // call to initialize), execute startup files, --eval option code, - // script files, and/or interactive commands. + int execute (void); + + bool server_mode (void) const { return m_evaluator.server_mode (); } - int execute (void); - - bool server_mode (void) const { return m_evaluator.server_mode (); } + bool interactive (void) const + { + return m_interactive; + } - bool interactive (void) const - { - return m_interactive; - } + void interactive (bool arg) + { + m_interactive = arg; + } - void interactive (bool arg) - { - m_interactive = arg; - } + void read_site_files (bool flag) + { + m_read_site_files = flag; + } - void read_site_files (bool flag) - { - m_read_site_files = flag; - } + void read_init_files (bool flag) + { + m_read_init_files = flag; + } - void read_init_files (bool flag) - { - m_read_init_files = flag; - } + void verbose (bool flag) + { + m_verbose = flag; + } - void verbose (bool flag) - { - m_verbose = flag; - } + void traditional (bool flag) + { + m_traditional = flag; + } - void traditional (bool flag) - { - m_traditional = flag; - } + bool traditional (void) const + { + return m_traditional; + } - bool traditional (void) const - { - return m_traditional; - } + void inhibit_startup_message (bool flag) + { + m_inhibit_startup_message = flag; + } - void inhibit_startup_message (bool flag) - { - m_inhibit_startup_message = flag; - } + bool in_top_level_repl (void) const + { + return m_evaluator.in_top_level_repl (); + } - bool in_top_level_repl (void) const - { - return m_evaluator.in_top_level_repl (); - } + bool initialized (void) const + { + return m_initialized; + } - bool initialized (void) const - { - return m_initialized; - } + void interrupt_all_in_process_group (bool b) + { + m_interrupt_all_in_process_group = b; + } - void interrupt_all_in_process_group (bool b) - { - m_interrupt_all_in_process_group = b; - } + bool interrupt_all_in_process_group (void) const + { + return m_interrupt_all_in_process_group; + } - bool interrupt_all_in_process_group (void) const - { - return m_interrupt_all_in_process_group; - } + application * get_app_context (void) + { + return m_app_context; + } - application *get_app_context (void) - { - return m_app_context; - } + display_info& get_display_info (void) + { + return m_display_info; + } - display_info& get_display_info (void) - { - return m_display_info; - } - - environment& get_environment (void) - { - return m_environment; - } + environment& get_environment (void) + { + return m_environment; + } - settings& get_settings (void) - { - return m_settings; - } + settings& get_settings (void) + { + return m_settings; + } - error_system& get_error_system (void) - { - return m_error_system; - } + error_system& get_error_system (void) + { + return m_error_system; + } + + tree_evaluator& get_evaluator (void); - tree_evaluator& get_evaluator (void); + help_system& get_help_system (void) + { + return m_help_system; + } - help_system& get_help_system (void) - { - return m_help_system; - } + input_system& get_input_system (void) + { + return m_input_system; + } - input_system& get_input_system (void) - { - return m_input_system; - } + output_system& get_output_system (void) + { + return m_output_system; + } - output_system& get_output_system (void) - { - return m_output_system; - } + history_system& get_history_system (void) + { + return m_history_system; + } - history_system& get_history_system (void) - { - return m_history_system; - } + dynamic_loader& get_dynamic_loader (void) + { + return m_dynamic_loader; + } - dynamic_loader& get_dynamic_loader (void) - { - return m_dynamic_loader; - } + load_path& get_load_path (void) + { + return m_load_path; + } - load_path& get_load_path (void) - { - return m_load_path; - } + load_save_system& get_load_save_system (void) + { + return m_load_save_system; + } - load_save_system& get_load_save_system (void) - { - return m_load_save_system; - } + type_info& get_type_info (void) + { + return m_type_info; + } - type_info& get_type_info (void) - { - return m_type_info; - } + symbol_table& get_symbol_table (void) + { + return m_symbol_table; + } + + symbol_scope get_top_scope (void) const; + symbol_scope get_current_scope (void) const; + symbol_scope require_current_scope (const std::string& who) const; - symbol_table& get_symbol_table (void) - { - return m_symbol_table; - } + profiler& get_profiler (void); + + stream_list& get_stream_list (void); - symbol_scope get_top_scope (void) const; - symbol_scope get_current_scope (void) const; - symbol_scope require_current_scope (const std::string& who) const; + child_list& get_child_list (void) + { + return m_child_list; + } - profiler& get_profiler (void); + url_handle_manager& get_url_handle_manager (void); - stream_list& get_stream_list (void); + cdef_manager& get_cdef_manager (void) + { + return m_cdef_manager; + } - child_list& get_child_list (void) - { - return m_child_list; - } - - url_handle_manager& get_url_handle_manager (void); + gtk_manager& get_gtk_manager (void) + { + return m_gtk_manager; + } - cdef_manager& get_cdef_manager (void) - { - return m_cdef_manager; - } + event_manager& get_event_manager (void) + { + return m_event_manager; + } - gtk_manager& get_gtk_manager (void) - { - return m_gtk_manager; - } + gh_manager& get_gh_manager (void) + { + return *m_gh_manager; + } - event_manager& get_event_manager (void) - { - return m_event_manager; - } + // Any Octave code that needs to change the current directory should + // call this function instead of calling the system chdir function + // directly so that the load-path and GUI may be notified of the + // change. - gh_manager& get_gh_manager (void) - { - return *m_gh_manager; - } + int chdir (const std::string& dir); - // Any Octave code that needs to change the current directory should - // call this function instead of calling the system chdir function - // directly so that the load-path and GUI may be notified of the - // change. + void mlock (bool skip_first = false) const; + void munlock (bool skip_first = false) const; + bool mislocked (bool skip_first = false) const; - int chdir (const std::string& dir); + // NOTE: since we have a version that accepts a bool argument, we + // can't rely on automatic conversion from char* to std::string. + void munlock (const char *nm); + void munlock (const std::string& nm); - void mlock (bool skip_first = false) const; - void munlock (bool skip_first = false) const; - bool mislocked (bool skip_first = false) const; + bool mislocked (const char *nm); + bool mislocked (const std::string& nm); - // NOTE: since we have a version that accepts a bool argument, we - // can't rely on automatic conversion from char* to std::string. - void munlock (const char *nm); - void munlock (const std::string& nm); + std::string mfilename (const std::string& opt = "") const; + + octave_value_list eval_string (const std::string& eval_str, bool silent, + int& parse_status, int nargout); - bool mislocked (const char *nm); - bool mislocked (const std::string& nm); + octave_value eval_string (const std::string& eval_str, bool silent, + int& parse_status); - std::string mfilename (const std::string& opt = "") const; + octave_value_list eval_string (const octave_value& arg, bool silent, + int& parse_status, int nargout); - octave_value_list eval_string (const std::string& eval_str, bool silent, - int& parse_status, int nargout); + octave_value_list eval (const std::string& try_code, int nargout); - octave_value eval_string (const std::string& eval_str, bool silent, - int& parse_status); + octave_value_list eval (const std::string& try_code, + const std::string& catch_code, int nargout); - octave_value_list eval_string (const octave_value& arg, bool silent, - int& parse_status, int nargout); + octave_value_list evalin (const std::string& context, + const std::string& try_code, int nargout); - octave_value_list eval (const std::string& try_code, int nargout); - - octave_value_list eval (const std::string& try_code, + octave_value_list evalin (const std::string& context, + const std::string& try_code, const std::string& catch_code, int nargout); - octave_value_list evalin (const std::string& context, - const std::string& try_code, int nargout); + octave_value_list + feval (const char *name, + const octave_value_list& args = octave_value_list (), + int nargout = 0); - octave_value_list evalin (const std::string& context, - const std::string& try_code, - const std::string& catch_code, int nargout); - - octave_value_list - feval (const char *name, - const octave_value_list& args = octave_value_list (), - int nargout = 0); + octave_value_list + feval (const std::string& name, + const octave_value_list& args = octave_value_list (), + int nargout = 0); - octave_value_list - feval (const std::string& name, - const octave_value_list& args = octave_value_list (), - int nargout = 0); + octave_value_list + feval (octave_function *fcn, + const octave_value_list& args = octave_value_list (), + int nargout = 0); - octave_value_list - feval (octave_function *fcn, - const octave_value_list& args = octave_value_list (), - int nargout = 0); + octave_value_list + feval (const octave_value& f_arg, + const octave_value_list& args = octave_value_list (), + int nargout = 0); - octave_value_list - feval (const octave_value& f_arg, - const octave_value_list& args = octave_value_list (), - int nargout = 0); + octave_value_list feval (const octave_value_list& args, int nargout = 0); + + octave_value make_function_handle (const std::string& name); - octave_value_list feval (const octave_value_list& args, int nargout = 0); + void install_variable (const std::string& name, const octave_value& value, + bool global); - octave_value make_function_handle (const std::string& name); + void set_global_value (const std::string& name, const octave_value& value); - void install_variable (const std::string& name, const octave_value& value, - bool global); + octave_value global_varval (const std::string& name) const; - void set_global_value (const std::string& name, const octave_value& value); + void global_assign (const std::string& name, + const octave_value& val = octave_value ()); - octave_value global_varval (const std::string& name) const; + octave_value top_level_varval (const std::string& name) const; - void global_assign (const std::string& name, - const octave_value& val = octave_value ()); + void top_level_assign (const std::string& name, + const octave_value& val = octave_value ()); - octave_value top_level_varval (const std::string& name) const; + bool is_variable (const std::string& name) const; - void top_level_assign (const std::string& name, - const octave_value& val = octave_value ()); + bool is_local_variable (const std::string& name) const; - bool is_variable (const std::string& name) const; - - bool is_local_variable (const std::string& name) const; + octave_value varval (const std::string& name) const; - octave_value varval (const std::string& name) const; + void assign (const std::string& name, + const octave_value& val = octave_value ()); - void assign (const std::string& name, + void assignin (const std::string& context, const std::string& varname, const octave_value& val = octave_value ()); - void assignin (const std::string& context, const std::string& varname, - const octave_value& val = octave_value ()); + void source_file (const std::string& file_name, + const std::string& context = "", + bool verbose = false, bool require_file = true); + + bool at_top_level (void) const; - void source_file (const std::string& file_name, - const std::string& context = "", - bool verbose = false, bool require_file = true); + bool isglobal (const std::string& name) const; - bool at_top_level (void) const; + octave_value find (const std::string& name); - bool isglobal (const std::string& name) const; - - octave_value find (const std::string& name); + void clear_all (bool force = false); - void clear_all (bool force = false); + void clear_objects (void); - void clear_objects (void); + void clear_variable (const std::string& name); - void clear_variable (const std::string& name); + void clear_variable_pattern (const std::string& pattern); - void clear_variable_pattern (const std::string& pattern); + void clear_variable_regexp (const std::string& pattern); - void clear_variable_regexp (const std::string& pattern); + void clear_variables (void); - void clear_variables (void); + void clear_global_variable (const std::string& name); - void clear_global_variable (const std::string& name); + void clear_global_variable_pattern (const std::string& pattern); - void clear_global_variable_pattern (const std::string& pattern); + void clear_global_variable_regexp (const std::string& pattern); - void clear_global_variable_regexp (const std::string& pattern); + void clear_global_variables (void); - void clear_global_variables (void); + void clear_functions (bool force = false); - void clear_functions (bool force = false); + void clear_function (const std::string& name); - void clear_function (const std::string& name); + void clear_symbol (const std::string& name); - void clear_symbol (const std::string& name); + void clear_function_pattern (const std::string& pat); - void clear_function_pattern (const std::string& pat); + void clear_function_regexp (const std::string& pat); - void clear_function_regexp (const std::string& pat); + void clear_symbol_pattern (const std::string& pat); - void clear_symbol_pattern (const std::string& pat); + void clear_symbol_regexp (const std::string& pat); - void clear_symbol_regexp (const std::string& pat); + std::list<std::string> variable_names (void); - std::list<std::string> variable_names (void); + std::list<std::string> top_level_variable_names (void); - std::list<std::string> top_level_variable_names (void); + std::list<std::string> global_variable_names (void); - std::list<std::string> global_variable_names (void); + std::list<std::string> user_function_names (void); - std::list<std::string> user_function_names (void); + std::list<std::string> autoloaded_functions (void) const; - std::list<std::string> autoloaded_functions (void) const; - - void interrupt (void); + void interrupt (void); - // Pause interpreter execution at the next available statement and - // enter the debugger. - void pause (void); + // Pause interpreter execution at the next available statement and + // enter the debugger. + void pause (void); - // Exit debugger or stop execution and return to the top-level REPL - // or server loop. - void stop (void); + // Exit debugger or stop execution and return to the top-level REPL + // or server loop. + void stop (void); - // Add EXPR to the set of expressions that may be evaluated when the - // debugger stops at a breakpoint. - void add_debug_watch_expression (const std::string& expr); + // Add EXPR to the set of expressions that may be evaluated when the + // debugger stops at a breakpoint. + void add_debug_watch_expression (const std::string& expr); - // Remove EXPR from the set of expressions that may be evaluated - // when the debugger stops at a breakpoint. - void remove_debug_watch_expression (const std::string& expr); + // Remove EXPR from the set of expressions that may be evaluated + // when the debugger stops at a breakpoint. + void remove_debug_watch_expression (const std::string& expr); - // Clear the set of expressions that may be evaluated when the - // debugger stops at a breakpoint. - void clear_debug_watch_expressions (void); + // Clear the set of expressions that may be evaluated when the + // debugger stops at a breakpoint. + void clear_debug_watch_expressions (void); - // Return the set of expressions that may be evaluated when the - // debugger stops at a breakpoint. - std::set<std::string> debug_watch_expressions (void) const; + // Return the set of expressions that may be evaluated when the + // debugger stops at a breakpoint. + std::set<std::string> debug_watch_expressions (void) const; - // Resume interpreter execution if paused. - void resume (void); + // Resume interpreter execution if paused. + void resume (void); + + // Provided for convenience. Will be removed once we eliminate the + // old terminal widget. + bool experimental_terminal_widget (void) const; - // Provided for convenience. Will be removed once we eliminate the - // old terminal widget. - bool experimental_terminal_widget (void) const; + void handle_exception (const execution_exception& ee); + + void recover_from_exception (void); - void handle_exception (const execution_exception& ee); + void mark_for_deletion (const std::string& file); - void recover_from_exception (void); - - void mark_for_deletion (const std::string& file); + void cleanup_tmp_files (void); - void cleanup_tmp_files (void); + void quit (int exit_status, bool force = false, bool confirm = true); - void quit (int exit_status, bool force = false, bool confirm = true); - - void cancel_quit (bool flag) { m_cancel_quit = flag; } + void cancel_quit (bool flag) { m_cancel_quit = flag; } - bool executing_finish_script (void) const - { - return m_executing_finish_script; - } + bool executing_finish_script (void) const + { + return m_executing_finish_script; + } - void add_atexit_fcn (const std::string& fname); + void add_atexit_fcn (const std::string& fname); - bool remove_atexit_fcn (const std::string& fname); + bool remove_atexit_fcn (const std::string& fname); + + static interpreter * the_interpreter (void) { return m_instance; } - static interpreter * the_interpreter (void) { return m_instance; } +private: - private: + void display_startup_message (void) const; - void display_startup_message (void) const; + int execute_startup_files (void); - int execute_startup_files (void); + int execute_eval_option_code (void); - int execute_eval_option_code (void); + int execute_command_line_file (void); - int execute_command_line_file (void); + int main_loop (void); - int main_loop (void); + int server_loop (void); - int server_loop (void); + void shutdown (void); - void shutdown (void); + void execute_atexit_fcns (void); - void execute_atexit_fcns (void); - - void maximum_braindamage (void); + void maximum_braindamage (void); - void execute_pkg_add (const std::string& dir); + void execute_pkg_add (const std::string& dir); - //-------- + //-------- - // The interpreter instance; Currently it is only possible to - // have one, so OCTAVE_THREAD_LOCAL will normally be defined to be - // empty. Eventually we would like to allow multiple interpreters - // to be active at once, but they will still be limited to one per - // thread. When that is possible, OCTAVE_THREAD_LOCAL can be - // replaced by the C++ thread_local keyword. For now, use a macro - // to allow experimenting with thread_local storage. + // The interpreter instance; Currently it is only possible to + // have one, so OCTAVE_THREAD_LOCAL will normally be defined to be + // empty. Eventually we would like to allow multiple interpreters + // to be active at once, but they will still be limited to one per + // thread. When that is possible, OCTAVE_THREAD_LOCAL can be + // replaced by the C++ thread_local keyword. For now, use a macro + // to allow experimenting with thread_local storage. - OCTAVE_THREAD_LOCAL static interpreter *m_instance; + OCTAVE_THREAD_LOCAL static interpreter *m_instance; - application *m_app_context; + application *m_app_context; - temporary_file_list m_tmp_files; + temporary_file_list m_tmp_files; - std::list<std::string> m_atexit_fcns; + std::list<std::string> m_atexit_fcns; - display_info m_display_info; + display_info m_display_info; - environment m_environment; + environment m_environment; - settings m_settings; + settings m_settings; - error_system m_error_system; + error_system m_error_system; - tree_evaluator m_evaluator; + tree_evaluator m_evaluator; - help_system m_help_system; + help_system m_help_system; - input_system m_input_system; + input_system m_input_system; - output_system m_output_system; + output_system m_output_system; - history_system m_history_system; + history_system m_history_system; - dynamic_loader m_dynamic_loader; + dynamic_loader m_dynamic_loader; - load_path m_load_path; + load_path m_load_path; - load_save_system m_load_save_system; + load_save_system m_load_save_system; - type_info m_type_info; + type_info m_type_info; - symbol_table m_symbol_table; + symbol_table m_symbol_table; - stream_list m_stream_list; + stream_list m_stream_list; - child_list m_child_list; + child_list m_child_list; - url_handle_manager m_url_handle_manager; + url_handle_manager m_url_handle_manager; - cdef_manager m_cdef_manager; + cdef_manager m_cdef_manager; - gtk_manager m_gtk_manager; + gtk_manager m_gtk_manager; - event_manager m_event_manager; + event_manager m_event_manager; - gh_manager *m_gh_manager; + gh_manager *m_gh_manager; - // TRUE means this is an interactive interpreter (forced or not). - bool m_interactive; + // TRUE means this is an interactive interpreter (forced or not). + bool m_interactive; - bool m_read_site_files; + bool m_read_site_files; - bool m_read_init_files; + bool m_read_init_files; - bool m_verbose; + bool m_verbose; - bool m_traditional; + bool m_traditional; - bool m_inhibit_startup_message; + bool m_inhibit_startup_message; - bool m_load_path_initialized; + bool m_load_path_initialized; - bool m_history_initialized; + bool m_history_initialized; - bool m_interrupt_all_in_process_group; + bool m_interrupt_all_in_process_group; - bool m_cancel_quit; + bool m_cancel_quit; - bool m_executing_finish_script; + bool m_executing_finish_script; - bool m_executing_atexit; + bool m_executing_atexit; - bool m_initialized; - }; + bool m_initialized; +}; OCTAVE_END_NAMESPACE(octave)