26 #if ! defined (octave_symtab_h)
27 #define octave_symtab_h 1
29 #include "octave-config.h"
41 class tree_argument_list;
73 bool is_built_in_function_name (
const std::string&
name);
78 octave_value find_private_function (
const std::string& dir_name,
79 const std::string&
name);
84 const std::string& dispatch_type);
91 builtin_find (
const std::string&
name,
95 fcn_table_find (
const std::string&
name,
108 find_function (
const std::string&
name,
115 find_function (
const std::string&
name,
123 void install_cmdline_function (
const std::string&
name,
129 void install_local_function (
const std::string&
name,
131 const std::string& file_name);
133 void install_user_function (
const std::string&
name,
138 void install_built_in_function (
const std::string&
name,
145 void clear_functions (
bool force =
false);
147 void clear_function (
const std::string&
name);
149 void clear_function_pattern (
const std::string& pat);
151 void clear_function_regexp (
const std::string& pat);
153 void clear_user_function (
const std::string&
name);
156 void clear_dld_function (
const std::string&
name);
158 void clear_mex_functions (
void);
160 bool set_class_relationship (
const std::string& sup_class,
161 const std::string& inf_class);
163 bool is_superiorto (
const std::string& a,
const std::string& b);
165 void alias_built_in_function (
const std::string& alias,
166 const std::string&
name);
168 void install_built_in_dispatch (
const std::string&
name,
169 const std::string& klass);
171 std::list<std::string> user_function_names (
void);
173 std::list<std::string> built_in_function_names (
void);
175 std::list<std::string> cmdline_function_names (
void);
179 void add_to_parent_map (
const std::string& classname,
180 const std::list<std::string>& parent_list);
182 std::list<std::string> parent_classes (
const std::string& dispatch_type);
192 OCTAVE_DEPRECATED (6,
"use 'interpreter::at_top_level' instead")
193 bool at_top_level (
void);
195 OCTAVE_DEPRECATED (6, "use '
interpreter::varval' instead")
198 OCTAVE_DEPRECATED (6, "use '
interpreter::global_varval' instead")
201 OCTAVE_DEPRECATED (6, "use '
interpreter::top_level_varval' instead")
204 OCTAVE_DEPRECATED (6, "use '
interpreter::global_variable_names' instead")
205 std::list<std::
string> global_variable_names (
void);
207 OCTAVE_DEPRECATED (6, "use '
interpreter::top_level_variable_names' instead")
208 std::list<std::
string> top_level_variable_names (
void);
210 OCTAVE_DEPRECATED (6, "use '
interpreter::variable_names' instead")
211 std::list<std::
string> variable_names (
void);
213 OCTAVE_DEPRECATED (6, "use '
interpreter::assign' instead")
214 void assign (const std::
string&
name,
218 OCTAVE_DEPRECATED (6, "use '
interpreter::assign' instead")
222 OCTAVE_DEPRECATED (6, "use '
interpreter::clear_all' instead")
223 void clear_all (
bool force = false);
225 OCTAVE_DEPRECATED (6, "use '
interpreter::clear_global' instead")
226 void clear_global (const std::
string&
name);
228 OCTAVE_DEPRECATED (6, "use '
interpreter::clear_global_pattern' instead")
229 void clear_global_pattern (const std::
string& pattern);
231 OCTAVE_DEPRECATED (6, "use '
interpreter::clear_symbol' instead")
232 void clear_symbol (const std::
string&
name);
234 OCTAVE_DEPRECATED (6, "use '
interpreter::clear_symbol_pattern' instead")
235 void clear_symbol_pattern (const std::
string& pattern);
237 OCTAVE_DEPRECATED (6, "use '
interpreter::global_assign' instead")
238 void global_assign (const std::
string&
name,
241 OCTAVE_DEPRECATED (6, "use '
interpreter::top_level_assign' instead")
242 void top_level_assign (const std::
string&
name,
249 typedef std::map<std::
string,
octave_value>::const_iterator
254 typedef std::map<std::
string,
fcn_info>::const_iterator
256 typedef std::map<std::
string,
fcn_info>::iterator
267 std::map<std::
string, std::set<std::
string>> m_class_precedence_table;
269 typedef std::map<std::
string, std::set<std::
string>>::const_iterator
271 typedef std::map<std::
string, std::set<std::
string>>::iterator
275 std::map<std::
string, std::list<std::
string>> m_parent_map;
277 typedef std::map<std::
string, std::list<std::
string>>::const_iterator
279 typedef std::map<std::
string, std::list<std::
string>>::iterator
285 void install_builtins (
void);
std::map< std::string, std::list< std::string > >::const_iterator const_parent_map_iterator
~symbol_table(void)=default
symbol_table(const symbol_table &)=delete
std::map< std::string, fcn_info >::const_iterator fcn_table_const_iterator
std::map< std::string, std::set< std::string > >::const_iterator class_precedence_table_const_iterator
std::map< std::string, std::list< std::string > >::iterator parent_map_iterator
octave::fcn_info fcn_info
octave::symbol_scope scope
std::map< std::string, octave_value >::iterator global_symbols_iterator
std::map< std::string, octave_value >::const_iterator global_symbols_const_iterator
std::map< std::string, std::set< std::string > >::iterator class_precedence_table_iterator
std::map< std::string, fcn_info >::iterator fcn_table_iterator
octave_value_list ovl(const OV_Args &... args)
Construct an octave_value_list with less typing.