ROSE 0.11.145.147
|
Virtual base class for expanding atoms.
Definition at line 247 of file SymbolicExpressionParser.h.
#include <Rose/BinaryAnalysis/SymbolicExpressionParser.h>
Public Types | |
typedef Sawyer::SharedPointer< AtomExpansion > | Ptr |
Shared-ownership pointer to an AtomExpansion. | |
Public Types inherited from Rose::BinaryAnalysis::SymbolicExpressionParser::Expansion | |
typedef Sawyer::SharedPointer< Expansion > | Ptr |
Shared-ownership pointer to an Expansion. | |
Public Member Functions | |
virtual SymbolicExpression::Ptr | immediateExpansion (const Token &name)=0 |
Expand a parsed atom into some other expression. | |
Public Member Functions inherited from Rose::BinaryAnalysis::SymbolicExpressionParser::Expansion | |
virtual SymbolicExpression::Ptr | delayedExpansion (const SymbolicExpression::Ptr &src, const SymbolicExpressionParser *) |
Substitute one expression with another. | |
const std::string & | title () const |
Property: Title to use for documentation. | |
void | title (const std::string &s) |
Property: Title to use for documentation. | |
const std::string & | docString () const |
Property: Documentation string. | |
void | docString (const std::string &s) |
Property: Documentation string. | |
Public Member Functions inherited from Sawyer::SharedObject | |
SharedObject () | |
Default constructor. | |
SharedObject (const SharedObject &) | |
Copy constructor. | |
virtual | ~SharedObject () |
Virtual destructor. | |
SharedObject & | operator= (const SharedObject &) |
Assignment. | |
typedef Sawyer::SharedPointer<AtomExpansion> Rose::BinaryAnalysis::SymbolicExpressionParser::AtomExpansion::Ptr |
Shared-ownership pointer to an AtomExpansion.
See Shared ownership.
Definition at line 250 of file SymbolicExpressionParser.h.
|
pure virtual |
Expand a parsed atom into some other expression.
This method takes a token parsed from the input and optionally replaces it with some other expression. For instance, a subclass that recognizes the token "true" would replace it with a single-bit constant 1. If this object does not recognize the token, it should return a null pointer. This phase of expansion occurs immediately during parsing; a second phase may occur later.
Implemented in Rose::BinaryAnalysis::SymbolicExpressionParser::RegisterToValue, Rose::BinaryAnalysis::SymbolicExpressionParser::RegisterSubstituter, and Rose::BinaryAnalysis::SymbolicExpressionParser::TermPlaceholders.