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 3864 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 3868 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 3884 of file exprtk.hpp.

3887 {
3888 const replace_map_t::iterator itr = replace_map_.find(target_symbol);
3889
3890 if (replace_map_.end() != itr)
3891 {
3892 return false;
3893 }
3894
3895 replace_map_[target_symbol] = std::make_pair(replace_symbol,token_type);
3896
3897 return true;
3898 }

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

3901 {
3902 replace_map_.clear();
3903 }

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

3908 {
3909 if (lexer::token::e_symbol == t.type)
3910 {
3911 if (replace_map_.empty())
3912 return false;
3913
3914 const replace_map_t::iterator itr = replace_map_.find(t.value);
3915
3916 if (replace_map_.end() != itr)
3917 {
3918 t.value = itr->second.first;
3919 t.type = itr->second.second;
3920
3921 return true;
3922 }
3923 }
3924
3925 return false;
3926 }

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

3873 {
3874 const replace_map_t::iterator itr = replace_map_.find(target_symbol);
3875
3876 if (replace_map_.end() == itr)
3877 return false;
3878
3879 replace_map_.erase(itr);
3880
3881 return true;
3882 }

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

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


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