RayZaler 0.1
The free opto-mechanical simulation framework
exprtk::symbol_table< T > Class Template Reference

Classes

struct  control_block
 
struct  exprtk_final
 
struct  freefunc05
 
struct  type_store
 

Public Types

enum  symtab_mutability_type { e_unknown = 0 , e_mutable = 1 , e_immutable = 2 }
 
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 (const symtab_mutability_type mutability=e_mutable)
 
 symbol_table (const symbol_table< T > &st)
 
symbol_table< T > & operator= (const symbol_table< T > &st)
 
bool operator== (const symbol_table< T > &st) const
 
symtab_mutability_type mutability () 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
 
stringvar_base< T > get_stringvar_base (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::string & stringvar_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_t * variable_ptr
 
typedef details::stringvar_node< T > stringvar_t
 
typedef stringvar_t * stringvar_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 >
 

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