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

#include <exprtk.hpp>

Inheritance diagram for exprtk::lexer::helper::symbol_replacer:
[legend]
Collaboration diagram for exprtk::lexer::helper::symbol_replacer:
[legend]

Public Member Functions

bool remove (const std::string &target_symbol)
bool add_replace (const std::string &target_symbol, const std::string &replace_symbol, const lexer::token::token_type token_type=lexer::token::e_symbol)
void clear ()
Public Member Functions inherited from exprtk::lexer::token_modifier
std::size_t process (generator &g)
Public Member Functions inherited from exprtk::lexer::helper_interface
virtual void init ()
virtual void reset ()
virtual bool result ()
virtual ~helper_interface ()

Private Types

typedef std::map< std::string, std::pair< std::string, token::token_type >, details::ilesscompare > replace_map_t

Private Member Functions

bool modify (lexer::token &t)

Private Attributes

replace_map_t replace_map_

Detailed Description

Definition at line 3928 of file exprtk.hpp.

Member Typedef Documentation

◆ replace_map_t

typedef std::map<std::string,std::pair<std::string,token::token_type>,details::ilesscompare> exprtk::lexer::helper::symbol_replacer::replace_map_t
private

Definition at line 3932 of file exprtk.hpp.

Member Function Documentation

◆ add_replace()

bool exprtk::lexer::helper::symbol_replacer::add_replace ( const std::string & target_symbol,
const std::string & replace_symbol,
const lexer::token::token_type token_type = lexer::token::e_symbol )
inline

Definition at line 3948 of file exprtk.hpp.

3951 {
3952 const replace_map_t::iterator itr = replace_map_.find(target_symbol);
3953
3954 if (replace_map_.end() != itr)
3955 {
3956 return false;
3957 }
3958
3959 replace_map_[target_symbol] = std::make_pair(replace_symbol,token_type);
3960
3961 return true;
3962 }

References exprtk::lexer::token::e_symbol, and replace_map_.

◆ clear()

void exprtk::lexer::helper::symbol_replacer::clear ( )
inline

Definition at line 3964 of file exprtk.hpp.

3965 {
3966 replace_map_.clear();
3967 }

References replace_map_.

◆ modify()

bool exprtk::lexer::helper::symbol_replacer::modify ( lexer::token & t)
inlineprivatevirtual

Implements exprtk::lexer::token_modifier.

Definition at line 3971 of file exprtk.hpp.

3972 {
3973 if (lexer::token::e_symbol == t.type)
3974 {
3975 if (replace_map_.empty())
3976 return false;
3977
3978 const replace_map_t::iterator itr = replace_map_.find(t.value);
3979
3980 if (replace_map_.end() != itr)
3981 {
3982 t.value = itr->second.first;
3983 t.type = itr->second.second;
3984
3985 return true;
3986 }
3987 }
3988
3989 return false;
3990 }

References exprtk::lexer::token::e_symbol, exprtk_override, and replace_map_.

◆ remove()

bool exprtk::lexer::helper::symbol_replacer::remove ( const std::string & target_symbol)
inline

Definition at line 3936 of file exprtk.hpp.

3937 {
3938 const replace_map_t::iterator itr = replace_map_.find(target_symbol);
3939
3940 if (replace_map_.end() == itr)
3941 return false;
3942
3943 replace_map_.erase(itr);
3944
3945 return true;
3946 }

References replace_map_.

Member Data Documentation

◆ replace_map_

replace_map_t exprtk::lexer::helper::symbol_replacer::replace_map_
private

Definition at line 3992 of file exprtk.hpp.

Referenced by add_replace(), clear(), modify(), and remove().


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