annotate libinterp/corefcn/interpreter-private.h @ 30564:796f54d4ddbf stable

update Octave Project Developers copyright for the new year In files that have the "Octave Project Developers" copyright notice, update for 2021. In all .txi and .texi files except gpl.txi and gpl.texi in the doc/liboctave and doc/interpreter directories, change the copyright to "Octave Project Developers", the same as used for other source files. Update copyright notices for 2022 (not done since 2019). For gpl.txi and gpl.texi, change the copyright notice to be "Free Software Foundation, Inc." and leave the date at 2007 only because this file only contains the text of the GPL, not anything created by the Octave Project Developers. Add Paul Thomas to contributors.in.
author John W. Eaton <jwe@octave.org>
date Tue, 28 Dec 2021 18:22:40 -0500
parents b5fae48ad807
children 670a0d878af1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
1 ////////////////////////////////////////////////////////////////////////
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
2 //
30564
796f54d4ddbf update Octave Project Developers copyright for the new year
John W. Eaton <jwe@octave.org>
parents: 29993
diff changeset
3 // Copyright (C) 2017-2022 The Octave Project Developers
27923
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
4 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
5 // See the file COPYRIGHT.md in the top-level directory of this
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
6 // distribution or <https://octave.org/copyright/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
7 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
8 // This file is part of Octave.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
9 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
10 // Octave is free software: you can redistribute it and/or modify it
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
11 // under the terms of the GNU General Public License as published by
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
12 // the Free Software Foundation, either version 3 of the License, or
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
13 // (at your option) any later version.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
14 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
15 // Octave is distributed in the hope that it will be useful, but
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
16 // WITHOUT ANY WARRANTY; without even the implied warranty of
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
18 // GNU General Public License for more details.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
19 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
20 // You should have received a copy of the GNU General Public License
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
21 // along with Octave; see the file COPYING. If not, see
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
22 // <https://www.gnu.org/licenses/>.
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
23 //
bd51beb6205e update formatting of copyright notices
John W. Eaton <jwe@octave.org>
parents: 27919
diff changeset
24 ////////////////////////////////////////////////////////////////////////
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 #if ! defined (octave_interpreter_private_h)
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 #define octave_interpreter_private_h 1
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 #include "octave-config.h"
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30
26863
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
31 #include <list>
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 #include <string>
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
34 #include "symtab.h"
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
35
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 namespace octave
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37 {
24738
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
38 class bp_table;
26774
568c2ab2782d move classdef classes inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 26376
diff changeset
39 class cdef_manager;
24734
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
40 class child_list;
27266
596312d4f25d don't use singleton pattern for display_info class
John W. Eaton <jwe@octave.org>
parents: 27263
diff changeset
41 class display_info;
23627
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
42 class dynamic_loader;
27160
6b0c61a5a0f0 move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents: 27102
diff changeset
43 class error_system;
27263
99aa1bcb8848 rename octave_link and octave_link_events classes, move inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 27261
diff changeset
44 class event_manager;
29993
b5fae48ad807 move classes for graphics objects and properties inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 29359
diff changeset
45 class gh_manager;
23774
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
46 class gtk_manager;
23721
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
47 class help_system;
25407
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
48 class input_system;
24540
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
49 class interpreter;
23511
232c8d69d934 manage interpreter instance in interpreter object
John W. Eaton <jwe@octave.org>
parents: 23438
diff changeset
50 class load_path;
25993
f75bb9d659e0 eliminate global and file-scope static variables from load-save.cc (bug #54571)
John W. Eaton <jwe@octave.org>
parents: 25460
diff changeset
51 class load_save_system;
25435
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
52 class output_system;
23532
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
53 class tree_evaluator;
24540
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
54 class type_info;
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
55
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
56 extern OCTINTERP_API interpreter& __get_interpreter__ (const std::string& who);
23517
1bc8f1f50b54 new function for accessing interpreter
John W. Eaton <jwe@octave.org>
parents: 23511
diff changeset
57
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
58 extern OCTINTERP_API dynamic_loader& __get_dynamic_loader__ (const std::string& who);
23627
0a6e87804cab don't use singleton pattern for dynamic_loader class
John W. Eaton <jwe@octave.org>
parents: 23609
diff changeset
59
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
60 extern OCTINTERP_API error_system& __get_error_system__ (const std::string& who);
27160
6b0c61a5a0f0 move global error configuration and status variables inside a class
John W. Eaton <jwe@octave.org>
parents: 27102
diff changeset
61
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
62 extern OCTINTERP_API gh_manager& __get_gh_manager__ (const std::string& who);
27321
eddce82a57cc don't use singleton pattern for gh_manager object
John W. Eaton <jwe@octave.org>
parents: 27302
diff changeset
63
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
64 extern OCTINTERP_API help_system& __get_help_system__ (const std::string& who);
23721
b2d55b52ee51 new class to manage help system and associated variables
John W. Eaton <jwe@octave.org>
parents: 23651
diff changeset
65
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
66 extern OCTINTERP_API input_system& __get_input_system__ (const std::string& who);
25407
ab10403a0b50 new input_system class to manage user input for the interpreter
John W. Eaton <jwe@octave.org>
parents: 25054
diff changeset
67
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
68 extern OCTINTERP_API load_path& __get_load_path__ (const std::string& who);
23532
084245f9bd03 pass reference to evaluator to octave_function call methods
John W. Eaton <jwe@octave.org>
parents: 23517
diff changeset
69
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
70 extern OCTINTERP_API load_save_system& __get_load_save_system__ (const std::string& who);
25993
f75bb9d659e0 eliminate global and file-scope static variables from load-save.cc (bug #54571)
John W. Eaton <jwe@octave.org>
parents: 25460
diff changeset
71
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
72 extern OCTINTERP_API event_manager& __get_event_manager__ (const std::string& who);
27261
dccdc3b001a2 eliminate static functions from octave_link class
John W. Eaton <jwe@octave.org>
parents: 27213
diff changeset
73
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
74 extern OCTINTERP_API output_system& __get_output_system__ (const std::string& who);
25435
a52e6fb674b1 eliminate some singletons and static & global variables
John W. Eaton <jwe@octave.org>
parents: 25407
diff changeset
75
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
76 extern OCTINTERP_API type_info& __get_type_info__ (const std::string& who);
24540
46440078d73b don't use singleton for octave_value_typeinfo
John W. Eaton <jwe@octave.org>
parents: 24534
diff changeset
77
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
78 extern OCTINTERP_API symbol_table& __get_symbol_table__ (const std::string& who);
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
79
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
80 extern OCTINTERP_API symbol_scope __get_current_scope__ (const std::string& who);
23599
5cb3a2bb5e1e don't use singleton for symbol_table
John W. Eaton <jwe@octave.org>
parents: 23553
diff changeset
81
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
82 extern OCTINTERP_API symbol_scope __require_current_scope__ (const std::string& who);
23609
99989ab8f142 new convenience functions for accessing current scope
John W. Eaton <jwe@octave.org>
parents: 23602
diff changeset
83
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
84 extern OCTINTERP_API tree_evaluator& __get_evaluator__ (const std::string& who);
23553
14723784b9f2 don't use singleton for call_stack
John W. Eaton <jwe@octave.org>
parents: 23532
diff changeset
85
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
86 extern OCTINTERP_API bp_table& __get_bp_table__ (const std::string& who);
24738
3695c2cd69b8 don't use singleton pattern for bp_table
John W. Eaton <jwe@octave.org>
parents: 24734
diff changeset
87
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
88 extern OCTINTERP_API child_list& __get_child_list__ (const std::string& who);
24734
5d8c4cbc56d7 don't use singleton pattern for child_list
John W. Eaton <jwe@octave.org>
parents: 24540
diff changeset
89
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
90 extern OCTINTERP_API cdef_manager& __get_cdef_manager__ (const std::string& who);
23774
41795b504a8b don't use singleton for gtk_manager
John W. Eaton <jwe@octave.org>
parents: 23721
diff changeset
91
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
92 extern OCTINTERP_API display_info& __get_display_info__ (const std::string& who);
27266
596312d4f25d don't use singleton pattern for display_info class
John W. Eaton <jwe@octave.org>
parents: 27263
diff changeset
93
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
94 extern OCTINTERP_API gtk_manager& __get_gtk_manager__ (const std::string& who);
26863
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
95
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
96 // Functions that could be methods in the interpreter class but maybe
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
97 // shouldn't be exposed as part of the public interface.
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
98
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
99 // Convert octave_value object ARG to be a function handle object. It
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
100 // may be a function handle, inline function, the name of a function,
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
101 // or the text of an inline function that has the given argument names
26864
041caa61ed34 use get_function_handle instead of extract_function
John W. Eaton <jwe@octave.org>
parents: 26863
diff changeset
102 // PARAMETER_NAMES. Use of the latter form is discouraged.
26863
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
103
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
104 OCTINTERP_API
26863
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
105 octave_value
27102
84ff9953faa1 where possible, eliminate octave:: namespace qualifier inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 26864
diff changeset
106 get_function_handle (interpreter& interp, const octave_value& arg,
26863
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
107 const std::string& parameter_name);
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
108
29233
665c9ed14c97 Set API tags in files in libinterp/corefcn (patch #8919).
Markus Mützel <markus.muetzel@gmx.de>
parents: 27923
diff changeset
109 OCTINTERP_API
26863
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
110 octave_value
27102
84ff9953faa1 where possible, eliminate octave:: namespace qualifier inside octave namespace
John W. Eaton <jwe@octave.org>
parents: 26864
diff changeset
111 get_function_handle (interpreter& interp, const octave_value& arg,
26863
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
112 const std::list<std::string>& parameter_names
c589db954a4e new functions for getting a functicon from an octave_value object
John W. Eaton <jwe@octave.org>
parents: 26774
diff changeset
113 = std::list<std::string> ());
23438
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
114 }
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
115
d24d01273bd0 eliminate load-path singleton
John W. Eaton <jwe@octave.org>
parents:
diff changeset
116 #endif