C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
exprtk::parser< T >::symtab_store Struct Reference

Classes

struct  string_context
 
struct  variable_context
 
struct  vector_context
 

Public Types

typedef symbol_table_t::local_data_t local_data_t
 
typedef symbol_table_t::variable_ptr variable_ptr
 
typedef symbol_table_t::function_ptr function_ptr
 
typedef symbol_table_t::stringvar_ptr stringvar_ptr
 
typedef symbol_table_t::vector_holder_ptr vector_holder_ptr
 
typedef symbol_table_t::vararg_function_ptr vararg_function_ptr
 
typedef symbol_table_t::generic_function_ptr generic_function_ptr
 

Public Member Functions

bool empty () const
 
void clear ()
 
bool valid () const
 
bool valid_symbol (const std::string &symbol) const
 
bool valid_function_name (const std::string &symbol) const
 
variable_context get_variable_context (const std::string &variable_name) const
 
variable_ptr get_variable (const std::string &variable_name) const
 
variable_ptr get_variable (const T &var_ref) const
 
string_context get_string_context (const std::string &string_name) const
 
stringvar_ptr get_stringvar (const std::string &string_name) const
 
function_ptr get_function (const std::string &function_name) const
 
vararg_function_ptr get_vararg_function (const std::string &vararg_function_name) const
 
generic_function_ptr get_generic_function (const std::string &function_name) const
 
generic_function_ptr get_string_function (const std::string &function_name) const
 
generic_function_ptr get_overload_function (const std::string &function_name) const
 
vector_context get_vector_context (const std::string &vector_name) const
 
vector_holder_ptr get_vector (const std::string &vector_name) const
 
bool is_constant_node (const std::string &symbol_name) const
 
bool is_constant_string (const std::string &symbol_name) const
 
bool symbol_exists (const std::string &symbol) const
 
bool is_variable (const std::string &variable_name) const
 
bool is_stringvar (const std::string &stringvar_name) const
 
bool is_conststr_stringvar (const std::string &symbol_name) const
 
bool is_function (const std::string &function_name) const
 
bool is_vararg_function (const std::string &vararg_function_name) const
 
bool is_vector (const std::string &vector_name) const
 
std::string get_variable_name (const expression_node_ptr &ptr) const
 
std::string get_vector_name (const vector_holder_ptr &ptr) const
 
std::string get_stringvar_name (const expression_node_ptr &ptr) const
 
std::string get_conststr_stringvar_name (const expression_node_ptr &ptr) const
 
local_data_tlocal_data (const std::size_t &index=0)
 
const local_data_tlocal_data (const std::size_t &index=0) const
 
symbol_table_tget_symbol_table (const std::size_t &index=0)
 

Public Attributes

symbol_table_list_t symtab_list_
 

Detailed Description

template<typename T>
struct exprtk::parser< T >::symtab_store

Definition at line 23107 of file exprtk.hpp.

Member Typedef Documentation

◆ function_ptr

template<typename T >
typedef symbol_table_t::function_ptr exprtk::parser< T >::symtab_store::function_ptr

Definition at line 23113 of file exprtk.hpp.

◆ generic_function_ptr

template<typename T >
typedef symbol_table_t::generic_function_ptr exprtk::parser< T >::symtab_store::generic_function_ptr

Definition at line 23119 of file exprtk.hpp.

◆ local_data_t

template<typename T >
typedef symbol_table_t::local_data_t exprtk::parser< T >::symtab_store::local_data_t

Definition at line 23111 of file exprtk.hpp.

◆ stringvar_ptr

template<typename T >
typedef symbol_table_t::stringvar_ptr exprtk::parser< T >::symtab_store::stringvar_ptr

Definition at line 23115 of file exprtk.hpp.

◆ vararg_function_ptr

template<typename T >
typedef symbol_table_t::vararg_function_ptr exprtk::parser< T >::symtab_store::vararg_function_ptr

Definition at line 23118 of file exprtk.hpp.

◆ variable_ptr

template<typename T >
typedef symbol_table_t::variable_ptr exprtk::parser< T >::symtab_store::variable_ptr

Definition at line 23112 of file exprtk.hpp.

◆ vector_holder_ptr

template<typename T >
typedef symbol_table_t::vector_holder_ptr exprtk::parser< T >::symtab_store::vector_holder_ptr

Definition at line 23117 of file exprtk.hpp.

Member Function Documentation

◆ clear()

template<typename T >
void exprtk::parser< T >::symtab_store::clear ( )
inline

Definition at line 23161 of file exprtk.hpp.

23162 {
23163 symtab_list_.clear();
23164 }
symbol_table_list_t symtab_list_
Definition exprtk.hpp:23109

References exprtk::parser< T >::symtab_store::symtab_list_.

◆ empty()

template<typename T >
bool exprtk::parser< T >::symtab_store::empty ( ) const
inline

Definition at line 23156 of file exprtk.hpp.

23157 {
23158 return symtab_list_.empty();
23159 }

References exprtk::parser< T >::symtab_store::symtab_list_.

Referenced by exprtk::parser< T >::symtab_store::valid().

Here is the caller graph for this function:

◆ get_conststr_stringvar_name()

template<typename T >
std::string exprtk::parser< T >::symtab_store::get_conststr_stringvar_name ( const expression_node_ptr ptr) const
inline

Definition at line 23644 of file exprtk.hpp.

23645 {
23646 return local_data().stringvar_store.entity_name(ptr);
23647 }
local_data_t & local_data(const std::size_t &index=0)
Definition exprtk.hpp:23650
type_store< stringvar_t, std::string > stringvar_store
Definition exprtk.hpp:20628

References exprtk::parser< T >::symtab_store::local_data(), and exprtk::symbol_table< T >::control_block::st_data::stringvar_store.

Here is the call graph for this function:

◆ get_function()

template<typename T >
function_ptr exprtk::parser< T >::symtab_store::get_function ( const std::string &  function_name) const
inline

Definition at line 23310 of file exprtk.hpp.

23311 {
23312 if (!valid_function_name(function_name))
23313 return reinterpret_cast<function_ptr>(0);
23314
23315 function_ptr result = reinterpret_cast<function_ptr>(0);
23316
23317 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23318 {
23319 if (!symtab_list_[i].valid())
23320 continue;
23321 else
23322 result = local_data(i)
23323 .function_store.get(function_name);
23324
23325 if (result) break;
23326 }
23327
23328 return result;
23329 }
symbol_table_t::function_ptr function_ptr
Definition exprtk.hpp:23113
bool valid_function_name(const std::string &symbol) const
Definition exprtk.hpp:23188
type_store< function_t, function_t > function_store
Definition exprtk.hpp:20621

References exprtk::symbol_table< T >::control_block::st_data::function_store, exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_function_name().

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_generic_function()

template<typename T >
generic_function_ptr exprtk::parser< T >::symtab_store::get_generic_function ( const std::string &  function_name) const
inline

Definition at line 23352 of file exprtk.hpp.

23353 {
23354 if (!valid_function_name(function_name))
23355 return reinterpret_cast<generic_function_ptr>(0);
23356
23357 generic_function_ptr result = reinterpret_cast<generic_function_ptr>(0);
23358
23359 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23360 {
23361 if (!symtab_list_[i].valid())
23362 continue;
23363 else
23364 result = local_data(i)
23365 .generic_function_store.get(function_name);
23366
23367 if (result) break;
23368 }
23369
23370 return result;
23371 }
symbol_table_t::generic_function_ptr generic_function_ptr
Definition exprtk.hpp:23119
type_store< generic_function_t, generic_function_t > generic_function_store
Definition exprtk.hpp:20623

References exprtk::symbol_table< T >::control_block::st_data::generic_function_store, exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_function_name().

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_overload_function()

template<typename T >
generic_function_ptr exprtk::parser< T >::symtab_store::get_overload_function ( const std::string &  function_name) const
inline

Definition at line 23394 of file exprtk.hpp.

23395 {
23396 if (!valid_function_name(function_name))
23397 return reinterpret_cast<generic_function_ptr>(0);
23398
23399 generic_function_ptr result = reinterpret_cast<generic_function_ptr>(0);
23400
23401 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23402 {
23403 if (!symtab_list_[i].valid())
23404 continue;
23405 else
23406 result =
23407 local_data(i).overload_function_store.get(function_name);
23408
23409 if (result) break;
23410 }
23411
23412 return result;
23413 }
type_store< generic_function_t, generic_function_t > overload_function_store
Definition exprtk.hpp:20625

References exprtk::parser< T >::symtab_store::local_data(), exprtk::symbol_table< T >::control_block::st_data::overload_function_store, exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_function_name().

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_string_context()

template<typename T >
string_context exprtk::parser< T >::symtab_store::get_string_context ( const std::string &  string_name) const
inline

Definition at line 23262 of file exprtk.hpp.

23263 {
23264 string_context result;
23265
23266 if (!valid_symbol(string_name))
23267 return result;
23268
23269 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23270 {
23271 if (!symtab_list_[i].valid())
23272 {
23273 continue;
23274 }
23275
23276 result.str_var = local_data(i).stringvar_store.get(string_name);
23277
23278 if (result.str_var)
23279 {
23280 result.symbol_table = &symtab_list_[i];
23281 break;
23282 }
23283 }
23284
23285 return result;
23286 }
bool valid_symbol(const std::string &symbol) const
Definition exprtk.hpp:23180

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::string_context::str_var, exprtk::symbol_table< T >::control_block::st_data::stringvar_store, exprtk::parser< T >::symtab_store::string_context::symbol_table, exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_symbol().

Referenced by exprtk::parser< T >::parse_string().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_string_function()

template<typename T >
generic_function_ptr exprtk::parser< T >::symtab_store::get_string_function ( const std::string &  function_name) const
inline

Definition at line 23373 of file exprtk.hpp.

23374 {
23375 if (!valid_function_name(function_name))
23376 return reinterpret_cast<generic_function_ptr>(0);
23377
23378 generic_function_ptr result = reinterpret_cast<generic_function_ptr>(0);
23379
23380 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23381 {
23382 if (!symtab_list_[i].valid())
23383 continue;
23384 else
23385 result =
23386 local_data(i).string_function_store.get(function_name);
23387
23388 if (result) break;
23389 }
23390
23391 return result;
23392 }
type_store< generic_function_t, generic_function_t > string_function_store
Definition exprtk.hpp:20624

References exprtk::parser< T >::symtab_store::local_data(), exprtk::symbol_table< T >::control_block::st_data::string_function_store, exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_function_name().

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_stringvar()

template<typename T >
stringvar_ptr exprtk::parser< T >::symtab_store::get_stringvar ( const std::string &  string_name) const
inline

Definition at line 23288 of file exprtk.hpp.

23289 {
23290 if (!valid_symbol(string_name))
23291 return reinterpret_cast<stringvar_ptr>(0);
23292
23293 stringvar_ptr result = reinterpret_cast<stringvar_ptr>(0);
23294
23295 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23296 {
23297 if (!symtab_list_[i].valid())
23298 continue;
23299 else
23300 result = local_data(i)
23301 .stringvar_store.get(string_name);
23302
23303 if (result) break;
23304 }
23305
23306 return result;
23307 }
symbol_table_t::stringvar_ptr stringvar_ptr
Definition exprtk.hpp:23115

References exprtk::parser< T >::symtab_store::local_data(), exprtk::symbol_table< T >::control_block::st_data::stringvar_store, exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_symbol().

Here is the call graph for this function:

◆ get_stringvar_name()

template<typename T >
std::string exprtk::parser< T >::symtab_store::get_stringvar_name ( const expression_node_ptr ptr) const
inline

Definition at line 23639 of file exprtk.hpp.

23640 {
23641 return local_data().stringvar_store.entity_name(ptr);
23642 }

References exprtk::parser< T >::symtab_store::local_data(), and exprtk::symbol_table< T >::control_block::st_data::stringvar_store.

Referenced by exprtk::parser< T >::expression_generator< Type >::lodge_assignment().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_symbol_table()

template<typename T >
symbol_table_t & exprtk::parser< T >::symtab_store::get_symbol_table ( const std::size_t &  index = 0)
inline

Definition at line 23660 of file exprtk.hpp.

23661 {
23662 return symtab_list_[index];
23663 }

References exprtk::parser< T >::symtab_store::symtab_list_.

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the caller graph for this function:

◆ get_vararg_function()

template<typename T >
vararg_function_ptr exprtk::parser< T >::symtab_store::get_vararg_function ( const std::string &  vararg_function_name) const
inline

Definition at line 23331 of file exprtk.hpp.

23332 {
23333 if (!valid_function_name(vararg_function_name))
23334 return reinterpret_cast<vararg_function_ptr>(0);
23335
23336 vararg_function_ptr result = reinterpret_cast<vararg_function_ptr>(0);
23337
23338 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23339 {
23340 if (!symtab_list_[i].valid())
23341 continue;
23342 else
23343 result = local_data(i)
23344 .vararg_function_store.get(vararg_function_name);
23345
23346 if (result) break;
23347 }
23348
23349 return result;
23350 }
symbol_table_t::vararg_function_ptr vararg_function_ptr
Definition exprtk.hpp:23118
type_store< vararg_function_t, vararg_function_t > vararg_function_store
Definition exprtk.hpp:20622

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), exprtk::parser< T >::symtab_store::valid_function_name(), and exprtk::symbol_table< T >::control_block::st_data::vararg_function_store.

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_variable() [1/2]

template<typename T >
variable_ptr exprtk::parser< T >::symtab_store::get_variable ( const std::string &  variable_name) const
inline

Definition at line 23222 of file exprtk.hpp.

23223 {
23224 if (!valid_symbol(variable_name))
23225 return reinterpret_cast<variable_ptr>(0);
23226
23227 variable_ptr result = reinterpret_cast<variable_ptr>(0);
23228
23229 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23230 {
23231 if (!symtab_list_[i].valid())
23232 continue;
23233 else
23234 result = local_data(i)
23235 .variable_store.get(variable_name);
23236
23237 if (result) break;
23238 }
23239
23240 return result;
23241 }
symbol_table_t::variable_ptr variable_ptr
Definition exprtk.hpp:23112
type_store< variable_t, T > variable_store
Definition exprtk.hpp:20620

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), exprtk::parser< T >::symtab_store::valid_symbol(), and exprtk::symbol_table< T >::control_block::st_data::variable_store.

Referenced by exprtk::parser< T >::parse_swap_statement(), exprtk::parser< T >::parse_symtab_symbol(), and exprtk::parser< T >::simplify_unary_negation_branch().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_variable() [2/2]

template<typename T >
variable_ptr exprtk::parser< T >::symtab_store::get_variable ( const T &  var_ref) const
inline

Definition at line 23243 of file exprtk.hpp.

23244 {
23245 variable_ptr result = reinterpret_cast<variable_ptr>(0);
23246
23247 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23248 {
23249 if (!symtab_list_[i].valid())
23250 continue;
23251 else
23252 result = local_data(i).variable_store
23253 .get_from_varptr(reinterpret_cast<const void*>(&var_ref));
23254
23255 if (result) break;
23256 }
23257
23258 return result;
23259 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::symbol_table< T >::control_block::st_data::variable_store.

Here is the call graph for this function:

◆ get_variable_context()

template<typename T >
variable_context exprtk::parser< T >::symtab_store::get_variable_context ( const std::string &  variable_name) const
inline

Definition at line 23196 of file exprtk.hpp.

23197 {
23198 variable_context result;
23199
23200 if (valid_symbol(variable_name))
23201 {
23202 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23203 {
23204 if (!symtab_list_[i].valid())
23205 {
23206 continue;
23207 }
23208
23209 result.variable = local_data(i)
23210 .variable_store.get(variable_name);
23211 if (result.variable)
23212 {
23213 result.symbol_table = &symtab_list_[i];
23214 break;
23215 }
23216 }
23217 }
23218
23219 return result;
23220 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::variable_context::symbol_table, exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), exprtk::parser< T >::symtab_store::valid_symbol(), exprtk::parser< T >::symtab_store::variable_context::variable, and exprtk::symbol_table< T >::control_block::st_data::variable_store.

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_variable_name()

template<typename T >
std::string exprtk::parser< T >::symtab_store::get_variable_name ( const expression_node_ptr ptr) const
inline

Definition at line 23628 of file exprtk.hpp.

23629 {
23630 return local_data().variable_store.entity_name(ptr);
23631 }

References exprtk::parser< T >::symtab_store::local_data(), and exprtk::symbol_table< T >::control_block::st_data::variable_store.

Referenced by exprtk::parser< T >::expression_generator< Type >::lodge_assignment().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_vector()

template<typename T >
vector_holder_ptr exprtk::parser< T >::symtab_store::get_vector ( const std::string &  vector_name) const
inline

Definition at line 23440 of file exprtk.hpp.

23441 {
23442 if (!valid_symbol(vector_name))
23443 return reinterpret_cast<vector_holder_ptr>(0);
23444
23445 vector_holder_ptr result = reinterpret_cast<vector_holder_ptr>(0);
23446
23447 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23448 {
23449 if (!symtab_list_[i].valid())
23450 {
23451 continue;
23452 }
23453
23454 result = local_data(i).vector_store.get(vector_name);
23455
23456 if (result)
23457 {
23458 break;
23459 }
23460 }
23461
23462 return result;
23463 }
symbol_table_t::vector_holder_ptr vector_holder_ptr
Definition exprtk.hpp:23117
type_store< vector_holder_t, vector_holder_t > vector_store
Definition exprtk.hpp:20626

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), exprtk::parser< T >::symtab_store::valid_symbol(), and exprtk::symbol_table< T >::control_block::st_data::vector_store.

Here is the call graph for this function:

◆ get_vector_context()

template<typename T >
vector_context exprtk::parser< T >::symtab_store::get_vector_context ( const std::string &  vector_name) const
inline

Definition at line 23415 of file exprtk.hpp.

23416 {
23417 vector_context result;
23418 if (!valid_symbol(vector_name))
23419 return result;
23420
23421 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23422 {
23423 if (!symtab_list_[i].valid())
23424 {
23425 continue;
23426 }
23427
23428 result.vector_holder = local_data(i).vector_store.get(vector_name);
23429
23430 if (result.vector_holder)
23431 {
23432 result.symbol_table = &symtab_list_[i];
23433 break;
23434 }
23435 }
23436
23437 return result;
23438 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::vector_context::symbol_table, exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), exprtk::parser< T >::symtab_store::valid_symbol(), exprtk::parser< T >::symtab_store::vector_context::vector_holder, and exprtk::symbol_table< T >::control_block::st_data::vector_store.

Referenced by exprtk::parser< T >::parse_vector().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ get_vector_name()

template<typename T >
std::string exprtk::parser< T >::symtab_store::get_vector_name ( const vector_holder_ptr ptr) const
inline

Definition at line 23633 of file exprtk.hpp.

23634 {
23635 return local_data().vector_store.entity_name(ptr);
23636 }

References exprtk::parser< T >::symtab_store::local_data(), and exprtk::symbol_table< T >::control_block::st_data::vector_store.

Referenced by exprtk::parser< T >::expression_generator< Type >::lodge_assignment().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_constant_node()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_constant_node ( const std::string &  symbol_name) const
inline

Definition at line 23465 of file exprtk.hpp.

23466 {
23467 if (!valid_symbol(symbol_name))
23468 return false;
23469
23470 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23471 {
23472 if (!symtab_list_[i].valid())
23473 {
23474 continue;
23475 }
23476
23477 if (local_data(i).variable_store.is_constant(symbol_name))
23478 {
23479 return true;
23480 }
23481 }
23482
23483 return false;
23484 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_symbol().

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_constant_string()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_constant_string ( const std::string &  symbol_name) const
inline

Definition at line 23487 of file exprtk.hpp.

23488 {
23489 if (!valid_symbol(symbol_name))
23490 return false;
23491
23492 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23493 {
23494 if (!symtab_list_[i].valid())
23495 continue;
23496 else if (!local_data(i).stringvar_store.symbol_exists(symbol_name))
23497 continue;
23498 else if (local_data(i).stringvar_store.is_constant(symbol_name))
23499 return true;
23500 }
23501
23502 return false;
23503 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symtab_list_, exprtk::parser< T >::symtab_store::valid(), and exprtk::parser< T >::symtab_store::valid_symbol().

Referenced by exprtk::parser< T >::parse_string().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_conststr_stringvar()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_conststr_stringvar ( const std::string &  symbol_name) const
inline

Definition at line 23557 of file exprtk.hpp.

23558 {
23559 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23560 {
23561 if (!symtab_list_[i].valid())
23562 continue;
23563 else if (
23564 symtab_list_[i].local_data().stringvar_store
23565 .symbol_exists(symbol_name)
23566 )
23567 {
23568 return (
23569 local_data(i).stringvar_store.symbol_exists(symbol_name) ||
23570 local_data(i).stringvar_store.is_constant (symbol_name)
23571 );
23572
23573 }
23574 }
23575
23576 return false;
23577 }
bool symbol_exists(const std::string &symbol) const
Definition exprtk.hpp:23506

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Referenced by exprtk::parser< T >::parse_string().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_function()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_function ( const std::string &  function_name) const
inline

Definition at line 23580 of file exprtk.hpp.

23581 {
23582 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23583 {
23584 if (!symtab_list_[i].valid())
23585 continue;
23586 else if (
23587 local_data(i).vararg_function_store
23588 .symbol_exists(function_name)
23589 )
23590 return true;
23591 }
23592
23593 return false;
23594 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Here is the call graph for this function:

◆ is_stringvar()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_stringvar ( const std::string &  stringvar_name) const
inline

Definition at line 23541 of file exprtk.hpp.

23542 {
23543 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23544 {
23545 if (!symtab_list_[i].valid())
23546 continue;
23547 else if (
23548 symtab_list_[i].local_data().stringvar_store
23549 .symbol_exists(stringvar_name)
23550 )
23551 return true;
23552 }
23553
23554 return false;
23555 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Referenced by exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_vararg_function()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_vararg_function ( const std::string &  vararg_function_name) const
inline

Definition at line 23596 of file exprtk.hpp.

23597 {
23598 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23599 {
23600 if (!symtab_list_[i].valid())
23601 continue;
23602 else if (
23603 local_data(i).vararg_function_store
23604 .symbol_exists(vararg_function_name)
23605 )
23606 return true;
23607 }
23608
23609 return false;
23610 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Here is the call graph for this function:

◆ is_variable()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_variable ( const std::string &  variable_name) const
inline

Definition at line 23524 of file exprtk.hpp.

23525 {
23526 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23527 {
23528 if (!symtab_list_[i].valid())
23529 continue;
23530 else if (
23531 symtab_list_[i].local_data().variable_store
23532 .symbol_exists(variable_name)
23533 )
23534 return true;
23535 }
23536
23537 return false;
23538 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Referenced by exprtk::parser< T >::parse_for_loop(), and exprtk::parser< T >::parse_swap_statement().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ is_vector()

template<typename T >
bool exprtk::parser< T >::symtab_store::is_vector ( const std::string &  vector_name) const
inline

Definition at line 23612 of file exprtk.hpp.

23613 {
23614 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23615 {
23616 if (!symtab_list_[i].valid())
23617 continue;
23618 else if (
23619 local_data(i).vector_store
23620 .symbol_exists(vector_name)
23621 )
23622 return true;
23623 }
23624
23625 return false;
23626 }

References exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Referenced by exprtk::parser< T >::parse_define_vector_statement(), and exprtk::parser< T >::parse_symtab_symbol().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ local_data() [1/2]

template<typename T >
local_data_t & exprtk::parser< T >::symtab_store::local_data ( const std::size_t &  index = 0)
inline

Definition at line 23650 of file exprtk.hpp.

23651 {
23652 return symtab_list_[index].local_data();
23653 }

References exprtk::parser< T >::symtab_store::symtab_list_.

Referenced by exprtk::parser< T >::symtab_store::get_conststr_stringvar_name(), exprtk::parser< T >::symtab_store::get_function(), exprtk::parser< T >::symtab_store::get_generic_function(), exprtk::parser< T >::symtab_store::get_overload_function(), exprtk::parser< T >::symtab_store::get_string_context(), exprtk::parser< T >::symtab_store::get_string_function(), exprtk::parser< T >::symtab_store::get_stringvar(), exprtk::parser< T >::symtab_store::get_stringvar_name(), exprtk::parser< T >::symtab_store::get_vararg_function(), exprtk::parser< T >::symtab_store::get_variable(), exprtk::parser< T >::symtab_store::get_variable(), exprtk::parser< T >::symtab_store::get_variable_context(), exprtk::parser< T >::symtab_store::get_variable_name(), exprtk::parser< T >::symtab_store::get_vector(), exprtk::parser< T >::symtab_store::get_vector_context(), exprtk::parser< T >::symtab_store::get_vector_name(), exprtk::parser< T >::symtab_store::is_constant_node(), exprtk::parser< T >::symtab_store::is_constant_string(), exprtk::parser< T >::symtab_store::is_conststr_stringvar(), exprtk::parser< T >::symtab_store::is_function(), exprtk::parser< T >::symtab_store::is_stringvar(), exprtk::parser< T >::symtab_store::is_vararg_function(), exprtk::parser< T >::symtab_store::is_variable(), and exprtk::parser< T >::symtab_store::is_vector().

Here is the caller graph for this function:

◆ local_data() [2/2]

template<typename T >
const local_data_t & exprtk::parser< T >::symtab_store::local_data ( const std::size_t &  index = 0) const
inline

Definition at line 23655 of file exprtk.hpp.

23656 {
23657 return symtab_list_[index].local_data();
23658 }

References exprtk::parser< T >::symtab_store::symtab_list_.

◆ symbol_exists()

template<typename T >
bool exprtk::parser< T >::symtab_store::symbol_exists ( const std::string &  symbol) const
inline

Definition at line 23506 of file exprtk.hpp.

23507 {
23508 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23509 {
23510 if (!symtab_list_[i].valid())
23511 {
23512 continue;
23513 }
23514
23515 if (symtab_list_[i].symbol_exists(symbol))
23516 {
23517 return true;
23518 }
23519 }
23520
23521 return false;
23522 }

References exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Referenced by exprtk::parser< T >::symtab_store::is_conststr_stringvar(), exprtk::parser< T >::symtab_store::is_function(), exprtk::parser< T >::symtab_store::is_stringvar(), exprtk::parser< T >::symtab_store::is_vararg_function(), exprtk::parser< T >::symtab_store::is_variable(), exprtk::parser< T >::symtab_store::is_vector(), exprtk::parser< T >::parse_define_constvar_statement(), exprtk::parser< T >::parse_define_var_statement(), and exprtk::parser< T >::symtab_store::symbol_exists().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ valid()

template<typename T >
bool exprtk::parser< T >::symtab_store::valid ( ) const
inline

Definition at line 23166 of file exprtk.hpp.

23167 {
23168 if (!empty())
23169 {
23170 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23171 {
23172 if (symtab_list_[i].valid())
23173 return true;
23174 }
23175 }
23176
23177 return false;
23178 }

References exprtk::parser< T >::symtab_store::empty(), exprtk::parser< T >::symtab_store::symtab_list_, and exprtk::parser< T >::symtab_store::valid().

Referenced by exprtk::parser< T >::symtab_store::get_function(), exprtk::parser< T >::symtab_store::get_generic_function(), exprtk::parser< T >::symtab_store::get_overload_function(), exprtk::parser< T >::symtab_store::get_string_context(), exprtk::parser< T >::symtab_store::get_string_function(), exprtk::parser< T >::symtab_store::get_stringvar(), exprtk::parser< T >::symtab_store::get_vararg_function(), exprtk::parser< T >::symtab_store::get_variable(), exprtk::parser< T >::symtab_store::get_variable(), exprtk::parser< T >::symtab_store::get_variable_context(), exprtk::parser< T >::symtab_store::get_vector(), exprtk::parser< T >::symtab_store::get_vector_context(), exprtk::parser< T >::symtab_store::is_constant_node(), exprtk::parser< T >::symtab_store::is_constant_string(), exprtk::parser< T >::symtab_store::is_conststr_stringvar(), exprtk::parser< T >::symtab_store::is_function(), exprtk::parser< T >::symtab_store::is_stringvar(), exprtk::parser< T >::symtab_store::is_vararg_function(), exprtk::parser< T >::symtab_store::is_variable(), exprtk::parser< T >::symtab_store::is_vector(), exprtk::parser< T >::parse_symbol(), exprtk::parser< T >::symtab_store::symbol_exists(), and exprtk::parser< T >::symtab_store::valid().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ valid_function_name()

template<typename T >
bool exprtk::parser< T >::symtab_store::valid_function_name ( const std::string &  symbol) const
inline

Definition at line 23188 of file exprtk.hpp.

23189 {
23190 if (!symtab_list_.empty())
23191 return symtab_list_[0].valid_function(symbol);
23192 else
23193 return false;
23194 }

References exprtk::parser< T >::symtab_store::symtab_list_.

Referenced by exprtk::parser< T >::symtab_store::get_function(), exprtk::parser< T >::symtab_store::get_generic_function(), exprtk::parser< T >::symtab_store::get_overload_function(), exprtk::parser< T >::symtab_store::get_string_function(), and exprtk::parser< T >::symtab_store::get_vararg_function().

Here is the caller graph for this function:

◆ valid_symbol()

template<typename T >
bool exprtk::parser< T >::symtab_store::valid_symbol ( const std::string &  symbol) const
inline

Member Data Documentation

◆ symtab_list_

template<typename T >
symbol_table_list_t exprtk::parser< T >::symtab_store::symtab_list_

Definition at line 23109 of file exprtk.hpp.

Referenced by exprtk::parser< T >::symtab_store::clear(), exprtk::parser< T >::compile(), exprtk::parser< T >::symtab_store::empty(), exprtk::parser< T >::symtab_store::get_function(), exprtk::parser< T >::symtab_store::get_generic_function(), exprtk::parser< T >::symtab_store::get_overload_function(), exprtk::parser< T >::symtab_store::get_string_context(), exprtk::parser< T >::symtab_store::get_string_function(), exprtk::parser< T >::symtab_store::get_stringvar(), exprtk::parser< T >::symtab_store::get_symbol_table(), exprtk::parser< T >::symtab_store::get_vararg_function(), exprtk::parser< T >::symtab_store::get_variable(), exprtk::parser< T >::symtab_store::get_variable(), exprtk::parser< T >::symtab_store::get_variable_context(), exprtk::parser< T >::symtab_store::get_vector(), exprtk::parser< T >::symtab_store::get_vector_context(), exprtk::parser< T >::symtab_store::is_constant_node(), exprtk::parser< T >::symtab_store::is_constant_string(), exprtk::parser< T >::symtab_store::is_conststr_stringvar(), exprtk::parser< T >::symtab_store::is_function(), exprtk::parser< T >::symtab_store::is_stringvar(), exprtk::parser< T >::symtab_store::is_vararg_function(), exprtk::parser< T >::symtab_store::is_variable(), exprtk::parser< T >::symtab_store::is_vector(), exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::local_data(), exprtk::parser< T >::symtab_store::symbol_exists(), exprtk::parser< T >::symtab_store::valid(), exprtk::parser< T >::symtab_store::valid_function_name(), and exprtk::parser< T >::symtab_store::valid_symbol().


The documentation for this struct was generated from the following file: