C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Classes | Public Types | Static Public Member Functions | List of all members
exprtk::details::collector_helper< T > Struct Template Reference

#include <exprtk.hpp>

Classes

struct  resolve_as_vector
 

Public Types

typedef exprtk::symbol_table< Tsymbol_table_t
 
typedef exprtk::expression< Texpression_t
 
typedef exprtk::parser< Tparser_t
 
typedef parser_t::dependent_entity_collector::symbol_t symbol_t
 
typedef parser_t::unknown_symbol_resolver usr_t
 

Static Public Member Functions

static bool collection_pass (const std::string &expression_string, std::set< std::string > &symbol_set, const bool collect_variables, const bool collect_functions, const bool vector_pass, symbol_table_t &ext_symbol_table)
 

Detailed Description

template<typename T>
struct exprtk::details::collector_helper< T >

Definition at line 42156 of file exprtk.hpp.

Member Typedef Documentation

◆ expression_t

Definition at line 42159 of file exprtk.hpp.

◆ parser_t

Definition at line 42160 of file exprtk.hpp.

◆ symbol_t

template<typename T >
typedef parser_t::dependent_entity_collector::symbol_t exprtk::details::collector_helper< T >::symbol_t

Definition at line 42161 of file exprtk.hpp.

◆ symbol_table_t

Definition at line 42158 of file exprtk.hpp.

◆ usr_t

Definition at line 42162 of file exprtk.hpp.

Member Function Documentation

◆ collection_pass()

template<typename T >
static bool exprtk::details::collector_helper< T >::collection_pass ( const std::string &  expression_string,
std::set< std::string > &  symbol_set,
const bool  collect_variables,
const bool  collect_functions,
const bool  vector_pass,
symbol_table_t ext_symbol_table 
)
inlinestatic

Definition at line 42184 of file exprtk.hpp.

42190 {
42191 symbol_table_t symbol_table;
42192 expression_t expression;
42193 parser_t parser;
42194
42195 resolve_as_vector vect_resolver;
42196
42197 expression.register_symbol_table(symbol_table );
42198 expression.register_symbol_table(ext_symbol_table);
42199
42200 if (vector_pass)
42201 parser.enable_unknown_symbol_resolver(&vect_resolver);
42202 else
42203 parser.enable_unknown_symbol_resolver();
42204
42206 parser.dec().collect_variables() = true;
42207
42209 parser.dec().collect_functions() = true;
42210
42211 bool pass_result = false;
42212
42214
42215 if (parser.compile(expression_string, expression))
42216 {
42217 pass_result = true;
42218
42219 std::deque<symbol_t> symb_list;
42220 parser.dec().symbols(symb_list);
42221
42222 for (std::size_t i = 0; i < symb_list.size(); ++i)
42223 {
42224 symbol_set.insert(symb_list[i].first);
42225 }
42226 }
42227
42228 return pass_result;
42229 }
bool match_impl(const Iterator pattern_begin, const Iterator pattern_end, const Iterator data_begin, const Iterator data_end, const typename std::iterator_traits< Iterator >::value_type &zero_or_more, const typename std::iterator_traits< Iterator >::value_type &exactly_one)
Definition exprtk.hpp:605
void disable_type_checking(Parser &p)
Definition exprtk.hpp:22433
bool collect_variables(const std::string &expression, Sequence< std::string, Allocator > &symbol_list)
Definition exprtk.hpp:42235
bool collect_functions(const std::string &expression, Sequence< std::string, Allocator > &symbol_list)
Definition exprtk.hpp:42296
exprtk::symbol_table< T > symbol_table_t
Definition exprtk.hpp:42158
exprtk::expression< T > expression_t
Definition exprtk.hpp:42159

References exprtk::parser< T >::dependent_entity_collector::collect_functions(), exprtk::collect_functions(), exprtk::parser< T >::dependent_entity_collector::collect_variables(), exprtk::collect_variables(), exprtk::parser< T >::compile(), exprtk::parser< T >::dec(), exprtk::details::disable_type_checking(), exprtk::parser< T >::enable_unknown_symbol_resolver(), exprtk::details::match_impl(), exprtk::expression< T >::register_symbol_table(), and exprtk::parser< T >::dependent_entity_collector::symbols().

Here is the call graph for this function:

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