C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
exprtk::lexer::helper::sequence_validator_3tokens Class Reference

#include <exprtk.hpp>

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::token > error (const std::size_t index)
void clear_errors ()
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::token_scanner
virtual ~token_scanner ()
 token_scanner (const std::size_t &stride)
std::size_t process (generator &g)
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_t > set_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 4167 of file exprtk.hpp.

Member Typedef Documentation

◆ set_t

Definition at line 4173 of file exprtk.hpp.

◆ token_t

◆ token_triplet_t

Definition at line 4172 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ sequence_validator_3tokens()

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

Definition at line 4179 of file exprtk.hpp.

4180 : lexer::token_scanner(3)
4181 {
4185
4192
4199 }
void add_invalid(const token_t t0, const token_t t1, const token_t t2)
Definition exprtk.hpp:4243

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, exprtk::lexer::token::e_sub, and exprtk::lexer::token_scanner::token_scanner().

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

4244 {
4245 invalid_comb_.insert(std::make_pair(t0,std::make_pair(t1,t2)));
4246 }

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

4237 {
4238 error_list_.clear();
4239 }
std::vector< std::pair< lexer::token, lexer::token > > error_list_
Definition exprtk.hpp:4249

References error_list_.

Referenced by exprtk::parser< Type >::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 4223 of file exprtk.hpp.

4224 {
4225 if (index < error_list_.size())
4226 {
4227 return error_list_[index];
4228 }
4229 else
4230 {
4231 static const lexer::token error_token;
4232 return std::make_pair(error_token,error_token);
4233 }
4234 }

References error_list_.

Referenced by exprtk::parser< Type >::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 4218 of file exprtk.hpp.

4219 {
4220 return error_list_.size();
4221 }

References error_list_.

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

Here is the caller graph for this function:

◆ operator()() [1/4]

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

4207 {
4208 const set_t::value_type p = std::make_pair(t0.type,std::make_pair(t1.type,t2.type));
4209
4210 if (invalid_comb_.find(p) != invalid_comb_.end())
4211 {
4212 error_list_.push_back(std::make_pair(t0,t1));
4213 }
4214
4215 return true;
4216 }

References error_list_, exprtk_override, and invalid_comb_.

◆ operator()() [2/4]

virtual bool exprtk::lexer::token_scanner::operator() ( const token & )
inlinevirtual

Reimplemented from exprtk::lexer::token_scanner.

Definition at line 3258 of file exprtk.hpp.

3259 {
3260 return false;
3261 }

◆ operator()() [3/4]

virtual bool exprtk::lexer::token_scanner::operator() ( const token & ,
const token &  )
inlinevirtual

Reimplemented from exprtk::lexer::token_scanner.

Definition at line 3263 of file exprtk.hpp.

3264 {
3265 return false;
3266 }

◆ operator()() [4/4]

virtual bool exprtk::lexer::token_scanner::operator() ( const token & ,
const token & ,
const token & ,
const token &  )
inlinevirtual

Reimplemented from exprtk::lexer::token_scanner.

Definition at line 3273 of file exprtk.hpp.

3274 {
3275 return false;
3276 }

◆ result()

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

Reimplemented from exprtk::lexer::helper_interface.

Definition at line 4201 of file exprtk.hpp.

4202 {
4203 return error_list_.empty();
4204 }

References error_list_, and exprtk_override.

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

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


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