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

Member Typedef Documentation

◆ expression_t

Definition at line 41666 of file exprtk.hpp.

◆ parser_t

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

◆ symbol_table_t

Definition at line 41665 of file exprtk.hpp.

◆ usr_t

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

41697 {
41698 symbol_table_t symbol_table;
41699 expression_t expression;
41700 parser_t parser;
41701
41702 resolve_as_vector vect_resolver;
41703
41704 expression.register_symbol_table(symbol_table );
41705 expression.register_symbol_table(ext_symbol_table);
41706
41707 if (vector_pass)
41708 parser.enable_unknown_symbol_resolver(&vect_resolver);
41709 else
41710 parser.enable_unknown_symbol_resolver();
41711
41713 parser.dec().collect_variables() = true;
41714
41716 parser.dec().collect_functions() = true;
41717
41718 bool pass_result = false;
41719
41721
41722 if (parser.compile(expression_string, expression))
41723 {
41724 pass_result = true;
41725
41726 std::deque<symbol_t> symb_list;
41727 parser.dec().symbols(symb_list);
41728
41729 for (std::size_t i = 0; i < symb_list.size(); ++i)
41730 {
41731 symbol_set.insert(symb_list[i].first);
41732 }
41733 }
41734
41735 return pass_result;
41736 }
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:598
void disable_type_checking(Parser &p)
Definition exprtk.hpp:22168
bool collect_variables(const std::string &expression, Sequence< std::string, Allocator > &symbol_list)
Definition exprtk.hpp:41742
bool collect_functions(const std::string &expression, Sequence< std::string, Allocator > &symbol_list)
Definition exprtk.hpp:41803
exprtk::symbol_table< T > symbol_table_t
Definition exprtk.hpp:41665
exprtk::expression< T > expression_t
Definition exprtk.hpp:41666

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: