VR-Vantage 3.0 API Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
Inheritance diagram for exprtk::parser< T >:
Inheritance graph
[legend]

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_t
unary_op_map_t
typedef std::map< operator_t,
binary_functor_t
binary_op_map_t
typedef std::map< operator_t,
trinary_functor_t
trinary_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_t
inv_binary_op_map_t
typedef std::multimap
< std::string,
details::base_operation_t,
details::ilesscompare
base_ops_map_t
typedef std::set< std::string,
details::ilesscompare
disabled_func_set_t
typedef details::T0oT1_define
< T, cref_t, cref_t
vov_t
typedef details::T0oT1_define
< T, const_t, cref_t
cov_t
typedef details::T0oT1_define
< T, cref_t, const_t
voc_t
typedef
details::T0oT1oT2_define< T,
cref_t, cref_t, cref_t
vovov_t
typedef
details::T0oT1oT2_define< T,
cref_t, cref_t, const_t
vovoc_t
typedef
details::T0oT1oT2_define< T,
cref_t, const_t, cref_t
vocov_t
typedef
details::T0oT1oT2_define< T,
const_t, cref_t, cref_t
covov_t
typedef
details::T0oT1oT2_define< T,
const_t, cref_t, const_t
covoc_t
typedef
details::T0oT1oT2_define< T,
const_t, const_t, cref_t
cocov_t
typedef
details::T0oT1oT2_define< T,
cref_t, const_t, const_t
vococ_t
typedef
details::T0oT1oT2oT3_define< T,
cref_t, cref_t, cref_t, cref_t
vovovov_t
typedef
details::T0oT1oT2oT3_define< T,
cref_t, cref_t, cref_t,
const_t
vovovoc_t
typedef
details::T0oT1oT2oT3_define< T,
cref_t, cref_t, const_t,
cref_t
vovocov_t
typedef
details::T0oT1oT2oT3_define< T,
cref_t, const_t, cref_t,
cref_t
vocovov_t
typedef
details::T0oT1oT2oT3_define< T,
const_t, cref_t, cref_t,
cref_t
covovov_t
typedef
details::T0oT1oT2oT3_define< T,
const_t, cref_t, const_t,
cref_t
covocov_t
typedef
details::T0oT1oT2oT3_define< T,
cref_t, const_t, cref_t,
const_t
vocovoc_t
typedef
details::T0oT1oT2oT3_define< T,
const_t, cref_t, cref_t,
const_t
covovoc_t
typedef
details::T0oT1oT2oT3_define< T,
cref_t, const_t, const_t,
cref_t
vococov_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< boolbrkcnt_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)

Member Typedef Documentation

template<typename T>
typedef const T& exprtk::parser< T >::cref_t
private
template<typename T>
typedef const T exprtk::parser< T >::const_t
private
template<typename T>
typedef ifunction<T> exprtk::parser< T >::F
private
template<typename T>
typedef ivararg_function<T> exprtk::parser< T >::VAF
private
template<typename T>
typedef igeneric_function<T> exprtk::parser< T >::GF
private
template<typename T>
typedef ifunction<T> exprtk::parser< T >::ifunction_t
private
template<typename T>
typedef ivararg_function<T> exprtk::parser< T >::ivararg_function_t
private
template<typename T>
typedef igeneric_function<T> exprtk::parser< T >::igeneric_function_t
private
template<typename T>
typedef details::expression_node<T> exprtk::parser< T >::expression_node_t
private
template<typename T>
typedef details::literal_node<T> exprtk::parser< T >::literal_node_t
private
template<typename T>
typedef details::unary_node<T> exprtk::parser< T >::unary_node_t
private
template<typename T>
typedef details::binary_node<T> exprtk::parser< T >::binary_node_t
private
template<typename T>
typedef details::trinary_node<T> exprtk::parser< T >::trinary_node_t
private
template<typename T>
typedef details::quaternary_node<T> exprtk::parser< T >::quaternary_node_t
private
template<typename T>
typedef details::conditional_node<T> exprtk::parser< T >::conditional_node_t
private
template<typename T>
typedef details::cons_conditional_node<T> exprtk::parser< T >::cons_conditional_node_t
private
template<typename T>
typedef details::while_loop_node<T> exprtk::parser< T >::while_loop_node_t
private
template<typename T>
typedef details::repeat_until_loop_node<T> exprtk::parser< T >::repeat_until_loop_node_t
private
template<typename T>
typedef details::for_loop_node<T> exprtk::parser< T >::for_loop_node_t
private
template<typename T>
typedef details::while_loop_bc_node<T> exprtk::parser< T >::while_loop_bc_node_t
private
template<typename T>
typedef details::repeat_until_loop_bc_node<T> exprtk::parser< T >::repeat_until_loop_bc_node_t
private
template<typename T>
typedef details::for_loop_bc_node<T> exprtk::parser< T >::for_loop_bc_node_t
private
template<typename T>
typedef details::switch_node<T> exprtk::parser< T >::switch_node_t
private
template<typename T>
typedef details::variable_node<T> exprtk::parser< T >::variable_node_t
private
template<typename T>
typedef details::vector_elem_node<T> exprtk::parser< T >::vector_elem_node_t
private
template<typename T>
typedef details::rebasevector_elem_node<T> exprtk::parser< T >::rebasevector_elem_node_t
private
template<typename T>
typedef details::rebasevector_celem_node<T> exprtk::parser< T >::rebasevector_celem_node_t
private
template<typename T>
typedef details::vector_node<T> exprtk::parser< T >::vector_node_t
private
template<typename T>
typedef details::range_pack<T> exprtk::parser< T >::range_t
private
template<typename T>
typedef details::stringvar_node<T> exprtk::parser< T >::stringvar_node_t
private
template<typename T>
typedef details::string_literal_node<T> exprtk::parser< T >::string_literal_node_t
private
template<typename T>
typedef details::string_range_node<T> exprtk::parser< T >::string_range_node_t
private
template<typename T>
typedef details::const_string_range_node<T> exprtk::parser< T >::const_string_range_node_t
private
template<typename T>
typedef details::generic_string_range_node<T> exprtk::parser< T >::generic_string_range_node_t
private
template<typename T>
typedef details::string_concat_node<T> exprtk::parser< T >::string_concat_node_t
private
template<typename T>
typedef details::assignment_string_node<T> exprtk::parser< T >::assignment_string_node_t
private
template<typename T>
typedef details::conditional_string_node<T> exprtk::parser< T >::conditional_string_node_t
private
template<typename T>
typedef details::cons_conditional_str_node<T> exprtk::parser< T >::cons_conditional_str_node_t
private
template<typename T>
typedef details::assignment_node<T> exprtk::parser< T >::assignment_node_t
private
template<typename T>
typedef details::assignment_vec_elem_node<T> exprtk::parser< T >::assignment_vec_elem_node_t
private
template<typename T>
typedef details::assignment_vec_node<T> exprtk::parser< T >::assignment_vec_node_t
private
template<typename T>
typedef details::assignment_vecvec_node<T> exprtk::parser< T >::assignment_vecvec_node_t
private
template<typename T>
typedef details::scand_node<T> exprtk::parser< T >::scand_node_t
private
template<typename T>
typedef details::scor_node<T> exprtk::parser< T >::scor_node_t
private
template<typename T>
typedef lexer::token exprtk::parser< T >::token_t
private
template<typename T>
typedef expression_node_t* exprtk::parser< T >::expression_node_ptr
private
template<typename T>
typedef expression<T> exprtk::parser< T >::expression_t
private
template<typename T>
typedef symbol_table<T> exprtk::parser< T >::symbol_table_t
private
template<typename T>
typedef expression<T>::symtab_list_t exprtk::parser< T >::symbol_table_list_t
private
template<typename T>
typedef details::vector_holder<T>* exprtk::parser< T >::vector_holder_ptr
private
template<typename T>
typedef details::functor_t<T> exprtk::parser< T >::functor_t
private
template<typename T>
typedef functor_t::qfunc_t exprtk::parser< T >::quaternary_functor_t
private
template<typename T>
typedef functor_t::tfunc_t exprtk::parser< T >::trinary_functor_t
private
template<typename T>
typedef functor_t::bfunc_t exprtk::parser< T >::binary_functor_t
private
template<typename T>
typedef functor_t::ufunc_t exprtk::parser< T >::unary_functor_t
private
template<typename T>
typedef details::operator_type exprtk::parser< T >::operator_t
private
template<typename T>
typedef std::map<operator_t, unary_functor_t> exprtk::parser< T >::unary_op_map_t
private
template<typename T>
typedef std::map<operator_t, binary_functor_t> exprtk::parser< T >::binary_op_map_t
private
template<typename T>
typedef std::map<operator_t,trinary_functor_t> exprtk::parser< T >::trinary_op_map_t
private
template<typename T>
typedef std::map<std::string,std::pair<trinary_functor_t ,operator_t> > exprtk::parser< T >::sf3_map_t
private
template<typename T>
typedef std::map<std::string,std::pair<quaternary_functor_t,operator_t> > exprtk::parser< T >::sf4_map_t
private
template<typename T>
typedef std::map<binary_functor_t,operator_t> exprtk::parser< T >::inv_binary_op_map_t
private
template<typename T>
typedef std::multimap<std::string,details::base_operation_t,details::ilesscompare> exprtk::parser< T >::base_ops_map_t
private
template<typename T>
typedef std::set<std::string,details::ilesscompare> exprtk::parser< T >::disabled_func_set_t
private
template<typename T>
typedef details::T0oT1_define<T, cref_t, cref_t> exprtk::parser< T >::vov_t
private
template<typename T>
typedef details::T0oT1_define<T, const_t, cref_t> exprtk::parser< T >::cov_t
private
template<typename T>
typedef details::T0oT1_define<T, cref_t, const_t> exprtk::parser< T >::voc_t
private
template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, cref_t, cref_t> exprtk::parser< T >::vovov_t
private
template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, cref_t, const_t> exprtk::parser< T >::vovoc_t
private
template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, const_t, cref_t> exprtk::parser< T >::vocov_t
private
template<typename T>
typedef details::T0oT1oT2_define<T, const_t, cref_t, cref_t> exprtk::parser< T >::covov_t
private
template<typename T>
typedef details::T0oT1oT2_define<T, const_t, cref_t, const_t> exprtk::parser< T >::covoc_t
private
template<typename T>
typedef details::T0oT1oT2_define<T, const_t, const_t, cref_t> exprtk::parser< T >::cocov_t
private
template<typename T>
typedef details::T0oT1oT2_define<T, cref_t, const_t, const_t> exprtk::parser< T >::vococ_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, cref_t, cref_t, cref_t> exprtk::parser< T >::vovovov_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, cref_t, cref_t, const_t> exprtk::parser< T >::vovovoc_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, cref_t, const_t, cref_t> exprtk::parser< T >::vovocov_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, const_t, cref_t, cref_t> exprtk::parser< T >::vocovov_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, const_t, cref_t, cref_t, cref_t> exprtk::parser< T >::covovov_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, const_t, cref_t, const_t, cref_t> exprtk::parser< T >::covocov_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, const_t, cref_t, const_t> exprtk::parser< T >::vocovoc_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, const_t, cref_t, cref_t, const_t> exprtk::parser< T >::covovoc_t
private
template<typename T>
typedef details::T0oT1oT2oT3_define<T, cref_t, const_t, const_t, cref_t> exprtk::parser< T >::vococov_t
private
template<typename T>
typedef results_context<T> exprtk::parser< T >::results_context_t
private
template<typename T>
typedef parser_helper exprtk::parser< T >::prsrhlpr_t
private
template<typename T>
typedef settings_store exprtk::parser< T >::settings_t

Member Enumeration Documentation

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 
template<typename T>
enum exprtk::parser::collect_type
Enumerator:
e_ct_none 
e_ct_variables 
e_ct_functions 
e_ct_assignments 
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 

Constructor & Destructor Documentation

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

Member Function Documentation

template<typename T>
void exprtk::parser< T >::init_precompilation ( )
inline
template<typename T>
bool exprtk::parser< T >::compile ( const std::string expression_string,
expression< T > &  expr 
)
inline
template<typename T>
expression_t exprtk::parser< T >::compile ( const std::string expression_string,
symbol_table_t symtab 
)
inline
template<typename T>
void exprtk::parser< T >::process_lexer_errors ( )
inline
template<typename T>
bool exprtk::parser< T >::run_assemblies ( )
inline
template<typename T>
settings_store& exprtk::parser< T >::settings ( )
inline
template<typename T>
parser_error::type exprtk::parser< T >::get_error ( const std::size_t &  index) const
inline
template<typename T>
std::string exprtk::parser< T >::error ( ) const
inline
template<typename T>
std::size_t exprtk::parser< T >::error_count ( ) const
inline
template<typename T>
dependent_entity_collector& exprtk::parser< T >::dec ( )
inline
template<typename T>
bool exprtk::parser< T >::replace_symbol ( const std::string old_symbol,
const std::string new_symbol 
)
inline
template<typename T>
bool exprtk::parser< T >::remove_replace_symbol ( const std::string symbol)
inline
template<typename T>
void exprtk::parser< T >::enable_unknown_symbol_resolver ( unknown_symbol_resolver usr = reinterpret_cast<unknown_symbol_resolver*>(0))
inline
template<typename T>
void exprtk::parser< T >::enable_unknown_symbol_resolver ( unknown_symbol_resolver usr)
inline
template<typename T>
void exprtk::parser< T >::disable_unknown_symbol_resolver ( )
inline
template<typename T>
bool exprtk::parser< T >::valid_base_operation ( const std::string symbol) const
inlineprivate
template<typename T>
bool exprtk::parser< T >::valid_vararg_operation ( const std::string symbol) const
inlineprivate
template<typename T>
bool exprtk::parser< T >::is_invalid_arithmetic_operation ( const details::operator_type  operation) const
inlineprivate
template<typename T>
bool exprtk::parser< T >::is_invalid_assignment_operation ( const details::operator_type  operation) const
inlineprivate
template<typename T>
bool exprtk::parser< T >::is_invalid_inequality_operation ( const details::operator_type  operation) const
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_corpus ( )
inlineprivate
template<typename T>
std::string exprtk::parser< T >::construct_subexpr ( lexer::token begin_token,
lexer::token end_token 
)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_expression ( precedence_level  precedence = e_level00)
inlineprivate
template<typename T>
bool exprtk::parser< T >::simplify_unary_negation_branch ( expression_node_ptr node)
inlineprivate
template<typename T>
static expression_node_ptr exprtk::parser< T >::error_node ( )
inlinestaticprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_function_invocation ( ifunction< T > *  function,
const std::string function_name 
)
inlineprivate
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
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_function_call_0 ( ifunction< T > *  function,
const std::string function_name 
)
inlineprivate
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
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_base_operation ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_conditional_statement_01 ( expression_node_ptr  condition)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_conditional_statement_02 ( expression_node_ptr  condition)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_conditional_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_ternary_conditional_statement ( expression_node_ptr  condition)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_while_loop ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_repeat_until_loop ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_for_loop ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_switch_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_multi_switch_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_vararg_function ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_string_range_statement ( expression_node_ptr expression)
inlineprivate
template<typename T>
void exprtk::parser< T >::parse_pending_string_rangesize ( expression_node_ptr expression)
inlineprivate
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
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_multi_sequence ( const std::string source = "")
inlineprivate
template<typename T>
bool exprtk::parser< T >::parse_range ( range_t rp,
const bool  skip_lsqr = false 
)
inlineprivate
template<typename T>
void exprtk::parser< T >::lodge_symbol ( const std::string symbol,
const symbol_type  st 
)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_string ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_const_string ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_vector ( )
inlineprivate
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
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_generic_function_call ( igeneric_function< T > *  function,
const std::string function_name 
)
inlineprivate
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
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_string_function_call ( igeneric_function< T > *  function,
const std::string function_name 
)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_overload_function_call ( igeneric_function< T > *  function,
const std::string function_name 
)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_special_function ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_null_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_break_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_continue_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_define_vector_statement ( const std::string vec_name)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_define_string_statement ( const std::string str_name,
expression_node_ptr  initialisation_expression 
)
inlineprivate
template<typename T>
bool exprtk::parser< T >::local_variable_is_shadowed ( const std::string symbol)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_define_var_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_uninitialised_var_statement ( const std::string var_name)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_swap_statement ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_return_statement ( )
inlineprivate
template<typename T>
bool exprtk::parser< T >::post_variable_process ( const std::string symbol)
inlineprivate
template<typename T>
bool exprtk::parser< T >::post_bracket_process ( const typename token_t::token_type token,
expression_node_ptr branch 
)
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_symtab_symbol ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_symbol ( )
inlineprivate
template<typename T>
expression_node_ptr exprtk::parser< T >::parse_branch ( precedence_level  precedence = e_level00)
inlineprivate
template<typename T>
void exprtk::parser< T >::set_error ( const parser_error::type error_type)
inlineprivate
template<typename T>
void exprtk::parser< T >::remove_last_error ( )
inlineprivate
template<typename T>
void exprtk::parser< T >::set_synthesis_error ( const std::string synthesis_error_message)
inlineprivate
template<typename T>
void exprtk::parser< T >::register_local_vars ( expression< T > &  e)
inlineprivate
template<typename T>
void exprtk::parser< T >::register_return_results ( expression< T > &  e)
inlineprivate
template<typename T>
void exprtk::parser< T >::load_unary_operations_map ( unary_op_map_t m)
inlineprivate
template<typename T>
void exprtk::parser< T >::load_binary_operations_map ( binary_op_map_t m)
inlineprivate
template<typename T>
void exprtk::parser< T >::load_inv_binary_operations_map ( inv_binary_op_map_t m)
inlineprivate
template<typename T>
void exprtk::parser< T >::load_sf3_map ( sf3_map_t sf3_map)
inlineprivate

References register_sf3, and register_sf3_extid.

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

References register_sf4, and register_sf4ext.

template<typename T>
results_context_t& exprtk::parser< T >::results_ctx ( )
inlineprivate
template<typename T>
void exprtk::parser< T >::return_cleanup ( )
inlineprivate
template<typename T>
parser<T>& exprtk::parser< T >::operator= ( const parser< T > &  )
private

Friends And Related Function Documentation

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

Member Data Documentation

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

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().

template<typename T>
expression_generator<T> exprtk::parser< T >::expression_generator_
private
template<typename T>
details::node_allocator exprtk::parser< T >::node_allocator_
private
template<typename T>
symtab_store exprtk::parser< T >::symtab_store_
private
template<typename T>
dependent_entity_collector exprtk::parser< T >::dec_
private
template<typename T>
std::deque<parser_error::type> exprtk::parser< T >::error_list_
private
template<typename T>
std::deque<bool> exprtk::parser< T >::brkcnt_list_
private
template<typename T>
parser_state exprtk::parser< T >::state_
private
template<typename T>
bool exprtk::parser< T >::resolve_unknown_symbol_
private
template<typename T>
results_context_t* exprtk::parser< T >::results_context_
private
template<typename T>
unknown_symbol_resolver* exprtk::parser< T >::unknown_symbol_resolver_
private
template<typename T>
unknown_symbol_resolver exprtk::parser< T >::default_usr_
private
template<typename T>
base_ops_map_t exprtk::parser< T >::base_ops_map_
private
template<typename T>
unary_op_map_t exprtk::parser< T >::unary_op_map_
private
template<typename T>
binary_op_map_t exprtk::parser< T >::binary_op_map_
private
template<typename T>
inv_binary_op_map_t exprtk::parser< T >::inv_binary_op_map_
private
template<typename T>
sf3_map_t exprtk::parser< T >::sf3_map_
private
template<typename T>
sf4_map_t exprtk::parser< T >::sf4_map_
private
template<typename T>
std::string exprtk::parser< T >::synthesis_error_
private
template<typename T>
scope_element_manager exprtk::parser< T >::sem_
private
template<typename T>
lexer::helper::helper_assembly exprtk::parser< T >::helper_assembly_
private
template<typename T>
lexer::helper::commutative_inserter exprtk::parser< T >::commutative_inserter_
private
template<typename T>
lexer::helper::operator_joiner exprtk::parser< T >::operator_joiner_2_
private
template<typename T>
lexer::helper::operator_joiner exprtk::parser< T >::operator_joiner_3_
private
template<typename T>
lexer::helper::symbol_replacer exprtk::parser< T >::symbol_replacer_
private
template<typename T>
lexer::helper::bracket_checker exprtk::parser< T >::bracket_checker_
private
template<typename T>
lexer::helper::numeric_checker exprtk::parser< T >::numeric_checker_
private
template<typename T>
lexer::helper::sequence_validator exprtk::parser< T >::sequence_validator_
private
template<typename T>
lexer::helper::sequence_validator_3tokens exprtk::parser< T >::sequence_validator_3tkns_
private

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


Copyright © 2005-2022 MAK Technologies. All Rights Reserved (www.mak.com)