Main MRPT website > C++ reference for MRPT 1.5.3
List of all members | Classes | Public Types | Public Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | Friends
exprtk::parser< T > Class Template Reference

Detailed Description

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

Definition at line 15851 of file exprtk.hpp.

#include <mrpt/otherlibs/exprtk.hpp>

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

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
 
enum  token_advance_mode { e_hold = 0, e_advance = 1 }
 
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)
 
void process_lexer_errors ()
 
bool run_assemblies ()
 
settings_storesettings ()
 
parser_error::type get_error (const std::size_t &index)
 
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 ()
 
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 token_is_then_assign (const token_t::token_type &ttype, std::string &token, const token_advance_mode mode=e_advance)
 
template<typename Allocator , template< typename, typename > class Container>
bool token_is_then_assign (const token_t::token_type &ttype, Container< std::string, Allocator > &token_list, 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 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)
 
bool valid_vararg_operation (const std::string &symbol)
 
bool is_invalid_arithmetic_operation (const details::operator_type operation)
 
bool is_invalid_assignment_operation (const details::operator_type operation)
 
bool is_invalid_inequality_operation (const details::operator_type operation)
 
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])
 
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)
 
expression_node_ptr parse_string_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_
 

Static Private Attributes

static const precedence_level default_precedence = e_level00
 

Friends

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

Member Typedef Documentation

◆ assignment_node_t

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

Definition at line 17975 of file exprtk.hpp.

◆ assignment_rebasevec_celem_node_t

Definition at line 17978 of file exprtk.hpp.

◆ assignment_rebasevec_elem_node_t

Definition at line 17977 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 17970 of file exprtk.hpp.

◆ assignment_string_range_node_t

Definition at line 17971 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 17976 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 17979 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 17980 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 18005 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 17992 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 17943 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 17998 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 18017 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 17946 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 17972 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 17947 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 17973 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 17967 of file exprtk.hpp.

◆ const_t

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

Definition at line 17933 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 18009 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 18016 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 18026 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 18015 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 18028 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 18024 of file exprtk.hpp.

◆ cref_t

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

Definition at line 17932 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 18006 of file exprtk.hpp.

◆ expression_node_ptr

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

Definition at line 17984 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 17940 of file exprtk.hpp.

◆ F

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

Definition at line 17934 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 17954 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 17950 of file exprtk.hpp.

◆ functor_t

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

Definition at line 17989 of file exprtk.hpp.

◆ generator_t

typedef generator exprtk::lexer::parser_helper::generator_t
inherited

Definition at line 3840 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 17968 of file exprtk.hpp.

◆ GF

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

Definition at line 17936 of file exprtk.hpp.

◆ ifunction_t

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

Definition at line 17937 of file exprtk.hpp.

◆ igeneric_function_t

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

Definition at line 17939 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 18004 of file exprtk.hpp.

◆ ivararg_function_t

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

Definition at line 17938 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 17941 of file exprtk.hpp.

◆ operator_t

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

Definition at line 17995 of file exprtk.hpp.

◆ prsrhlpr_t

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

Definition at line 18033 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 17990 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 17945 of file exprtk.hpp.

◆ range_t

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

Definition at line 17962 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 17960 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 17959 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 17953 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 17949 of file exprtk.hpp.

◆ results_context_t

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

Definition at line 18031 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 17981 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 17982 of file exprtk.hpp.

◆ settings_t

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

Definition at line 19625 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 18001 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 18002 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 17969 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 17965 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 17966 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 17964 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 17956 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 17986 of file exprtk.hpp.

◆ symbol_table_t

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

Definition at line 17985 of file exprtk.hpp.

◆ token_t

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

Definition at line 17983 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 17991 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 17944 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 17999 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 17993 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 17942 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 17997 of file exprtk.hpp.

◆ VAF

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

Definition at line 17935 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 17957 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 17958 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 17987 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 17961 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 18010 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 18018 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 18029 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 18014 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 18027 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 18023 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 18008 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 18013 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 18022 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 18012 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 18021 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 18020 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 17952 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 17948 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 18855 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 17913 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 18863 of file exprtk.hpp.

◆ token_advance_mode

Enumerator
e_hold 
e_advance 

Definition at line 3888 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 19627 of file exprtk.hpp.

References exprtk::details::load_operations_map().

◆ ~parser()

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

Definition at line 19662 of file exprtk.hpp.

◆ parser() [2/2]

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

Member Function Documentation

◆ advance_token()

void exprtk::lexer::parser_helper::advance_token ( const token_advance_mode  mode)
inlineinherited

Definition at line 3894 of file exprtk.hpp.

◆ compile()

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

◆ construct_subexpr()

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

◆ current_token()

const token_t& exprtk::lexer::parser_helper::current_token ( ) const
inlineinherited

◆ dec()

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

Definition at line 19968 of file exprtk.hpp.

◆ disable_unknown_symbol_resolver()

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

Definition at line 20008 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 19993 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 20003 of file exprtk.hpp.

◆ error()

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

Definition at line 19953 of file exprtk.hpp.

◆ error_count()

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

Definition at line 19963 of file exprtk.hpp.

◆ error_node()

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

◆ get_error()

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

Definition at line 19945 of file exprtk.hpp.

◆ init()

bool exprtk::lexer::parser_helper::init ( const std::string &  str)
inlineinherited

Definition at line 3842 of file exprtk.hpp.

◆ init_precompilation()

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

◆ is_invalid_arithmetic_operation()

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

Definition at line 20057 of file exprtk.hpp.

◆ is_invalid_assignment_operation()

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

Definition at line 20062 of file exprtk.hpp.

◆ is_invalid_inequality_operation()

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

Definition at line 20067 of file exprtk.hpp.

References exprtk_debug.

◆ lexer() [1/2]

generator_t& exprtk::lexer::parser_helper::lexer ( )
inlineinherited

Definition at line 3856 of file exprtk.hpp.

◆ lexer() [2/2]

const generator_t& exprtk::lexer::parser_helper::lexer ( ) const
inlineinherited

Definition at line 3861 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

◆ load_inv_binary_operations_map()

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

◆ load_sf3_map()

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

Definition at line 34003 of file exprtk.hpp.

References register_sf3, and register_sf3_extid.

◆ load_sf4_map()

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

Definition at line 34027 of file exprtk.hpp.

References register_sf4, and register_sf4ext.

◆ load_unary_operations_map()

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

◆ local_variable_is_shadowed()

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

◆ lodge_symbol()

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

Definition at line 22432 of file exprtk.hpp.

◆ next_token()

void exprtk::lexer::parser_helper::next_token ( )
inlineinherited

◆ 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])
inlineprivate

◆ parse_base_operation()

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

◆ parse_branch()

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

◆ parse_break_statement()

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

◆ parse_conditional_statement()

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

◆ parse_conditional_statement_01()

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

◆ parse_conditional_statement_02()

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

◆ parse_const_string()

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

◆ parse_continue_statement()

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

◆ parse_corpus()

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

◆ 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

◆ parse_define_var_statement()

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

◆ parse_define_vector_statement()

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

◆ parse_expression()

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

◆ parse_for_loop()

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

◆ 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

◆ 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

◆ parse_function_invocation()

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

◆ 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

◆ parse_multi_sequence()

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

◆ parse_multi_switch_statement()

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

◆ parse_null_statement()

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

Definition at line 23279 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 22086 of file exprtk.hpp.

References exprtk::details::is_generally_string_node().

◆ parse_range()

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

◆ parse_repeat_until_loop()

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

◆ parse_return_statement()

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

◆ parse_special_function()

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

◆ parse_string()

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

◆ 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

◆ parse_string_range_statement()

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

◆ parse_swap_statement()

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

◆ parse_switch_statement()

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

◆ parse_symbol()

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

◆ parse_symtab_symbol()

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

◆ parse_ternary_conditional_statement()

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

◆ parse_uninitialised_var_statement()

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

◆ parse_vararg_function()

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

◆ 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

◆ parse_vector()

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

◆ parse_while_loop()

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

◆ peek_token_is() [1/2]

bool exprtk::lexer::parser_helper::peek_token_is ( const token_t::token_type ttype)
inlineinherited

Definition at line 3965 of file exprtk.hpp.

◆ peek_token_is() [2/2]

bool exprtk::lexer::parser_helper::peek_token_is ( const std::string &  s)
inlineinherited

Definition at line 3970 of file exprtk.hpp.

References exprtk::details::imatch().

◆ 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

◆ post_variable_process()

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

◆ process_lexer_errors()

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

◆ register_local_vars()

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

◆ register_return_results()

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

Definition at line 33894 of file exprtk.hpp.

References exprtk::expression< T >::register_return_results().

◆ remove_last_error()

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

Definition at line 33819 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 19983 of file exprtk.hpp.

References exprtk::details::is_reserved_word().

◆ replace_symbol()

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

◆ restore_token()

void exprtk::lexer::parser_helper::restore_token ( )
inlineinherited

Definition at line 3872 of file exprtk.hpp.

◆ results_ctx()

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

Definition at line 34067 of file exprtk.hpp.

◆ return_cleanup()

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

Definition at line 34077 of file exprtk.hpp.

◆ run_assemblies()

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

◆ set_error()

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

◆ set_synthesis_error()

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

Definition at line 33827 of file exprtk.hpp.

◆ settings()

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

Definition at line 19940 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

◆ simplify_unary_negation_branch()

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

◆ store_token()

void exprtk::lexer::parser_helper::store_token ( )
inlineinherited

Definition at line 3866 of file exprtk.hpp.

◆ token_is() [1/2]

bool exprtk::lexer::parser_helper::token_is ( const token_t::token_type ttype,
const token_advance_mode  mode = e_advance 
)
inlineinherited

◆ token_is() [2/2]

bool exprtk::lexer::parser_helper::token_is ( const token_t::token_type ttype,
const std::string &  value,
const token_advance_mode  mode = e_advance 
)
inlineinherited

Definition at line 3914 of file exprtk.hpp.

References exprtk::details::imatch().

◆ token_is_then_assign() [1/2]

bool exprtk::lexer::parser_helper::token_is_then_assign ( const token_t::token_type ttype,
std::string &  token,
const token_advance_mode  mode = e_advance 
)
inlineinherited

Definition at line 3931 of file exprtk.hpp.

◆ token_is_then_assign() [2/2]

template<typename Allocator , template< typename, typename > class Container>
bool exprtk::lexer::parser_helper::token_is_then_assign ( const token_t::token_type ttype,
Container< std::string, Allocator > &  token_list,
const token_advance_mode  mode = e_advance 
)
inlineinherited

Definition at line 3949 of file exprtk.hpp.

◆ valid_base_operation()

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

Definition at line 20016 of file exprtk.hpp.

◆ valid_vararg_operation()

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

Definition at line 20030 of file exprtk.hpp.

References exprtk::details::imatch().

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

◆ binary_op_map_

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

Definition at line 34109 of file exprtk.hpp.

◆ bracket_checker_

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

Definition at line 34122 of file exprtk.hpp.

◆ brkcnt_list_

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

Definition at line 34101 of file exprtk.hpp.

◆ commutative_inserter_

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

Definition at line 34118 of file exprtk.hpp.

◆ dec_

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

Definition at line 34099 of file exprtk.hpp.

◆ default_precedence

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

Definition at line 20177 of file exprtk.hpp.

◆ default_usr_

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

Definition at line 34106 of file exprtk.hpp.

◆ error_list_

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

Definition at line 34100 of file exprtk.hpp.

◆ expression_generator_

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

◆ helper_assembly_

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

Definition at line 34116 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 34110 of file exprtk.hpp.

◆ node_allocator_

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

Definition at line 34097 of file exprtk.hpp.

◆ numeric_checker_

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

Definition at line 34123 of file exprtk.hpp.

◆ operator_joiner_2_

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

Definition at line 34119 of file exprtk.hpp.

◆ operator_joiner_3_

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

Definition at line 34120 of file exprtk.hpp.

◆ resolve_unknown_symbol_

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

Definition at line 34103 of file exprtk.hpp.

◆ results_context_

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

Definition at line 34104 of file exprtk.hpp.

◆ sem_

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

Definition at line 34114 of file exprtk.hpp.

◆ sequence_validator_

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

Definition at line 34124 of file exprtk.hpp.

◆ settings_

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

Definition at line 34095 of file exprtk.hpp.

Referenced by exprtk::parser< T >::expression_generator< Type >::synthesize_vovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covoc_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_cocov_expression1::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vococ_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vovocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covocov_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_vocovoc_expression0::process(), exprtk::parser< T >::expression_generator< Type >::synthesize_covovoc_expression0::process(), and exprtk::parser< T >::expression_generator< Type >::synthesize_vococov_expression0::process().

◆ sf3_map_

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

Definition at line 34111 of file exprtk.hpp.

◆ sf4_map_

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

Definition at line 34112 of file exprtk.hpp.

◆ state_

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

Definition at line 34102 of file exprtk.hpp.

◆ symbol_replacer_

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

Definition at line 34121 of file exprtk.hpp.

◆ symtab_store_

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

Definition at line 34098 of file exprtk.hpp.

◆ synthesis_error_

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

Definition at line 34113 of file exprtk.hpp.

◆ unary_op_map_

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

Definition at line 34108 of file exprtk.hpp.

◆ unknown_symbol_resolver_

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

Definition at line 34105 of file exprtk.hpp.




Page generated by Doxygen 1.8.13 for MRPT 1.5.3 at Mon Oct 30 10:27:08 UTC 2017