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::symbol_replacer Class Reference
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::ilesscomparereplace_map_t
 

Private Member Functions

bool modify (lexer::token &t)
 

Private Attributes

replace_map_t replace_map_
 

Detailed Description

Definition at line 3920 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 3924 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 3940 of file exprtk.hpp.

3943 {
3944 const replace_map_t::iterator itr = replace_map_.find(target_symbol);
3945
3946 if (replace_map_.end() != itr)
3947 {
3948 return false;
3949 }
3950
3951 replace_map_[target_symbol] = std::make_pair(replace_symbol,token_type);
3952
3953 return true;
3954 }

References replace_map_.

Referenced by exprtk::parser< T >::init_precompilation(), and exprtk::parser< T >::replace_symbol().

Here is the caller graph for this function:

◆ clear()

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

Definition at line 3956 of file exprtk.hpp.

3957 {
3958 replace_map_.clear();
3959 }

References replace_map_.

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

Here is the caller graph for this function:

◆ modify()

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

Implements exprtk::lexer::token_modifier.

Definition at line 3963 of file exprtk.hpp.

3964 {
3965 if (lexer::token::e_symbol == t.type)
3966 {
3967 if (replace_map_.empty())
3968 return false;
3969
3970 const replace_map_t::iterator itr = replace_map_.find(t.value);
3971
3972 if (replace_map_.end() != itr)
3973 {
3974 t.value = itr->second.first;
3975 t.type = itr->second.second;
3976
3977 return true;
3978 }
3979 }
3980
3981 return false;
3982 }

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

◆ remove()

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

Definition at line 3928 of file exprtk.hpp.

3929 {
3930 const replace_map_t::iterator itr = replace_map_.find(target_symbol);
3931
3932 if (replace_map_.end() == itr)
3933 return false;
3934
3935 replace_map_.erase(itr);
3936
3937 return true;
3938 }

References replace_map_.

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

Here is the caller graph for this function:

Member Data Documentation

◆ replace_map_

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

Definition at line 3984 of file exprtk.hpp.

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


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