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 22820 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 22826 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 22832 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 22824 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 22828 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 22831 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 22825 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 22830 of file exprtk.hpp.

Member Function Documentation

◆ clear()

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

Definition at line 22874 of file exprtk.hpp.

22875 {
22876 symtab_list_.clear();
22877 }
symbol_table_list_t symtab_list_
Definition exprtk.hpp:22822

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

◆ empty()

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

Definition at line 22869 of file exprtk.hpp.

22870 {
22871 return symtab_list_.empty();
22872 }

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 23357 of file exprtk.hpp.

23358 {
23359 return local_data().stringvar_store.entity_name(ptr);
23360 }
local_data_t & local_data(const std::size_t &index=0)
Definition exprtk.hpp:23363
type_store< stringvar_t, std::string > stringvar_store
Definition exprtk.hpp:20363

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 23023 of file exprtk.hpp.

23024 {
23025 if (!valid_function_name(function_name))
23026 return reinterpret_cast<function_ptr>(0);
23027
23028 function_ptr result = reinterpret_cast<function_ptr>(0);
23029
23030 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23031 {
23032 if (!symtab_list_[i].valid())
23033 continue;
23034 else
23035 result = local_data(i)
23036 .function_store.get(function_name);
23037
23038 if (result) break;
23039 }
23040
23041 return result;
23042 }
symbol_table_t::function_ptr function_ptr
Definition exprtk.hpp:22826
bool valid_function_name(const std::string &symbol) const
Definition exprtk.hpp:22901
type_store< function_t, function_t > function_store
Definition exprtk.hpp:20356

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 23065 of file exprtk.hpp.

23066 {
23067 if (!valid_function_name(function_name))
23068 return reinterpret_cast<generic_function_ptr>(0);
23069
23070 generic_function_ptr result = reinterpret_cast<generic_function_ptr>(0);
23071
23072 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23073 {
23074 if (!symtab_list_[i].valid())
23075 continue;
23076 else
23077 result = local_data(i)
23078 .generic_function_store.get(function_name);
23079
23080 if (result) break;
23081 }
23082
23083 return result;
23084 }
symbol_table_t::generic_function_ptr generic_function_ptr
Definition exprtk.hpp:22832
type_store< generic_function_t, generic_function_t > generic_function_store
Definition exprtk.hpp:20358

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 23107 of file exprtk.hpp.

23108 {
23109 if (!valid_function_name(function_name))
23110 return reinterpret_cast<generic_function_ptr>(0);
23111
23112 generic_function_ptr result = reinterpret_cast<generic_function_ptr>(0);
23113
23114 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23115 {
23116 if (!symtab_list_[i].valid())
23117 continue;
23118 else
23119 result =
23120 local_data(i).overload_function_store.get(function_name);
23121
23122 if (result) break;
23123 }
23124
23125 return result;
23126 }
type_store< generic_function_t, generic_function_t > overload_function_store
Definition exprtk.hpp:20360

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 22975 of file exprtk.hpp.

22976 {
22977 string_context result;
22978
22979 if (!valid_symbol(string_name))
22980 return result;
22981
22982 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
22983 {
22984 if (!symtab_list_[i].valid())
22985 {
22986 continue;
22987 }
22988
22989 result.str_var = local_data(i).stringvar_store.get(string_name);
22990
22991 if (result.str_var)
22992 {
22993 result.symbol_table = &symtab_list_[i];
22994 break;
22995 }
22996 }
22997
22998 return result;
22999 }
bool valid_symbol(const std::string &symbol) const
Definition exprtk.hpp:22893

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 23086 of file exprtk.hpp.

23087 {
23088 if (!valid_function_name(function_name))
23089 return reinterpret_cast<generic_function_ptr>(0);
23090
23091 generic_function_ptr result = reinterpret_cast<generic_function_ptr>(0);
23092
23093 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23094 {
23095 if (!symtab_list_[i].valid())
23096 continue;
23097 else
23098 result =
23099 local_data(i).string_function_store.get(function_name);
23100
23101 if (result) break;
23102 }
23103
23104 return result;
23105 }
type_store< generic_function_t, generic_function_t > string_function_store
Definition exprtk.hpp:20359

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 23001 of file exprtk.hpp.

23002 {
23003 if (!valid_symbol(string_name))
23004 return reinterpret_cast<stringvar_ptr>(0);
23005
23006 stringvar_ptr result = reinterpret_cast<stringvar_ptr>(0);
23007
23008 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23009 {
23010 if (!symtab_list_[i].valid())
23011 continue;
23012 else
23013 result = local_data(i)
23014 .stringvar_store.get(string_name);
23015
23016 if (result) break;
23017 }
23018
23019 return result;
23020 }
symbol_table_t::stringvar_ptr stringvar_ptr
Definition exprtk.hpp:22828

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 23352 of file exprtk.hpp.

23353 {
23354 return local_data().stringvar_store.entity_name(ptr);
23355 }

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 23373 of file exprtk.hpp.

23374 {
23375 return symtab_list_[index];
23376 }

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 23044 of file exprtk.hpp.

23045 {
23046 if (!valid_function_name(vararg_function_name))
23047 return reinterpret_cast<vararg_function_ptr>(0);
23048
23049 vararg_function_ptr result = reinterpret_cast<vararg_function_ptr>(0);
23050
23051 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23052 {
23053 if (!symtab_list_[i].valid())
23054 continue;
23055 else
23056 result = local_data(i)
23057 .vararg_function_store.get(vararg_function_name);
23058
23059 if (result) break;
23060 }
23061
23062 return result;
23063 }
symbol_table_t::vararg_function_ptr vararg_function_ptr
Definition exprtk.hpp:22831
type_store< vararg_function_t, vararg_function_t > vararg_function_store
Definition exprtk.hpp:20357

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 22935 of file exprtk.hpp.

22936 {
22937 if (!valid_symbol(variable_name))
22938 return reinterpret_cast<variable_ptr>(0);
22939
22940 variable_ptr result = reinterpret_cast<variable_ptr>(0);
22941
22942 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
22943 {
22944 if (!symtab_list_[i].valid())
22945 continue;
22946 else
22947 result = local_data(i)
22948 .variable_store.get(variable_name);
22949
22950 if (result) break;
22951 }
22952
22953 return result;
22954 }
symbol_table_t::variable_ptr variable_ptr
Definition exprtk.hpp:22825
type_store< variable_t, T > variable_store
Definition exprtk.hpp:20355

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 22956 of file exprtk.hpp.

22957 {
22958 variable_ptr result = reinterpret_cast<variable_ptr>(0);
22959
22960 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
22961 {
22962 if (!symtab_list_[i].valid())
22963 continue;
22964 else
22965 result = local_data(i).variable_store
22966 .get_from_varptr(reinterpret_cast<const void*>(&var_ref));
22967
22968 if (result) break;
22969 }
22970
22971 return result;
22972 }

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 22909 of file exprtk.hpp.

22910 {
22911 variable_context result;
22912
22913 if (valid_symbol(variable_name))
22914 {
22915 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
22916 {
22917 if (!symtab_list_[i].valid())
22918 {
22919 continue;
22920 }
22921
22922 result.variable = local_data(i)
22923 .variable_store.get(variable_name);
22924 if (result.variable)
22925 {
22926 result.symbol_table = &symtab_list_[i];
22927 break;
22928 }
22929 }
22930 }
22931
22932 return result;
22933 }

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 23341 of file exprtk.hpp.

23342 {
23343 return local_data().variable_store.entity_name(ptr);
23344 }

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 23153 of file exprtk.hpp.

23154 {
23155 if (!valid_symbol(vector_name))
23156 return reinterpret_cast<vector_holder_ptr>(0);
23157
23158 vector_holder_ptr result = reinterpret_cast<vector_holder_ptr>(0);
23159
23160 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23161 {
23162 if (!symtab_list_[i].valid())
23163 {
23164 continue;
23165 }
23166
23167 result = local_data(i).vector_store.get(vector_name);
23168
23169 if (result)
23170 {
23171 break;
23172 }
23173 }
23174
23175 return result;
23176 }
symbol_table_t::vector_holder_ptr vector_holder_ptr
Definition exprtk.hpp:22830
type_store< vector_holder_t, vector_holder_t > vector_store
Definition exprtk.hpp:20361

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 23128 of file exprtk.hpp.

23129 {
23130 vector_context result;
23131 if (!valid_symbol(vector_name))
23132 return result;
23133
23134 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23135 {
23136 if (!symtab_list_[i].valid())
23137 {
23138 continue;
23139 }
23140
23141 result.vector_holder = local_data(i).vector_store.get(vector_name);
23142
23143 if (result.vector_holder)
23144 {
23145 result.symbol_table = &symtab_list_[i];
23146 break;
23147 }
23148 }
23149
23150 return result;
23151 }

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 23346 of file exprtk.hpp.

23347 {
23348 return local_data().vector_store.entity_name(ptr);
23349 }

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 23178 of file exprtk.hpp.

23179 {
23180 if (!valid_symbol(symbol_name))
23181 return false;
23182
23183 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23184 {
23185 if (!symtab_list_[i].valid())
23186 {
23187 continue;
23188 }
23189
23190 if (local_data(i).variable_store.is_constant(symbol_name))
23191 {
23192 return true;
23193 }
23194 }
23195
23196 return false;
23197 }

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 23200 of file exprtk.hpp.

23201 {
23202 if (!valid_symbol(symbol_name))
23203 return false;
23204
23205 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23206 {
23207 if (!symtab_list_[i].valid())
23208 continue;
23209 else if (!local_data(i).stringvar_store.symbol_exists(symbol_name))
23210 continue;
23211 else if (local_data(i).stringvar_store.is_constant(symbol_name))
23212 return true;
23213 }
23214
23215 return false;
23216 }

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 23270 of file exprtk.hpp.

23271 {
23272 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23273 {
23274 if (!symtab_list_[i].valid())
23275 continue;
23276 else if (
23277 symtab_list_[i].local_data().stringvar_store
23278 .symbol_exists(symbol_name)
23279 )
23280 {
23281 return (
23282 local_data(i).stringvar_store.symbol_exists(symbol_name) ||
23283 local_data(i).stringvar_store.is_constant (symbol_name)
23284 );
23285
23286 }
23287 }
23288
23289 return false;
23290 }
bool symbol_exists(const std::string &symbol) const
Definition exprtk.hpp:23219

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 23293 of file exprtk.hpp.

23294 {
23295 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23296 {
23297 if (!symtab_list_[i].valid())
23298 continue;
23299 else if (
23300 local_data(i).vararg_function_store
23301 .symbol_exists(function_name)
23302 )
23303 return true;
23304 }
23305
23306 return false;
23307 }

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 23254 of file exprtk.hpp.

23255 {
23256 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23257 {
23258 if (!symtab_list_[i].valid())
23259 continue;
23260 else if (
23261 symtab_list_[i].local_data().stringvar_store
23262 .symbol_exists(stringvar_name)
23263 )
23264 return true;
23265 }
23266
23267 return false;
23268 }

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 23309 of file exprtk.hpp.

23310 {
23311 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23312 {
23313 if (!symtab_list_[i].valid())
23314 continue;
23315 else if (
23316 local_data(i).vararg_function_store
23317 .symbol_exists(vararg_function_name)
23318 )
23319 return true;
23320 }
23321
23322 return false;
23323 }

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 23237 of file exprtk.hpp.

23238 {
23239 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23240 {
23241 if (!symtab_list_[i].valid())
23242 continue;
23243 else if (
23244 symtab_list_[i].local_data().variable_store
23245 .symbol_exists(variable_name)
23246 )
23247 return true;
23248 }
23249
23250 return false;
23251 }

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 23325 of file exprtk.hpp.

23326 {
23327 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23328 {
23329 if (!symtab_list_[i].valid())
23330 continue;
23331 else if (
23332 local_data(i).vector_store
23333 .symbol_exists(vector_name)
23334 )
23335 return true;
23336 }
23337
23338 return false;
23339 }

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 23363 of file exprtk.hpp.

23364 {
23365 return symtab_list_[index].local_data();
23366 }

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 23368 of file exprtk.hpp.

23369 {
23370 return symtab_list_[index].local_data();
23371 }

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 23219 of file exprtk.hpp.

23220 {
23221 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
23222 {
23223 if (!symtab_list_[i].valid())
23224 {
23225 continue;
23226 }
23227
23228 if (symtab_list_[i].symbol_exists(symbol))
23229 {
23230 return true;
23231 }
23232 }
23233
23234 return false;
23235 }

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 22879 of file exprtk.hpp.

22880 {
22881 if (!empty())
22882 {
22883 for (std::size_t i = 0; i < symtab_list_.size(); ++i)
22884 {
22885 if (symtab_list_[i].valid())
22886 return true;
22887 }
22888 }
22889
22890 return false;
22891 }

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 22901 of file exprtk.hpp.

22902 {
22903 if (!symtab_list_.empty())
22904 return symtab_list_[0].valid_function(symbol);
22905 else
22906 return false;
22907 }

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 22822 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: