C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
exprtk::lexer::helper::sequence_validator_3tokens Class Reference
Inheritance diagram for exprtk::lexer::helper::sequence_validator_3tokens:
[legend]
Collaboration diagram for exprtk::lexer::helper::sequence_validator_3tokens:
[legend]

Public Member Functions

 sequence_validator_3tokens ()
 
bool result ()
 
bool operator() (const lexer::token &t0, const lexer::token &t1, const lexer::token &t2)
 
std::size_t error_count () const
 
std::pair< lexer::token, lexer::tokenerror (const std::size_t index)
 
void clear_errors ()
 
- Public Member Functions inherited from exprtk::lexer::token_scanner
virtual ~token_scanner ()
 
 token_scanner (const std::size_t &stride)
 
std::size_t process (generator &g)
 
virtual bool operator() (const token &)
 
virtual bool operator() (const token &, const token &)
 
virtual bool operator() (const token &, const token &, const token &, const token &)
 
- Public Member Functions inherited from exprtk::lexer::helper_interface
virtual void init ()
 
virtual void reset ()
 
virtual ~helper_interface ()
 

Private Types

typedef lexer::token::token_type token_t
 
typedef std::pair< token_t, std::pair< token_t, token_t > > token_triplet_t
 
typedef std::set< token_triplet_tset_t
 

Private Member Functions

void add_invalid (const token_t t0, const token_t t1, const token_t t2)
 

Private Attributes

set_t invalid_comb_
 
std::vector< std::pair< lexer::token, lexer::token > > error_list_
 

Detailed Description

Definition at line 4103 of file exprtk.hpp.

Member Typedef Documentation

◆ set_t

Definition at line 4109 of file exprtk.hpp.

◆ token_t

Definition at line 4107 of file exprtk.hpp.

◆ token_triplet_t

Definition at line 4108 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ sequence_validator_3tokens()

exprtk::lexer::helper::sequence_validator_3tokens::sequence_validator_3tokens ( )
inline

Definition at line 4115 of file exprtk.hpp.

4116 : lexer::token_scanner(3)
4117 {
4121
4128
4135 }
void add_invalid(const token_t t0, const token_t t1, const token_t t2)
Definition exprtk.hpp:4179

References add_invalid(), exprtk::lexer::token::e_add, exprtk::lexer::token::e_comma, exprtk::lexer::token::e_div, exprtk::lexer::token::e_mod, exprtk::lexer::token::e_mul, exprtk::lexer::token::e_number, exprtk::lexer::token::e_pow, exprtk::lexer::token::e_string, and exprtk::lexer::token::e_sub.

Here is the call graph for this function:

Member Function Documentation

◆ add_invalid()

void exprtk::lexer::helper::sequence_validator_3tokens::add_invalid ( const token_t  t0,
const token_t  t1,
const token_t  t2 
)
inlineprivate

Definition at line 4179 of file exprtk.hpp.

4180 {
4181 invalid_comb_.insert(std::make_pair(t0,std::make_pair(t1,t2)));
4182 }

References invalid_comb_.

Referenced by sequence_validator_3tokens().

Here is the caller graph for this function:

◆ clear_errors()

void exprtk::lexer::helper::sequence_validator_3tokens::clear_errors ( )
inline

Definition at line 4172 of file exprtk.hpp.

4173 {
4174 error_list_.clear();
4175 }
std::vector< std::pair< lexer::token, lexer::token > > error_list_
Definition exprtk.hpp:4185

References error_list_.

Referenced by exprtk::parser< T >::run_assemblies().

Here is the caller graph for this function:

◆ error()

std::pair< lexer::token, lexer::token > exprtk::lexer::helper::sequence_validator_3tokens::error ( const std::size_t  index)
inline

Definition at line 4159 of file exprtk.hpp.

4160 {
4161 if (index < error_list_.size())
4162 {
4163 return error_list_[index];
4164 }
4165 else
4166 {
4167 static const lexer::token error_token;
4168 return std::make_pair(error_token,error_token);
4169 }
4170 }

References error_list_.

Referenced by exprtk::parser< T >::run_assemblies().

Here is the caller graph for this function:

◆ error_count()

std::size_t exprtk::lexer::helper::sequence_validator_3tokens::error_count ( ) const
inline

Definition at line 4154 of file exprtk.hpp.

4155 {
4156 return error_list_.size();
4157 }

References error_list_.

Referenced by exprtk::parser< T >::run_assemblies().

Here is the caller graph for this function:

◆ operator()()

bool exprtk::lexer::helper::sequence_validator_3tokens::operator() ( const lexer::token t0,
const lexer::token t1,
const lexer::token t2 
)
inlinevirtual

Reimplemented from exprtk::lexer::token_scanner.

Definition at line 4142 of file exprtk.hpp.

4143 {
4144 const set_t::value_type p = std::make_pair(t0.type,std::make_pair(t1.type,t2.type));
4145
4146 if (invalid_comb_.find(p) != invalid_comb_.end())
4147 {
4148 error_list_.push_back(std::make_pair(t0,t1));
4149 }
4150
4151 return true;
4152 }

References error_list_, and invalid_comb_.

◆ result()

bool exprtk::lexer::helper::sequence_validator_3tokens::result ( )
inlinevirtual

Reimplemented from exprtk::lexer::helper_interface.

Definition at line 4137 of file exprtk.hpp.

4138 {
4139 return error_list_.empty();
4140 }

References error_list_.

Member Data Documentation

◆ error_list_

std::vector<std::pair<lexer::token,lexer::token> > exprtk::lexer::helper::sequence_validator_3tokens::error_list_
private

Definition at line 4185 of file exprtk.hpp.

Referenced by clear_errors(), error(), error_count(), operator()(), and result().

◆ invalid_comb_

set_t exprtk::lexer::helper::sequence_validator_3tokens::invalid_comb_
private

Definition at line 4184 of file exprtk.hpp.

Referenced by add_invalid(), and operator()().


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