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

Description

Virtual base class for atom and operator expansion.

Definition at line 210 of file BinarySymbolicExprParser.h.

#include <BinarySymbolicExprParser.h>

Inheritance diagram for Rose::BinaryAnalysis::SymbolicExprParser::Expansion:
Inheritance graph
[legend]
Collaboration diagram for Rose::BinaryAnalysis::SymbolicExprParser::Expansion:
Collaboration graph
[legend]

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 217 of file BinarySymbolicExprParser.h.

Member Function Documentation

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

Property: Documentation string.

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

Definition at line 231 of file BinarySymbolicExprParser.h.

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

Property: Documentation string.

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

Definition at line 232 of file BinarySymbolicExprParser.h.

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

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 244 of file BinarySymbolicExprParser.h.


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