Public Types | Public Member Functions | List of all members
Rose::BinaryAnalysis::SymbolicExprParser::Expansion Class Reference


Virtual base class for atom and operator expansion.

Definition at line 204 of file BinarySymbolicExprParser.h.

#include <BinarySymbolicExprParser.h>

Inheritance diagram for Rose::BinaryAnalysis::SymbolicExprParser::Expansion:
Inheritance graph
Collaboration diagram for Rose::BinaryAnalysis::SymbolicExprParser::Expansion:
Collaboration graph

Public Types

typedef Sawyer::SharedPointer< ExpansionPtr
 Shared-ownership pointer to an Expansion. More...

Public Member Functions

virtual SymbolicExpr::Ptr delayedExpansion (const SymbolicExpr::Ptr &src, const SymbolicExprParser *parser)
 Substitute one expression with another. More...
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. More...
void docString (const std::string &s)
 Property: Documentation string. More...
- Public Member Functions inherited from Sawyer::SharedObject
 SharedObject ()
 Default constructor. More...
 SharedObject (const SharedObject &)
 Copy constructor. More...
virtual ~SharedObject ()
 Virtual destructor. More...
SharedObjectoperator= (const SharedObject &)
 Assignment. More...

Member Typedef Documentation

Shared-ownership pointer to an Expansion.

See Shared ownership.

Definition at line 211 of file BinarySymbolicExprParser.h.

Member Function Documentation

const std::string& Rose::BinaryAnalysis::SymbolicExprParser::Expansion::docString ( ) const

Property: Documentation string.

The string uses the simple markup language from Sawyer's command-line processing.

Definition at line 225 of file BinarySymbolicExprParser.h.

void Rose::BinaryAnalysis::SymbolicExprParser::Expansion::docString ( const std::string &  s)

Property: Documentation string.

The string uses the simple markup language from Sawyer's command-line processing.

Definition at line 226 of file BinarySymbolicExprParser.h.

virtual SymbolicExpr::Ptr Rose::BinaryAnalysis::SymbolicExprParser::Expansion::delayedExpansion ( const SymbolicExpr::Ptr src,
const SymbolicExprParser parser 

Substitute one expression with another.

This second phase of expansion occurs after parsing (perhaps much later) and is able to dynamically replace the given expression with some other expression. For instance, if this object recognizes register names, it it might replace the register names with variables in the first phase, and during the second phase read register values from a provided state.

If the input expression does not need to be substituted, then this function should return the original expression.

Reimplemented in Rose::BinaryAnalysis::SymbolicExprParser::MemorySubstituter, and Rose::BinaryAnalysis::SymbolicExprParser::RegisterSubstituter.

Definition at line 238 of file BinarySymbolicExprParser.h.

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