#include <exprtk.hpp>

Inheritance diagram for exprtk::symbol_table< T >:
Inheritance graph

Classes

struct  control_block
 
struct  freefunc00
 
struct  freefunc01
 
struct  freefunc02
 
struct  freefunc03
 
struct  freefunc04
 
struct  freefunc05
 
struct  freefunc06
 
struct  freefunc07
 
struct  freefunc08
 
struct  freefunc09
 
struct  freefunc10
 
struct  freefunc11
 
struct  freefunc12
 
struct  freefunc13
 
struct  freefunc14
 
struct  freefunc15
 
struct  type_store
 

Public Types

typedef T(* ff00_functor) ()
 
typedef T(* ff01_functor) (T)
 
typedef T(* ff02_functor) (T, T)
 
typedef T(* ff03_functor) (T, T, T)
 
typedef T(* ff04_functor) (T, T, T, T)
 
typedef T(* ff05_functor) (T, T, T, T, T)
 
typedef T(* ff06_functor) (T, T, T, T, T, T)
 
typedef T(* ff07_functor) (T, T, T, T, T, T, T)
 
typedef T(* ff08_functor) (T, T, T, T, T, T, T, T)
 
typedef T(* ff09_functor) (T, T, T, T, T, T, T, T, T)
 
typedef T(* ff10_functor) (T, T, T, T, T, T, T, T, T, T)
 
typedef T(* ff11_functor) (T, T, T, T, T, T, T, T, T, T, T)
 
typedef T(* ff12_functor) (T, T, T, T, T, T, T, T, T, T, T, T)
 
typedef T(* ff13_functor) (T, T, T, T, T, T, T, T, T, T, T, T, T)
 
typedef T(* ff14_functor) (T, T, T, T, T, T, T, T, T, T, T, T, T, T)
 
typedef T(* ff15_functor) (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T)
 
typedef vector_holder_tvector_holder_ptr
 

Public Member Functions

 symbol_table ()
 
 ~symbol_table ()
 
 symbol_table (const symbol_table< T > &st)
 
symbol_table< T > & operator= (const symbol_table< T > &st)
 
bool operator== (const symbol_table< T > &st) const
 
void clear_variables (const bool delete_node=true)
 
void clear_functions ()
 
void clear_strings ()
 
void clear_vectors ()
 
void clear_local_constants ()
 
void clear ()
 
std::size_t variable_count () const
 
std::size_t stringvar_count () const
 
std::size_t function_count () const
 
std::size_t vector_count () const
 
variable_ptr get_variable (const std::string &variable_name) const
 
variable_ptr get_variable (const T &var_ref) 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_holder_ptr get_vector (const std::string &vector_name) const
 
T & variable_ref (const std::string &symbol_name)
 
std::stringstringvar_ref (const std::string &symbol_name)
 
bool is_constant_node (const std::string &symbol_name) const
 
bool is_constant_string (const std::string &symbol_name) const
 
bool create_variable (const std::string &variable_name, const T &value=T(0))
 
bool create_stringvar (const std::string &stringvar_name, const std::string &value=std::string(""))
 
bool add_variable (const std::string &variable_name, T &t, const bool is_constant=false)
 
bool add_constant (const std::string &constant_name, const T &value)
 
bool add_stringvar (const std::string &stringvar_name, std::string &s, const bool is_constant=false)
 
bool add_function (const std::string &function_name, function_t &function)
 
bool add_function (const std::string &vararg_function_name, vararg_function_t &vararg_function)
 
bool add_function (const std::string &function_name, generic_function_t &function)
 
 exprtk_define_freefunction (00) exprtk_define_freefunction(01) exprtk_define_freefunction(02) exprtk_define_freefunction(03) exprtk_define_freefunction(04) exprtk_define_freefunction(05) exprtk_define_freefunction(06) exprtk_define_freefunction(07) exprtk_define_freefunction(08) exprtk_define_freefunction(09) exprtk_define_freefunction(10) exprtk_define_freefunction(11) exprtk_define_freefunction(12) exprtk_define_freefunction(13) exprtk_define_freefunction(14) exprtk_define_freefunction(15) inline bool add_reserved_function(const std
 
bool add_reserved_function (const std::string &vararg_function_name, vararg_function_t &vararg_function)
 
bool add_reserved_function (const std::string &function_name, generic_function_t &function)
 
template<std::size_t N>
bool add_vector (const std::string &vector_name, T(&v)[N])
 
bool add_vector (const std::string &vector_name, T *v, const std::size_t &v_size)
 
template<typename Allocator >
bool add_vector (const std::string &vector_name, std::vector< T, Allocator > &v)
 
bool add_vector (const std::string &vector_name, exprtk::vector_view< T > &v)
 
bool remove_variable (const std::string &variable_name, const bool delete_node=true)
 
bool remove_stringvar (const std::string &string_name)
 
bool remove_function (const std::string &function_name)
 
bool remove_vararg_function (const std::string &vararg_function_name)
 
bool remove_vector (const std::string &vector_name)
 
bool add_constants ()
 
bool add_pi ()
 
bool add_epsilon ()
 
bool add_infinity ()
 
template<typename Package >
bool add_package (Package &package)
 
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t get_variable_list (Sequence< std::pair< std::string, T >, Allocator > &vlist) const
 
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t get_variable_list (Sequence< std::string, Allocator > &vlist) const
 
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t get_stringvar_list (Sequence< std::pair< std::string, std::string >, Allocator > &svlist) const
 
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t get_stringvar_list (Sequence< std::string, Allocator > &svlist) const
 
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t get_vector_list (Sequence< std::string, Allocator > &vlist) const
 
bool symbol_exists (const std::string &symbol_name, const bool check_reserved_symb=true) 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_ptr &ptr) const
 
std::string get_vector_name (const vector_holder_ptr &ptr) const
 
std::string get_stringvar_name (const expression_ptr &ptr) const
 
std::string get_conststr_stringvar_name (const expression_ptr &ptr) const
 
bool valid () const
 
void load_from (const symbol_table< T > &st)
 

Protected Types

typedef details::expression_node< T > * expression_ptr
 
typedef details::variable_node< T > variable_t
 
typedef details::vector_holder< T > vector_holder_t
 
typedef variable_tvariable_ptr
 
typedef details::stringvar_node< T > stringvar_t
 
typedef stringvar_tstringvar_ptr
 
typedef ifunction< T > function_t
 
typedef ivararg_function< T > vararg_function_t
 
typedef igeneric_function< T > generic_function_t
 
typedef function_tfunction_ptr
 
typedef vararg_function_tvararg_function_ptr
 
typedef generic_function_tgeneric_function_ptr
 

Static Protected Attributes

static const std::size_t lut_size = 256
 

Friends

class parser< T >
 

Member Typedef Documentation

◆ expression_ptr

template<typename T >
typedef details::expression_node<T>* exprtk::symbol_table< T >::expression_ptr
protected

◆ ff00_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff00_functor) ()

◆ ff01_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff01_functor) (T)

◆ ff02_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff02_functor) (T, T)

◆ ff03_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff03_functor) (T, T, T)

◆ ff04_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff04_functor) (T, T, T, T)

◆ ff05_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff05_functor) (T, T, T, T, T)

◆ ff06_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff06_functor) (T, T, T, T, T, T)

◆ ff07_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff07_functor) (T, T, T, T, T, T, T)

◆ ff08_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff08_functor) (T, T, T, T, T, T, T, T)

◆ ff09_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff09_functor) (T, T, T, T, T, T, T, T, T)

◆ ff10_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff10_functor) (T, T, T, T, T, T, T, T, T, T)

◆ ff11_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff11_functor) (T, T, T, T, T, T, T, T, T, T, T)

◆ ff12_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff12_functor) (T, T, T, T, T, T, T, T, T, T, T, T)

◆ ff13_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff13_functor) (T, T, T, T, T, T, T, T, T, T, T, T, T)

◆ ff14_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff14_functor) (T, T, T, T, T, T, T, T, T, T, T, T, T, T)

◆ ff15_functor

template<typename T >
typedef T(* exprtk::symbol_table< T >::ff15_functor) (T, T, T, T, T, T, T, T, T, T, T, T, T, T, T)

◆ function_ptr

template<typename T >
typedef function_t* exprtk::symbol_table< T >::function_ptr
protected

◆ function_t

template<typename T >
typedef ifunction<T> exprtk::symbol_table< T >::function_t
protected

◆ generic_function_ptr

template<typename T >
typedef generic_function_t* exprtk::symbol_table< T >::generic_function_ptr
protected

◆ generic_function_t

template<typename T >
typedef igeneric_function<T> exprtk::symbol_table< T >::generic_function_t
protected

◆ stringvar_ptr

template<typename T >
typedef stringvar_t* exprtk::symbol_table< T >::stringvar_ptr
protected

◆ stringvar_t

template<typename T >
typedef details::stringvar_node<T> exprtk::symbol_table< T >::stringvar_t
protected

◆ vararg_function_ptr

template<typename T >
typedef vararg_function_t* exprtk::symbol_table< T >::vararg_function_ptr
protected

◆ vararg_function_t

template<typename T >
typedef ivararg_function<T> exprtk::symbol_table< T >::vararg_function_t
protected

◆ variable_ptr

template<typename T >
typedef variable_t* exprtk::symbol_table< T >::variable_ptr
protected

◆ variable_t

template<typename T >
typedef details::variable_node<T> exprtk::symbol_table< T >::variable_t
protected

◆ vector_holder_ptr

template<typename T >
typedef vector_holder_t* exprtk::symbol_table< T >::vector_holder_ptr

◆ vector_holder_t

template<typename T >
typedef details::vector_holder<T> exprtk::symbol_table< T >::vector_holder_t
protected

Constructor & Destructor Documentation

◆ symbol_table() [1/2]

template<typename T >
exprtk::symbol_table< T >::symbol_table ( )
inline

◆ ~symbol_table()

template<typename T >
exprtk::symbol_table< T >::~symbol_table ( )
inline

◆ symbol_table() [2/2]

template<typename T >
exprtk::symbol_table< T >::symbol_table ( const symbol_table< T > &  st)
inline

Member Function Documentation

◆ add_constant()

template<typename T >
bool exprtk::symbol_table< T >::add_constant ( const std::string constant_name,
const T &  value 
)
inline

◆ add_constants()

template<typename T >
bool exprtk::symbol_table< T >::add_constants ( )
inline

◆ add_epsilon()

template<typename T >
bool exprtk::symbol_table< T >::add_epsilon ( )
inline

◆ add_function() [1/3]

template<typename T >
bool exprtk::symbol_table< T >::add_function ( const std::string function_name,
function_t function 
)
inline

◆ add_function() [2/3]

template<typename T >
bool exprtk::symbol_table< T >::add_function ( const std::string function_name,
generic_function_t function 
)
inline

◆ add_function() [3/3]

template<typename T >
bool exprtk::symbol_table< T >::add_function ( const std::string vararg_function_name,
vararg_function_t vararg_function 
)
inline

◆ add_infinity()

template<typename T >
bool exprtk::symbol_table< T >::add_infinity ( )
inline

◆ add_package()

template<typename T >
template<typename Package >
bool exprtk::symbol_table< T >::add_package ( Package &  package)
inline

◆ add_pi()

template<typename T >
bool exprtk::symbol_table< T >::add_pi ( )
inline

◆ add_reserved_function() [1/2]

template<typename T >
bool exprtk::symbol_table< T >::add_reserved_function ( const std::string function_name,
generic_function_t function 
)
inline

◆ add_reserved_function() [2/2]

template<typename T >
bool exprtk::symbol_table< T >::add_reserved_function ( const std::string vararg_function_name,
vararg_function_t vararg_function 
)
inline

◆ add_stringvar()

template<typename T >
bool exprtk::symbol_table< T >::add_stringvar ( const std::string stringvar_name,
std::string s,
const bool  is_constant = false 
)
inline

◆ add_variable()

template<typename T >
bool exprtk::symbol_table< T >::add_variable ( const std::string variable_name,
T &  t,
const bool  is_constant = false 
)
inline

References exprtk::details::t().

Referenced by exprtk::pgo_primer().

◆ add_vector() [1/4]

template<typename T >
bool exprtk::symbol_table< T >::add_vector ( const std::string vector_name,
exprtk::vector_view< T > &  v 
)
inline

◆ add_vector() [2/4]

template<typename T >
template<typename Allocator >
bool exprtk::symbol_table< T >::add_vector ( const std::string vector_name,
std::vector< T, Allocator > &  v 
)
inline

◆ add_vector() [3/4]

template<typename T >
bool exprtk::symbol_table< T >::add_vector ( const std::string vector_name,
T *  v,
const std::size_t &  v_size 
)
inline

◆ add_vector() [4/4]

template<typename T >
template<std::size_t N>
bool exprtk::symbol_table< T >::add_vector ( const std::string vector_name,
T(&)  v[N] 
)
inline

◆ clear()

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

◆ clear_functions()

template<typename T >
void exprtk::symbol_table< T >::clear_functions ( )
inline

◆ clear_local_constants()

template<typename T >
void exprtk::symbol_table< T >::clear_local_constants ( )
inline

◆ clear_strings()

template<typename T >
void exprtk::symbol_table< T >::clear_strings ( )
inline

◆ clear_variables()

template<typename T >
void exprtk::symbol_table< T >::clear_variables ( const bool  delete_node = true)
inline

◆ clear_vectors()

template<typename T >
void exprtk::symbol_table< T >::clear_vectors ( )
inline

◆ create_stringvar()

template<typename T >
bool exprtk::symbol_table< T >::create_stringvar ( const std::string stringvar_name,
const std::string value = std::string("") 
)
inline

References string, and exprtk::details::value().

◆ create_variable()

template<typename T >
bool exprtk::symbol_table< T >::create_variable ( const std::string variable_name,
const T &  value = T(0) 
)
inline

◆ exprtk_define_freefunction()

template<typename T >
exprtk::symbol_table< T >::exprtk_define_freefunction ( 00  ) const
inline

◆ function_count()

template<typename T >
std::size_t exprtk::symbol_table< T >::function_count ( ) const
inline

◆ get_conststr_stringvar_name()

template<typename T >
std::string exprtk::symbol_table< T >::get_conststr_stringvar_name ( const expression_ptr ptr) const
inline

◆ get_function()

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

◆ get_generic_function()

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

◆ get_overload_function()

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

◆ get_string_function()

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

◆ get_stringvar()

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

◆ get_stringvar_list() [1/2]

template<typename T >
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t exprtk::symbol_table< T >::get_stringvar_list ( Sequence< std::pair< std::string, std::string >, Allocator > &  svlist) const
inline

◆ get_stringvar_list() [2/2]

template<typename T >
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t exprtk::symbol_table< T >::get_stringvar_list ( Sequence< std::string, Allocator > &  svlist) const
inline

◆ get_stringvar_name()

template<typename T >
std::string exprtk::symbol_table< T >::get_stringvar_name ( const expression_ptr ptr) const
inline

◆ get_vararg_function()

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

◆ get_variable() [1/2]

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

◆ get_variable() [2/2]

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

◆ get_variable_list() [1/2]

template<typename T >
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t exprtk::symbol_table< T >::get_variable_list ( Sequence< std::pair< std::string, T >, Allocator > &  vlist) const
inline

◆ get_variable_list() [2/2]

template<typename T >
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t exprtk::symbol_table< T >::get_variable_list ( Sequence< std::string, Allocator > &  vlist) const
inline

◆ get_variable_name()

template<typename T >
std::string exprtk::symbol_table< T >::get_variable_name ( const expression_ptr ptr) const
inline

◆ get_vector()

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

◆ get_vector_list()

template<typename T >
template<typename Allocator , template< typename, typename > class Sequence>
std::size_t exprtk::symbol_table< T >::get_vector_list ( Sequence< std::string, Allocator > &  vlist) const
inline

◆ get_vector_name()

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

◆ is_constant_node()

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

◆ is_constant_string()

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

◆ is_conststr_stringvar()

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

◆ is_function()

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

◆ is_stringvar()

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

◆ is_vararg_function()

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

◆ is_variable()

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

◆ is_vector()

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

◆ load_from()

◆ operator=()

template<typename T >
symbol_table< T > & exprtk::symbol_table< T >::operator= ( const symbol_table< T > &  st)
inline

◆ operator==()

template<typename T >
bool exprtk::symbol_table< T >::operator== ( const symbol_table< T > &  st) const
inline

◆ remove_function()

template<typename T >
bool exprtk::symbol_table< T >::remove_function ( const std::string function_name)
inline

◆ remove_stringvar()

template<typename T >
bool exprtk::symbol_table< T >::remove_stringvar ( const std::string string_name)
inline

◆ remove_vararg_function()

template<typename T >
bool exprtk::symbol_table< T >::remove_vararg_function ( const std::string vararg_function_name)
inline

◆ remove_variable()

template<typename T >
bool exprtk::symbol_table< T >::remove_variable ( const std::string variable_name,
const bool  delete_node = true 
)
inline

◆ remove_vector()

template<typename T >
bool exprtk::symbol_table< T >::remove_vector ( const std::string vector_name)
inline

◆ stringvar_count()

template<typename T >
std::size_t exprtk::symbol_table< T >::stringvar_count ( ) const
inline

◆ stringvar_ref()

template<typename T >
std::string & exprtk::symbol_table< T >::stringvar_ref ( const std::string symbol_name)
inline

References string.

◆ symbol_exists()

template<typename T >
bool exprtk::symbol_table< T >::symbol_exists ( const std::string symbol_name,
const bool  check_reserved_symb = true 
) const
inline

◆ valid()

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

◆ variable_count()

template<typename T >
std::size_t exprtk::symbol_table< T >::variable_count ( ) const
inline

◆ variable_ref()

template<typename T >
T & exprtk::symbol_table< T >::variable_ref ( const std::string symbol_name)
inline

◆ vector_count()

template<typename T >
std::size_t exprtk::symbol_table< T >::vector_count ( ) const
inline

Friends And Related Function Documentation

◆ parser< T >

template<typename T >
friend class parser< T >
friend

Member Data Documentation

◆ lut_size

template<typename T >
const std::size_t exprtk::symbol_table< T >::lut_size = 256
staticprotected

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