OpcUaCanOpen
CANopen OPC-UA server
exprtk::parser< T > Class Template Reference

#include <exprtk.hpp>

Inherits exprtk::lexer::parser_helper.

Classes

class  dependent_entity_collector
 
class  expression_generator
 
struct  parse_special_function_impl
 
struct  parser_state
 
struct  scope_element
 
class  scope_element_manager
 
class  scope_handler
 
struct  scoped_bool_negator
 
struct  scoped_bool_or_restorer
 
struct  scoped_delete
 
struct  scoped_deq_delete
 
struct  scoped_vec_delete
 
class  settings_store
 
struct  state_t
 
struct  symtab_store
 
class  type_checker
 
struct  unknown_symbol_resolver
 

Public Types

enum  collect_type { e_ct_none = 0, e_ct_variables = 1, e_ct_functions = 2, e_ct_assignments = 4 }
 
enum  symbol_type {
  e_st_unknown = 0, e_st_variable = 1, e_st_vector = 2, e_st_vecelem = 3,
  e_st_string = 4, e_st_function = 5, e_st_local_variable = 6, e_st_local_vector = 7,
  e_st_local_string = 8
}
 
typedef settings_store settings_t
 
- Public Types inherited from exprtk::lexer::parser_helper
enum  token_advance_mode { e_hold = 0, e_advance = 1 }
 
typedef token token_t
 
typedef generator generator_t
 

Public Member Functions

 parser (const settings_t &settings=settings_t())
 
 ~parser ()
 
void init_precompilation ()
 
bool compile (const std::string &expression_string, expression< T > &expr)
 
expression_t compile (const std::string &expression_string, symbol_table_t &symtab)
 
void process_lexer_errors ()
 
bool run_assemblies ()
 
settings_storesettings ()
 
parser_error::type get_error (const std::size_t &index) const
 
std::string error () const
 
std::size_t error_count () const
 
dependent_entity_collectordec ()
 
bool replace_symbol (const std::string &old_symbol, const std::string &new_symbol)
 
bool remove_replace_symbol (const std::string &symbol)
 
void enable_unknown_symbol_resolver (unknown_symbol_resolver *usr=reinterpret_cast< unknown_symbol_resolver *>(0))
 
void enable_unknown_symbol_resolver (unknown_symbol_resolver &usr)
 
void disable_unknown_symbol_resolver ()
 
- Public Member Functions inherited from exprtk::lexer::parser_helper
bool init (const std::string &str)
 
generator_tlexer ()
 
const generator_tlexer () const
 
void store_token ()
 
void restore_token ()
 
void next_token ()
 
const token_tcurrent_token () const
 
void advance_token (const token_advance_mode mode)
 
bool token_is (const token_t::token_type &ttype, const token_advance_mode mode=e_advance)
 
bool token_is (const token_t::token_type &ttype, const std::string &value, const token_advance_mode mode=e_advance)
 
bool peek_token_is (const token_t::token_type &ttype)
 
bool peek_token_is (const std::string &s)
 

Private Types

enum  precedence_level {
  e_level00, e_level01, e_level02, e_level03,
  e_level04, e_level05, e_level06, e_level07,
  e_level08, e_level09, e_level10, e_level11,
  e_level12, e_level13, e_level14
}
 
typedef const T & cref_t
 
typedef const T const_t
 
typedef ifunction< T > F
 
typedef ivararg_function< T > VAF
 
typedef igeneric_function< T > GF
 
typedef ifunction< T > ifunction_t
 
typedef ivararg_function< T > ivararg_function_t
 
typedef igeneric_function< T > igeneric_function_t
 
typedef details::expression_node< T > expression_node_t
 
typedef details::literal_node< T > literal_node_t
 
typedef details::unary_node< T > unary_node_t
 
typedef details::binary_node< T > binary_node_t
 
typedef details::trinary_node< T > trinary_node_t
 
typedef details::quaternary_node< T > quaternary_node_t
 
typedef details::conditional_node< T > conditional_node_t
 
typedef details::cons_conditional_node< T > cons_conditional_node_t
 
typedef details::while_loop_node< T > while_loop_node_t
 
typedef details::repeat_until_loop_node< T > repeat_until_loop_node_t
 
typedef details::for_loop_node< T > for_loop_node_t
 
typedef details::while_loop_bc_node< T > while_loop_bc_node_t
 
typedef details::repeat_until_loop_bc_node< T > repeat_until_loop_bc_node_t
 
typedef details::for_loop_bc_node< T > for_loop_bc_node_t
 
typedef details::switch_node< T > switch_node_t
 
typedef details::variable_node< T > variable_node_t
 
typedef details::vector_elem_node< T > vector_elem_node_t
 
typedef details::rebasevector_elem_node< T > rebasevector_elem_node_t
 
typedef details::rebasevector_celem_node< T > rebasevector_celem_node_t
 
typedef details::vector_node< T > vector_node_t
 
typedef details::range_pack< T > range_t
 
typedef details::stringvar_node< T > stringvar_node_t
 
typedef details::string_literal_node< T > string_literal_node_t
 
typedef details::string_range_node< T > string_range_node_t
 
typedef details::const_string_range_node< T > const_string_range_node_t
 
typedef details::generic_string_range_node< T > generic_string_range_node_t
 
typedef details::string_concat_node< T > string_concat_node_t
 
typedef details::assignment_string_node< T > assignment_string_node_t
 
typedef details::assignment_string_range_node< T > assignment_string_range_node_t
 
typedef details::conditional_string_node< T > conditional_string_node_t
 
typedef details::cons_conditional_str_node< T > cons_conditional_str_node_t
 
typedef details::assignment_node< T > assignment_node_t
 
typedef details::assignment_vec_elem_node< T > assignment_vec_elem_node_t
 
typedef details::assignment_rebasevec_elem_node< T > assignment_rebasevec_elem_node_t
 
typedef details::assignment_rebasevec_celem_node< T > assignment_rebasevec_celem_node_t
 
typedef details::assignment_vec_node< T > assignment_vec_node_t
 
typedef details::assignment_vecvec_node< T > assignment_vecvec_node_t
 
typedef details::scand_node< T > scand_node_t
 
typedef details::scor_node< T > scor_node_t
 
typedef lexer::token token_t
 
typedef expression_node_texpression_node_ptr
 
typedef expression< T > expression_t
 
typedef symbol_table< T > symbol_table_t
 
typedef expression< T >::symtab_list_t symbol_table_list_t
 
typedef details::vector_holder< T > * vector_holder_ptr
 
typedef details::functor_t< T > functor_t
 
typedef functor_t::qfunc_t quaternary_functor_t
 
typedef functor_t::tfunc_t trinary_functor_t
 
typedef functor_t::bfunc_t binary_functor_t
 
typedef functor_t::ufunc_t unary_functor_t
 
typedef details::operator_type operator_t
 
typedef std::map< operator_t, unary_functor_tunary_op_map_t
 
typedef std::map< operator_t, binary_functor_tbinary_op_map_t
 
typedef std::map< operator_t, trinary_functor_ttrinary_op_map_t
 
typedef std::map< std::string, std::pair< trinary_functor_t,operator_t> > sf3_map_t
 
typedef std::map< std::string, std::pair< quaternary_functor_t, operator_t> > sf4_map_t
 
typedef std::map< binary_functor_t, operator_tinv_binary_op_map_t
 
typedef std::multimap< std::string, details::base_operation_t, details::ilesscomparebase_ops_map_t
 
typedef std::set< std::string, details::ilesscomparedisabled_func_set_t
 
typedef details::T0oT1_define< T, cref_t, cref_tvov_t
 
typedef details::T0oT1_define< T, const_t, cref_tcov_t
 
typedef details::T0oT1_define< T, cref_t, const_tvoc_t
 
typedef details::T0oT1oT2_define< T, cref_t, cref_t, cref_tvovov_t
 
typedef details::T0oT1oT2_define< T, cref_t, cref_t, const_tvovoc_t
 
typedef details::T0oT1oT2_define< T, cref_t, const_t, cref_tvocov_t
 
typedef details::T0oT1oT2_define< T, const_t, cref_t, cref_tcovov_t
 
typedef details::T0oT1oT2_define< T, const_t, cref_t, const_tcovoc_t
 
typedef details::T0oT1oT2_define< T, const_t, const_t, cref_tcocov_t
 
typedef details::T0oT1oT2_define< T, cref_t, const_t, const_tvococ_t
 
typedef details::T0oT1oT2oT3_define< T, cref_t, cref_t, cref_t, cref_tvovovov_t
 
typedef details::T0oT1oT2oT3_define< T, cref_t, cref_t, cref_t, const_tvovovoc_t
 
typedef details::T0oT1oT2oT3_define< T, cref_t, cref_t, const_t, cref_tvovocov_t
 
typedef details::T0oT1oT2oT3_define< T, cref_t, const_t, cref_t, cref_tvocovov_t
 
typedef details::T0oT1oT2oT3_define< T, const_t, cref_t, cref_t, cref_tcovovov_t
 
typedef details::T0oT1oT2oT3_define< T, const_t, cref_t, const_t, cref_tcovocov_t
 
typedef details::T0oT1oT2oT3_define< T, cref_t, const_t, cref_t, const_tvocovoc_t
 
typedef details::T0oT1oT2oT3_define< T, const_t, cref_t, cref_t, const_tcovovoc_t
 
typedef details::T0oT1oT2oT3_define< T, cref_t, const_t, const_t, cref_tvococov_t
 
typedef results_context< T > results_context_t
 
typedef parser_helper prsrhlpr_t
 

Private Member Functions

bool valid_base_operation (const std::string &symbol) const
 
bool valid_vararg_operation (const std::string &symbol) const
 
bool is_invalid_arithmetic_operation (const details::operator_type operation) const
 
bool is_invalid_assignment_operation (const details::operator_type operation) const
 
bool is_invalid_inequality_operation (const details::operator_type operation) const
 
expression_node_ptr parse_corpus ()
 
std::string construct_subexpr (lexer::token &begin_token, lexer::token &end_token)
 
expression_node_ptr parse_expression (precedence_level precedence=e_level00)
 
bool simplify_unary_negation_branch (expression_node_ptr &node)
 
expression_node_ptr parse_function_invocation (ifunction< T > *function, const std::string &function_name)
 
template<std::size_t NumberofParameters>
expression_node_ptr parse_function_call (ifunction< T > *function, const std::string &function_name)
 
expression_node_ptr parse_function_call_0 (ifunction< T > *function, const std::string &function_name)
 
template<std::size_t MaxNumberofParameters>
std::size_t parse_base_function_call (expression_node_ptr(&param_list)[MaxNumberofParameters], const std::string &function_name="")
 
expression_node_ptr parse_base_operation ()
 
expression_node_ptr parse_conditional_statement_01 (expression_node_ptr condition)
 
expression_node_ptr parse_conditional_statement_02 (expression_node_ptr condition)
 
expression_node_ptr parse_conditional_statement ()
 
expression_node_ptr parse_ternary_conditional_statement (expression_node_ptr condition)
 
expression_node_ptr parse_while_loop ()
 
expression_node_ptr parse_repeat_until_loop ()
 
expression_node_ptr parse_for_loop ()
 
expression_node_ptr parse_switch_statement ()
 
expression_node_ptr parse_multi_switch_statement ()
 
expression_node_ptr parse_vararg_function ()
 
expression_node_ptr parse_string_range_statement (expression_node_ptr &expression)
 
void parse_pending_string_rangesize (expression_node_ptr &expression)
 
template<typename Allocator1 , typename Allocator2 , template< typename, typename > class Sequence>
expression_node_ptr simplify (Sequence< expression_node_ptr, Allocator1 > &expression_list, Sequence< bool, Allocator2 > &side_effect_list, const bool specialise_on_final_type=false)
 
expression_node_ptr parse_multi_sequence (const std::string &source="")
 
bool parse_range (range_t &rp, const bool skip_lsqr=false)
 
void lodge_symbol (const std::string &symbol, const symbol_type st)
 
expression_node_ptr parse_string ()
 
expression_node_ptr parse_const_string ()
 
expression_node_ptr parse_vector ()
 
expression_node_ptr parse_vararg_function_call (ivararg_function< T > *vararg_function, const std::string &vararg_function_name)
 
expression_node_ptr parse_generic_function_call (igeneric_function< T > *function, const std::string &function_name)
 
bool parse_igeneric_function_params (std::string &param_type_list, std::vector< expression_node_ptr > &arg_list, const std::string function_name, igeneric_function< T > *function, const type_checker &tc)
 
expression_node_ptr parse_string_function_call (igeneric_function< T > *function, const std::string &function_name)
 
expression_node_ptr parse_overload_function_call (igeneric_function< T > *function, const std::string &function_name)
 
expression_node_ptr parse_special_function ()
 
expression_node_ptr parse_null_statement ()
 
expression_node_ptr parse_break_statement ()
 
expression_node_ptr parse_continue_statement ()
 
expression_node_ptr parse_define_vector_statement (const std::string &vec_name)
 
expression_node_ptr parse_define_string_statement (const std::string &str_name, expression_node_ptr initialisation_expression)
 
bool local_variable_is_shadowed (const std::string &symbol)
 
expression_node_ptr parse_define_var_statement ()
 
expression_node_ptr parse_uninitialised_var_statement (const std::string &var_name)
 
expression_node_ptr parse_swap_statement ()
 
expression_node_ptr parse_return_statement ()
 
bool post_variable_process (const std::string &symbol)
 
bool post_bracket_process (const typename token_t::token_type &token, expression_node_ptr &branch)
 
expression_node_ptr parse_symtab_symbol ()
 
expression_node_ptr parse_symbol ()
 
expression_node_ptr parse_branch (precedence_level precedence=e_level00)
 
void set_error (const parser_error::type &error_type)
 
void remove_last_error ()
 
void set_synthesis_error (const std::string &synthesis_error_message)
 
void register_local_vars (expression< T > &e)
 
void register_return_results (expression< T > &e)
 
void load_unary_operations_map (unary_op_map_t &m)
 
void load_binary_operations_map (binary_op_map_t &m)
 
void load_inv_binary_operations_map (inv_binary_op_map_t &m)
 
void load_sf3_map (sf3_map_t &sf3_map)
 
void load_sf4_map (sf4_map_t &sf4_map)
 
results_context_tresults_ctx ()
 
void return_cleanup ()
 
 parser (const parser< T > &)
 
parser< T > & operator= (const parser< T > &)
 

Static Private Member Functions

static expression_node_ptr error_node ()
 

Private Attributes

settings_store settings_
 
expression_generator< T > expression_generator_
 
details::node_allocator node_allocator_
 
symtab_store symtab_store_
 
dependent_entity_collector dec_
 
std::deque< parser_error::typeerror_list_
 
std::deque< bool > brkcnt_list_
 
parser_state state_
 
bool resolve_unknown_symbol_
 
results_context_tresults_context_
 
unknown_symbol_resolverunknown_symbol_resolver_
 
unknown_symbol_resolver default_usr_
 
base_ops_map_t base_ops_map_
 
unary_op_map_t unary_op_map_
 
binary_op_map_t binary_op_map_
 
inv_binary_op_map_t inv_binary_op_map_
 
sf3_map_t sf3_map_
 
sf4_map_t sf4_map_
 
std::string synthesis_error_
 
scope_element_manager sem_
 
lexer::helper::helper_assembly helper_assembly_
 
lexer::helper::commutative_inserter commutative_inserter_
 
lexer::helper::operator_joiner operator_joiner_2_
 
lexer::helper::operator_joiner operator_joiner_3_
 
lexer::helper::symbol_replacer symbol_replacer_
 
lexer::helper::bracket_checker bracket_checker_
 
lexer::helper::numeric_checker numeric_checker_
 
lexer::helper::sequence_validator sequence_validator_
 
lexer::helper::sequence_validator_3tokens sequence_validator_3tkns_
 

Static Private Attributes

static const precedence_level default_precedence = e_level00
 

Friends

template<typename ParserType >
void details::disable_type_checking (ParserType &p)
 

Detailed Description

template<typename T>
class exprtk::parser< T >

Definition at line 16122 of file exprtk.hpp.

Member Typedef Documentation

◆ assignment_node_t

template<typename T>
typedef details::assignment_node<T> exprtk::parser< T >::assignment_node_t
private

Definition at line 18354 of file exprtk.hpp.

◆ assignment_rebasevec_celem_node_t

Definition at line 18357 of file exprtk.hpp.

◆ assignment_rebasevec_elem_node_t

Definition at line 18356 of file exprtk.hpp.

◆ assignment_string_node_t

template<typename T>
typedef details::assignment_string_node<T> exprtk::parser< T >::assignment_string_node_t
private

Definition at line 18349 of file exprtk.hpp.

◆ assignment_string_range_node_t

Definition at line 18350 of file exprtk.hpp.

◆ assignment_vec_elem_node_t

template<typename T>
typedef details::assignment_vec_elem_node<T> exprtk::parser< T >::assignment_vec_elem_node_t
private

Definition at line 18355 of file exprtk.hpp.

◆ assignment_vec_node_t

template<typename T>
typedef details::assignment_vec_node<T> exprtk::parser< T >::assignment_vec_node_t
private

Definition at line 18358 of file exprtk.hpp.

◆ assignment_vecvec_node_t

template<typename T>
typedef details::assignment_vecvec_node<T> exprtk::parser< T >::assignment_vecvec_node_t
private

Definition at line 18359 of file exprtk.hpp.

◆ base_ops_map_t

template<typename T>
typedef std::multimap<std::string,details::base_operation_t,details::ilesscompare> exprtk::parser< T >::base_ops_map_t
private

Definition at line 18385 of file exprtk.hpp.

◆ binary_functor_t

template<typename T>
typedef functor_t::bfunc_t exprtk::parser< T >::binary_functor_t
private

Definition at line 18372 of file exprtk.hpp.

◆ binary_node_t

template<typename T>
typedef details::binary_node<T> exprtk::parser< T >::binary_node_t
private

Definition at line 18322 of file exprtk.hpp.

◆ binary_op_map_t

template<typename T>
typedef std::map<operator_t, binary_functor_t> exprtk::parser< T >::binary_op_map_t
private

Definition at line 18378 of file exprtk.hpp.

◆ cocov_t

template<typename T>
typedef details::T0oT1oT2_define<T, const_t, const_t, cref_t> exprtk::parser< T >::cocov_t
private

Definition at line 18397 of file exprtk.hpp.

◆ conditional_node_t

template<typename T>
typedef details::conditional_node<T> exprtk::parser< T >::conditional_node_t
private

Definition at line 18325 of file exprtk.hpp.

◆ conditional_string_node_t

template<typename T>
typedef details::conditional_string_node<T> exprtk::parser< T >::conditional_string_node_t
private

Definition at line 18351 of file exprtk.hpp.

◆ cons_conditional_node_t

template<typename T>
typedef details::cons_conditional_node<T> exprtk::parser< T >::cons_conditional_node_t
private

Definition at line 18326 of file exprtk.hpp.

◆ cons_conditional_str_node_t

template<typename T>
typedef details::cons_conditional_str_node<T> exprtk::parser< T >::cons_conditional_str_node_t
private

Definition at line 18352 of file exprtk.hpp.

◆ const_string_range_node_t

template<typename T>
typedef details::const_string_range_node<T> exprtk::parser< T >::const_string_range_node_t
private

Definition at line 18346 of file exprtk.hpp.

◆ const_t

template<typename T>
typedef const T exprtk::parser< T >::const_t
private

Definition at line 18312 of file exprtk.hpp.

◆ cov_t

template<typename T>
typedef details::T0oT1_define<T, const_t, cref_t> exprtk::parser< T >::cov_t
private

Definition at line 18389 of file exprtk.hpp.

◆ covoc_t

template<typename T>
typedef details::T0oT1oT2_define<T, const_t, cref_t, const_t> exprtk::parser< T >::covoc_t
private

Definition at line 18396 of file exprtk.hpp.

◆ covocov_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, const_t, cref_t, const_t, cref_t> exprtk::parser< T >::covocov_t
private

Definition at line 18406 of file exprtk.hpp.

◆ covov_t

template<typename T>
typedef details::T0oT1oT2_define<T, const_t, cref_t, cref_t> exprtk::parser< T >::covov_t
private

Definition at line 18395 of file exprtk.hpp.

◆ covovoc_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, const_t, cref_t, cref_t, const_t> exprtk::parser< T >::covovoc_t
private

Definition at line 18408 of file exprtk.hpp.

◆ covovov_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, const_t, cref_t, cref_t, cref_t> exprtk::parser< T >::covovov_t
private

Definition at line 18404 of file exprtk.hpp.

◆ cref_t

template<typename T>
typedef const T& exprtk::parser< T >::cref_t
private

Definition at line 18311 of file exprtk.hpp.

◆ disabled_func_set_t

template<typename T>
typedef std::set<std::string,details::ilesscompare> exprtk::parser< T >::disabled_func_set_t
private

Definition at line 18386 of file exprtk.hpp.

◆ expression_node_ptr

template<typename T>
typedef expression_node_t* exprtk::parser< T >::expression_node_ptr
private

Definition at line 18363 of file exprtk.hpp.

◆ expression_node_t

template<typename T>
typedef details::expression_node<T> exprtk::parser< T >::expression_node_t
private

Definition at line 18319 of file exprtk.hpp.

◆ expression_t

template<typename T>
typedef expression<T> exprtk::parser< T >::expression_t
private

Definition at line 18364 of file exprtk.hpp.

◆ F

template<typename T>
typedef ifunction<T> exprtk::parser< T >::F
private

Definition at line 18313 of file exprtk.hpp.

◆ for_loop_bc_node_t

template<typename T>
typedef details::for_loop_bc_node<T> exprtk::parser< T >::for_loop_bc_node_t
private

Definition at line 18333 of file exprtk.hpp.

◆ for_loop_node_t

template<typename T>
typedef details::for_loop_node<T> exprtk::parser< T >::for_loop_node_t
private

Definition at line 18329 of file exprtk.hpp.

◆ functor_t

template<typename T>
typedef details::functor_t<T> exprtk::parser< T >::functor_t
private

Definition at line 18369 of file exprtk.hpp.

◆ generic_string_range_node_t

template<typename T>
typedef details::generic_string_range_node<T> exprtk::parser< T >::generic_string_range_node_t
private

Definition at line 18347 of file exprtk.hpp.

◆ GF

template<typename T>
typedef igeneric_function<T> exprtk::parser< T >::GF
private

Definition at line 18315 of file exprtk.hpp.

◆ ifunction_t

template<typename T>
typedef ifunction<T> exprtk::parser< T >::ifunction_t
private

Definition at line 18316 of file exprtk.hpp.

◆ igeneric_function_t

template<typename T>
typedef igeneric_function<T> exprtk::parser< T >::igeneric_function_t
private

Definition at line 18318 of file exprtk.hpp.

◆ inv_binary_op_map_t

template<typename T>
typedef std::map<binary_functor_t,operator_t> exprtk::parser< T >::inv_binary_op_map_t
private

Definition at line 18384 of file exprtk.hpp.

◆ ivararg_function_t

template<typename T>
typedef ivararg_function<T> exprtk::parser< T >::ivararg_function_t
private

Definition at line 18317 of file exprtk.hpp.

◆ literal_node_t

template<typename T>
typedef details::literal_node<T> exprtk::parser< T >::literal_node_t
private

Definition at line 18320 of file exprtk.hpp.

◆ operator_t

template<typename T>
typedef details::operator_type exprtk::parser< T >::operator_t
private

Definition at line 18375 of file exprtk.hpp.

◆ prsrhlpr_t

template<typename T>
typedef parser_helper exprtk::parser< T >::prsrhlpr_t
private

Definition at line 18413 of file exprtk.hpp.

◆ quaternary_functor_t

template<typename T>
typedef functor_t::qfunc_t exprtk::parser< T >::quaternary_functor_t
private

Definition at line 18370 of file exprtk.hpp.

◆ quaternary_node_t

template<typename T>
typedef details::quaternary_node<T> exprtk::parser< T >::quaternary_node_t
private

Definition at line 18324 of file exprtk.hpp.

◆ range_t

template<typename T>
typedef details::range_pack<T> exprtk::parser< T >::range_t
private

Definition at line 18341 of file exprtk.hpp.

◆ rebasevector_celem_node_t

template<typename T>
typedef details::rebasevector_celem_node<T> exprtk::parser< T >::rebasevector_celem_node_t
private

Definition at line 18339 of file exprtk.hpp.

◆ rebasevector_elem_node_t

template<typename T>
typedef details::rebasevector_elem_node<T> exprtk::parser< T >::rebasevector_elem_node_t
private

Definition at line 18338 of file exprtk.hpp.

◆ repeat_until_loop_bc_node_t

template<typename T>
typedef details::repeat_until_loop_bc_node<T> exprtk::parser< T >::repeat_until_loop_bc_node_t
private

Definition at line 18332 of file exprtk.hpp.

◆ repeat_until_loop_node_t

template<typename T>
typedef details::repeat_until_loop_node<T> exprtk::parser< T >::repeat_until_loop_node_t
private

Definition at line 18328 of file exprtk.hpp.

◆ results_context_t

template<typename T>
typedef results_context<T> exprtk::parser< T >::results_context_t
private

Definition at line 18411 of file exprtk.hpp.

◆ scand_node_t

template<typename T>
typedef details::scand_node<T> exprtk::parser< T >::scand_node_t
private

Definition at line 18360 of file exprtk.hpp.

◆ scor_node_t

template<typename T>
typedef details::scor_node<T> exprtk::parser< T >::scor_node_t
private

Definition at line 18361 of file exprtk.hpp.

◆ settings_t

template<typename T>
typedef settings_store exprtk::parser< T >::settings_t

Definition at line 20029 of file exprtk.hpp.

◆ sf3_map_t

template<typename T>
typedef std::map<std::string,std::pair<trinary_functor_t ,operator_t> > exprtk::parser< T >::sf3_map_t
private

Definition at line 18381 of file exprtk.hpp.

◆ sf4_map_t

template<typename T>
typedef std::map<std::string,std::pair<quaternary_functor_t,operator_t> > exprtk::parser< T >::sf4_map_t
private

Definition at line 18382 of file exprtk.hpp.

◆ string_concat_node_t

template<typename T>
typedef details::string_concat_node<T> exprtk::parser< T >::string_concat_node_t
private

Definition at line 18348 of file exprtk.hpp.

◆ string_literal_node_t

template<typename T>
typedef details::string_literal_node<T> exprtk::parser< T >::string_literal_node_t
private

Definition at line 18344 of file exprtk.hpp.

◆ string_range_node_t

template<typename T>
typedef details::string_range_node<T> exprtk::parser< T >::string_range_node_t
private

Definition at line 18345 of file exprtk.hpp.

◆ stringvar_node_t

template<typename T>
typedef details::stringvar_node<T> exprtk::parser< T >::stringvar_node_t
private

Definition at line 18343 of file exprtk.hpp.

◆ switch_node_t

template<typename T>
typedef details::switch_node<T> exprtk::parser< T >::switch_node_t
private

Definition at line 18335 of file exprtk.hpp.

◆ symbol_table_list_t

template<typename T>
typedef expression<T>::symtab_list_t exprtk::parser< T >::symbol_table_list_t
private

Definition at line 18366 of file exprtk.hpp.

◆ symbol_table_t

template<typename T>
typedef symbol_table<T> exprtk::parser< T >::symbol_table_t
private

Definition at line 18365 of file exprtk.hpp.

◆ token_t

template<typename T>
typedef lexer::token exprtk::parser< T >::token_t
private

Definition at line 18362 of file exprtk.hpp.

◆ trinary_functor_t

template<typename T>
typedef functor_t::tfunc_t exprtk::parser< T >::trinary_functor_t
private

Definition at line 18371 of file exprtk.hpp.

◆ trinary_node_t

template<typename T>
typedef details::trinary_node<T> exprtk::parser< T >::trinary_node_t
private

Definition at line 18323 of file exprtk.hpp.

◆ trinary_op_map_t

template<typename T>
typedef std::map<operator_t,trinary_functor_t> exprtk::parser< T >::trinary_op_map_t
private

Definition at line 18379 of file exprtk.hpp.

◆ unary_functor_t

template<typename T>
typedef functor_t::ufunc_t exprtk::parser< T >::unary_functor_t
private

Definition at line 18373 of file exprtk.hpp.

◆ unary_node_t

template<typename T>
typedef details::unary_node<T> exprtk::parser< T >::unary_node_t
private

Definition at line 18321 of file exprtk.hpp.

◆ unary_op_map_t

template<typename T>
typedef std::map<operator_t, unary_functor_t> exprtk::parser< T >::unary_op_map_t
private

Definition at line 18377 of file exprtk.hpp.

◆ VAF

template<typename T>
typedef ivararg_function<T> exprtk::parser< T >::VAF
private

Definition at line 18314 of file exprtk.hpp.

◆ variable_node_t

template<typename T>
typedef details::variable_node<T> exprtk::parser< T >::variable_node_t
private

Definition at line 18336 of file exprtk.hpp.

◆ vector_elem_node_t

template<typename T>
typedef details::vector_elem_node<T> exprtk::parser< T >::vector_elem_node_t
private

Definition at line 18337 of file exprtk.hpp.

◆ vector_holder_ptr

template<typename T>
typedef details::vector_holder<T>* exprtk::parser< T >::vector_holder_ptr
private

Definition at line 18367 of file exprtk.hpp.

◆ vector_node_t

template<typename T>
typedef details::vector_node<T> exprtk::parser< T >::vector_node_t
private

Definition at line 18340 of file exprtk.hpp.

◆ voc_t

template<typename T>
typedef details::T0oT1_define<T, cref_t, const_t> exprtk::parser< T >::voc_t
private

Definition at line 18390 of file exprtk.hpp.

◆ vococ_t

template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, const_t, const_t> exprtk::parser< T >::vococ_t
private

Definition at line 18398 of file exprtk.hpp.

◆ vococov_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, const_t, const_t, cref_t> exprtk::parser< T >::vococov_t
private

Definition at line 18409 of file exprtk.hpp.

◆ vocov_t

template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, const_t, cref_t> exprtk::parser< T >::vocov_t
private

Definition at line 18394 of file exprtk.hpp.

◆ vocovoc_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, const_t, cref_t, const_t> exprtk::parser< T >::vocovoc_t
private

Definition at line 18407 of file exprtk.hpp.

◆ vocovov_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, const_t, cref_t, cref_t> exprtk::parser< T >::vocovov_t
private

Definition at line 18403 of file exprtk.hpp.

◆ vov_t

template<typename T>
typedef details::T0oT1_define<T, cref_t, cref_t> exprtk::parser< T >::vov_t
private

Definition at line 18388 of file exprtk.hpp.

◆ vovoc_t

template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, cref_t, const_t> exprtk::parser< T >::vovoc_t
private

Definition at line 18393 of file exprtk.hpp.

◆ vovocov_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, cref_t, const_t, cref_t> exprtk::parser< T >::vovocov_t
private

Definition at line 18402 of file exprtk.hpp.

◆ vovov_t

template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, cref_t, cref_t> exprtk::parser< T >::vovov_t
private

Definition at line 18392 of file exprtk.hpp.

◆ vovovoc_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, cref_t, cref_t, const_t> exprtk::parser< T >::vovovoc_t
private

Definition at line 18401 of file exprtk.hpp.

◆ vovovov_t

template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, cref_t, cref_t, cref_t> exprtk::parser< T >::vovovov_t
private

Definition at line 18400 of file exprtk.hpp.

◆ while_loop_bc_node_t

template<typename T>
typedef details::while_loop_bc_node<T> exprtk::parser< T >::while_loop_bc_node_t
private

Definition at line 18331 of file exprtk.hpp.

◆ while_loop_node_t

template<typename T>
typedef details::while_loop_node<T> exprtk::parser< T >::while_loop_node_t
private

Definition at line 18327 of file exprtk.hpp.

Member Enumeration Documentation

◆ collect_type

template<typename T>
enum exprtk::parser::collect_type
Enumerator
e_ct_none 
e_ct_variables 
e_ct_functions 
e_ct_assignments 

Definition at line 19261 of file exprtk.hpp.

◆ precedence_level

template<typename T>
enum exprtk::parser::precedence_level
private
Enumerator
e_level00 
e_level01 
e_level02 
e_level03 
e_level04 
e_level05 
e_level06 
e_level07 
e_level08 
e_level09 
e_level10 
e_level11 
e_level12 
e_level13 
e_level14 

Definition at line 18292 of file exprtk.hpp.

◆ symbol_type

template<typename T>
enum exprtk::parser::symbol_type
Enumerator
e_st_unknown 
e_st_variable 
e_st_vector 
e_st_vecelem 
e_st_string 
e_st_function 
e_st_local_variable 
e_st_local_vector 
e_st_local_string 

Definition at line 19269 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ parser() [1/2]

template<typename T>
exprtk::parser< T >::parser ( const settings_t settings = settings_t())
inline

Definition at line 20031 of file exprtk.hpp.

◆ ~parser()

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

Definition at line 20066 of file exprtk.hpp.

◆ parser() [2/2]

template<typename T>
exprtk::parser< T >::parser ( const parser< T > &  )
private

Member Function Documentation

◆ compile() [1/2]

template<typename T>
bool exprtk::parser< T >::compile ( const std::string &  expression_string,
expression< T > &  expr 
)
inline

Definition at line 20133 of file exprtk.hpp.

◆ compile() [2/2]

template<typename T>
expression_t exprtk::parser< T >::compile ( const std::string &  expression_string,
symbol_table_t symtab 
)
inline

Definition at line 20229 of file exprtk.hpp.

◆ construct_subexpr()

template<typename T>
std::string exprtk::parser< T >::construct_subexpr ( lexer::token begin_token,
lexer::token end_token 
)
inlineprivate

Definition at line 20608 of file exprtk.hpp.

◆ dec()

template<typename T>
dependent_entity_collector& exprtk::parser< T >::dec ( )
inline

Definition at line 20412 of file exprtk.hpp.

◆ disable_unknown_symbol_resolver()

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

Definition at line 20452 of file exprtk.hpp.

◆ enable_unknown_symbol_resolver() [1/2]

template<typename T>
void exprtk::parser< T >::enable_unknown_symbol_resolver ( unknown_symbol_resolver usr = reinterpret_cast<unknown_symbol_resolver*>(0))
inline

Definition at line 20437 of file exprtk.hpp.

◆ enable_unknown_symbol_resolver() [2/2]

template<typename T>
void exprtk::parser< T >::enable_unknown_symbol_resolver ( unknown_symbol_resolver usr)
inline

Definition at line 20447 of file exprtk.hpp.

◆ error()

template<typename T>
std::string exprtk::parser< T >::error ( ) const
inline

Definition at line 20397 of file exprtk.hpp.

◆ error_count()

template<typename T>
std::size_t exprtk::parser< T >::error_count ( ) const
inline

Definition at line 20407 of file exprtk.hpp.

◆ error_node()

template<typename T>
static expression_node_ptr exprtk::parser< T >::error_node ( )
inlinestaticprivate

Definition at line 20941 of file exprtk.hpp.

◆ get_error()

template<typename T>
parser_error::type exprtk::parser< T >::get_error ( const std::size_t &  index) const
inline

Definition at line 20389 of file exprtk.hpp.

◆ init_precompilation()

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

Definition at line 20069 of file exprtk.hpp.

◆ is_invalid_arithmetic_operation()

template<typename T>
bool exprtk::parser< T >::is_invalid_arithmetic_operation ( const details::operator_type  operation) const
inlineprivate

Definition at line 20501 of file exprtk.hpp.

◆ is_invalid_assignment_operation()

template<typename T>
bool exprtk::parser< T >::is_invalid_assignment_operation ( const details::operator_type  operation) const
inlineprivate

Definition at line 20506 of file exprtk.hpp.

◆ is_invalid_inequality_operation()

template<typename T>
bool exprtk::parser< T >::is_invalid_inequality_operation ( const details::operator_type  operation) const
inlineprivate

Definition at line 20511 of file exprtk.hpp.

◆ load_binary_operations_map()

template<typename T>
void exprtk::parser< T >::load_binary_operations_map ( binary_op_map_t m)
inlineprivate

Definition at line 35147 of file exprtk.hpp.

◆ load_inv_binary_operations_map()

template<typename T>
void exprtk::parser< T >::load_inv_binary_operations_map ( inv_binary_op_map_t m)
inlineprivate

Definition at line 35175 of file exprtk.hpp.

◆ load_sf3_map()

template<typename T>
void exprtk::parser< T >::load_sf3_map ( sf3_map_t sf3_map)
inlineprivate

Definition at line 35203 of file exprtk.hpp.

◆ load_sf4_map()

template<typename T>
void exprtk::parser< T >::load_sf4_map ( sf4_map_t sf4_map)
inlineprivate

Definition at line 35227 of file exprtk.hpp.

◆ load_unary_operations_map()

template<typename T>
void exprtk::parser< T >::load_unary_operations_map ( unary_op_map_t m)
inlineprivate

Definition at line 35100 of file exprtk.hpp.

◆ local_variable_is_shadowed()

template<typename T>
bool exprtk::parser< T >::local_variable_is_shadowed ( const std::string &  symbol)
inlineprivate

Definition at line 24558 of file exprtk.hpp.

◆ lodge_symbol()

template<typename T>
void exprtk::parser< T >::lodge_symbol ( const std::string &  symbol,
const symbol_type  st 
)
inlineprivate

Definition at line 23006 of file exprtk.hpp.

◆ operator=()

template<typename T>
parser<T>& exprtk::parser< T >::operator= ( const parser< T > &  )
private

◆ parse_base_function_call()

template<typename T>
template<std::size_t MaxNumberofParameters>
std::size_t exprtk::parser< T >::parse_base_function_call ( expression_node_ptr(&)  param_list[MaxNumberofParameters],
const std::string &  function_name = "" 
)
inlineprivate

Definition at line 21245 of file exprtk.hpp.

◆ parse_base_operation()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_base_operation ( )
inlineprivate

Definition at line 21317 of file exprtk.hpp.

◆ parse_branch()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_branch ( precedence_level  precedence = e_level00)
inlineprivate

Definition at line 25686 of file exprtk.hpp.

◆ parse_break_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_break_statement ( )
inlineprivate

Definition at line 24060 of file exprtk.hpp.

◆ parse_conditional_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_conditional_statement ( )
inlineprivate

Definition at line 21628 of file exprtk.hpp.

◆ parse_conditional_statement_01()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_conditional_statement_01 ( expression_node_ptr  condition)
inlineprivate

Definition at line 21384 of file exprtk.hpp.

◆ parse_conditional_statement_02()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_conditional_statement_02 ( expression_node_ptr  condition)
inlineprivate

Definition at line 21477 of file exprtk.hpp.

◆ parse_const_string()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_const_string ( )
inlineprivate

Definition at line 23107 of file exprtk.hpp.

◆ parse_continue_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_continue_statement ( )
inlineprivate

Definition at line 24125 of file exprtk.hpp.

◆ parse_corpus()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_corpus ( )
inlineprivate

Definition at line 20530 of file exprtk.hpp.

◆ parse_define_string_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_define_string_statement ( const std::string &  str_name,
expression_node_ptr  initialisation_expression 
)
inlineprivate

Definition at line 24480 of file exprtk.hpp.

◆ parse_define_var_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_define_var_statement ( )
inlineprivate

Definition at line 24564 of file exprtk.hpp.

◆ parse_define_vector_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_define_vector_statement ( const std::string &  vec_name)
inlineprivate

Definition at line 24149 of file exprtk.hpp.

◆ parse_expression()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_expression ( precedence_level  precedence = e_level00)
inlineprivate

Definition at line 20645 of file exprtk.hpp.

◆ parse_for_loop()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_for_loop ( )
inlineprivate

Definition at line 22024 of file exprtk.hpp.

◆ parse_function_call()

template<typename T>
template<std::size_t NumberofParameters>
expression_node_ptr exprtk::parser< T >::parse_function_call ( ifunction< T > *  function,
const std::string &  function_name 
)
inlineprivate

Definition at line 21130 of file exprtk.hpp.

◆ parse_function_call_0()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_function_call_0 ( ifunction< T > *  function,
const std::string &  function_name 
)
inlineprivate

Definition at line 21217 of file exprtk.hpp.

◆ parse_function_invocation()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_function_invocation ( ifunction< T > *  function,
const std::string &  function_name 
)
inlineprivate

Definition at line 21077 of file exprtk.hpp.

◆ parse_generic_function_call()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_generic_function_call ( igeneric_function< T > *  function,
const std::string &  function_name 
)
inlineprivate

Definition at line 23631 of file exprtk.hpp.

◆ parse_igeneric_function_params()

template<typename T>
bool exprtk::parser< T >::parse_igeneric_function_params ( std::string &  param_type_list,
std::vector< expression_node_ptr > &  arg_list,
const std::string  function_name,
igeneric_function< T > *  function,
const type_checker tc 
)
inlineprivate

Definition at line 23752 of file exprtk.hpp.

◆ parse_multi_sequence()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_multi_sequence ( const std::string &  source = "")
inlineprivate

Definition at line 22751 of file exprtk.hpp.

◆ parse_multi_switch_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_multi_switch_statement ( )
inlineprivate

Definition at line 22403 of file exprtk.hpp.

◆ parse_null_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_null_statement ( )
inlineprivate

Definition at line 24053 of file exprtk.hpp.

◆ parse_overload_function_call()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_overload_function_call ( igeneric_function< T > *  function,
const std::string &  function_name 
)
inlineprivate

Definition at line 23869 of file exprtk.hpp.

◆ parse_pending_string_rangesize()

template<typename T>
void exprtk::parser< T >::parse_pending_string_rangesize ( expression_node_ptr expression)
inlineprivate

Definition at line 22649 of file exprtk.hpp.

◆ parse_range()

template<typename T>
bool exprtk::parser< T >::parse_range ( range_t rp,
const bool  skip_lsqr = false 
)
inlineprivate

Definition at line 22831 of file exprtk.hpp.

◆ parse_repeat_until_loop()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_repeat_until_loop ( )
inlineprivate

Definition at line 21868 of file exprtk.hpp.

◆ parse_return_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_return_statement ( )
inlineprivate

Definition at line 25067 of file exprtk.hpp.

◆ parse_special_function()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_special_function ( )
inlineprivate

Definition at line 24008 of file exprtk.hpp.

◆ parse_string()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_string ( )
inlineprivate

Definition at line 23013 of file exprtk.hpp.

◆ parse_string_function_call()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_string_function_call ( igeneric_function< T > *  function,
const std::string &  function_name 
)
inlineprivate

Definition at line 23817 of file exprtk.hpp.

◆ parse_string_range_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_string_range_statement ( expression_node_ptr expression)
inlineprivate

Definition at line 22597 of file exprtk.hpp.

◆ parse_swap_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_swap_statement ( )
inlineprivate

Definition at line 24833 of file exprtk.hpp.

◆ parse_switch_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_switch_statement ( )
inlineprivate

Definition at line 22256 of file exprtk.hpp.

◆ parse_symbol()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_symbol ( )
inlineprivate

Definition at line 25578 of file exprtk.hpp.

◆ parse_symtab_symbol()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_symtab_symbol ( )
inlineprivate

Definition at line 25265 of file exprtk.hpp.

◆ parse_ternary_conditional_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_ternary_conditional_statement ( expression_node_ptr  condition)
inlineprivate

Definition at line 21689 of file exprtk.hpp.

◆ parse_uninitialised_var_statement()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_uninitialised_var_statement ( const std::string &  var_name)
inlineprivate

Definition at line 24747 of file exprtk.hpp.

◆ parse_vararg_function()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_vararg_function ( )
inlineprivate

Definition at line 22516 of file exprtk.hpp.

◆ parse_vararg_function_call()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_vararg_function_call ( ivararg_function< T > *  vararg_function,
const std::string &  vararg_function_name 
)
inlineprivate

Definition at line 23263 of file exprtk.hpp.

◆ parse_vector()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_vector ( )
inlineprivate

Definition at line 23176 of file exprtk.hpp.

◆ parse_while_loop()

template<typename T>
expression_node_ptr exprtk::parser< T >::parse_while_loop ( )
inlineprivate

Definition at line 21786 of file exprtk.hpp.

◆ post_bracket_process()

template<typename T>
bool exprtk::parser< T >::post_bracket_process ( const typename token_t::token_type token,
expression_node_ptr branch 
)
inlineprivate

Definition at line 25213 of file exprtk.hpp.

◆ post_variable_process()

template<typename T>
bool exprtk::parser< T >::post_variable_process ( const std::string &  symbol)
inlineprivate

Definition at line 25188 of file exprtk.hpp.

◆ process_lexer_errors()

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

Definition at line 20240 of file exprtk.hpp.

◆ register_local_vars()

template<typename T>
void exprtk::parser< T >::register_local_vars ( expression< T > &  e)
inlineprivate

Definition at line 35035 of file exprtk.hpp.

◆ register_return_results()

template<typename T>
void exprtk::parser< T >::register_return_results ( expression< T > &  e)
inlineprivate

Definition at line 35094 of file exprtk.hpp.

◆ remove_last_error()

template<typename T>
void exprtk::parser< T >::remove_last_error ( )
inlineprivate

Definition at line 35019 of file exprtk.hpp.

◆ remove_replace_symbol()

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

Definition at line 20427 of file exprtk.hpp.

◆ replace_symbol()

template<typename T>
bool exprtk::parser< T >::replace_symbol ( const std::string &  old_symbol,
const std::string &  new_symbol 
)
inline

Definition at line 20417 of file exprtk.hpp.

◆ results_ctx()

template<typename T>
results_context_t& exprtk::parser< T >::results_ctx ( )
inlineprivate

Definition at line 35267 of file exprtk.hpp.

◆ return_cleanup()

template<typename T>
void exprtk::parser< T >::return_cleanup ( )
inlineprivate

Definition at line 35277 of file exprtk.hpp.

◆ run_assemblies()

template<typename T>
bool exprtk::parser< T >::run_assemblies ( )
inline

Definition at line 20277 of file exprtk.hpp.

◆ set_error()

template<typename T>
void exprtk::parser< T >::set_error ( const parser_error::type error_type)
inlineprivate

Definition at line 35014 of file exprtk.hpp.

◆ set_synthesis_error()

template<typename T>
void exprtk::parser< T >::set_synthesis_error ( const std::string &  synthesis_error_message)
inlineprivate

Definition at line 35027 of file exprtk.hpp.

◆ settings()

template<typename T>
settings_store& exprtk::parser< T >::settings ( )
inline

Definition at line 20384 of file exprtk.hpp.

◆ simplify()

template<typename T>
template<typename Allocator1 , typename Allocator2 , template< typename, typename > class Sequence>
expression_node_ptr exprtk::parser< T >::simplify ( Sequence< expression_node_ptr, Allocator1 > &  expression_list,
Sequence< bool, Allocator2 > &  side_effect_list,
const bool  specialise_on_final_type = false 
)
inlineprivate

Definition at line 22672 of file exprtk.hpp.

◆ simplify_unary_negation_branch()

template<typename T>
bool exprtk::parser< T >::simplify_unary_negation_branch ( expression_node_ptr node)
inlineprivate

Definition at line 20886 of file exprtk.hpp.

◆ valid_base_operation()

template<typename T>
bool exprtk::parser< T >::valid_base_operation ( const std::string &  symbol) const
inlineprivate

Definition at line 20460 of file exprtk.hpp.

◆ valid_vararg_operation()

template<typename T>
bool exprtk::parser< T >::valid_vararg_operation ( const std::string &  symbol) const
inlineprivate

Definition at line 20474 of file exprtk.hpp.

Friends And Related Function Documentation

◆ details::disable_type_checking

template<typename T>
template<typename ParserType >
void details::disable_type_checking ( ParserType &  p)
friend

Member Data Documentation

◆ base_ops_map_

template<typename T>
base_ops_map_t exprtk::parser< T >::base_ops_map_
private

Definition at line 35307 of file exprtk.hpp.

◆ binary_op_map_

template<typename T>
binary_op_map_t exprtk::parser< T >::binary_op_map_
private

Definition at line 35309 of file exprtk.hpp.

◆ bracket_checker_

template<typename T>
lexer::helper::bracket_checker exprtk::parser< T >::bracket_checker_
private

Definition at line 35322 of file exprtk.hpp.

◆ brkcnt_list_

template<typename T>
std::deque<bool> exprtk::parser< T >::brkcnt_list_
private

Definition at line 35301 of file exprtk.hpp.

◆ commutative_inserter_

template<typename T>
lexer::helper::commutative_inserter exprtk::parser< T >::commutative_inserter_
private

Definition at line 35318 of file exprtk.hpp.

◆ dec_

template<typename T>
dependent_entity_collector exprtk::parser< T >::dec_
private

Definition at line 35299 of file exprtk.hpp.

◆ default_precedence

template<typename T>
const precedence_level exprtk::parser< T >::default_precedence = e_level00
staticprivate

Definition at line 20620 of file exprtk.hpp.

◆ default_usr_

template<typename T>
unknown_symbol_resolver exprtk::parser< T >::default_usr_
private

Definition at line 35306 of file exprtk.hpp.

◆ error_list_

template<typename T>
std::deque<parser_error::type> exprtk::parser< T >::error_list_
private

Definition at line 35300 of file exprtk.hpp.

◆ expression_generator_

template<typename T>
expression_generator<T> exprtk::parser< T >::expression_generator_
private

Definition at line 35296 of file exprtk.hpp.

◆ helper_assembly_

template<typename T>
lexer::helper::helper_assembly exprtk::parser< T >::helper_assembly_
private

Definition at line 35316 of file exprtk.hpp.

◆ inv_binary_op_map_

template<typename T>
inv_binary_op_map_t exprtk::parser< T >::inv_binary_op_map_
private

Definition at line 35310 of file exprtk.hpp.

◆ node_allocator_

template<typename T>
details::node_allocator exprtk::parser< T >::node_allocator_
private

Definition at line 35297 of file exprtk.hpp.

◆ numeric_checker_

template<typename T>
lexer::helper::numeric_checker exprtk::parser< T >::numeric_checker_
private

Definition at line 35323 of file exprtk.hpp.

◆ operator_joiner_2_

template<typename T>
lexer::helper::operator_joiner exprtk::parser< T >::operator_joiner_2_
private

Definition at line 35319 of file exprtk.hpp.

◆ operator_joiner_3_

template<typename T>
lexer::helper::operator_joiner exprtk::parser< T >::operator_joiner_3_
private

Definition at line 35320 of file exprtk.hpp.

◆ resolve_unknown_symbol_

template<typename T>
bool exprtk::parser< T >::resolve_unknown_symbol_
private

Definition at line 35303 of file exprtk.hpp.

◆ results_context_

template<typename T>
results_context_t* exprtk::parser< T >::results_context_
private

Definition at line 35304 of file exprtk.hpp.

◆ sem_

template<typename T>
scope_element_manager exprtk::parser< T >::sem_
private

Definition at line 35314 of file exprtk.hpp.

◆ sequence_validator_

template<typename T>
lexer::helper::sequence_validator exprtk::parser< T >::sequence_validator_
private

Definition at line 35324 of file exprtk.hpp.

◆ sequence_validator_3tkns_

template<typename T>
lexer::helper::sequence_validator_3tokens exprtk::parser< T >::sequence_validator_3tkns_
private

Definition at line 35325 of file exprtk.hpp.

◆ settings_

template<typename T>
settings_store exprtk::parser< T >::settings_
private

Definition at line 35295 of file exprtk.hpp.

◆ sf3_map_

template<typename T>
sf3_map_t exprtk::parser< T >::sf3_map_
private

Definition at line 35311 of file exprtk.hpp.

◆ sf4_map_

template<typename T>
sf4_map_t exprtk::parser< T >::sf4_map_
private

Definition at line 35312 of file exprtk.hpp.

◆ state_

template<typename T>
parser_state exprtk::parser< T >::state_
private

Definition at line 35302 of file exprtk.hpp.

◆ symbol_replacer_

template<typename T>
lexer::helper::symbol_replacer exprtk::parser< T >::symbol_replacer_
private

Definition at line 35321 of file exprtk.hpp.

◆ symtab_store_

template<typename T>
symtab_store exprtk::parser< T >::symtab_store_
private

Definition at line 35298 of file exprtk.hpp.

◆ synthesis_error_

template<typename T>
std::string exprtk::parser< T >::synthesis_error_
private

Definition at line 35313 of file exprtk.hpp.

◆ unary_op_map_

template<typename T>
unary_op_map_t exprtk::parser< T >::unary_op_map_
private

Definition at line 35308 of file exprtk.hpp.

◆ unknown_symbol_resolver_

template<typename T>
unknown_symbol_resolver* exprtk::parser< T >::unknown_symbol_resolver_
private

Definition at line 35305 of file exprtk.hpp.


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