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

Description

Virtual base class for atom and operator expansion.

Definition at line 206 of file SymbolicExpressionParser.h.

#include <Rose/BinaryAnalysis/SymbolicExpressionParser.h>

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

Public Types

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

Public Member Functions

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.
 
SharedObjectoperator= (const SharedObject &)
 Assignment.
 

Member Typedef Documentation

◆ Ptr

Shared-ownership pointer to an Expansion.

See Shared ownership.

Definition at line 213 of file SymbolicExpressionParser.h.

Constructor & Destructor Documentation

◆ ~Expansion()

virtual Rose::BinaryAnalysis::SymbolicExpressionParser::Expansion::~Expansion ( )
inlinevirtual

Definition at line 210 of file SymbolicExpressionParser.h.

Member Function Documentation

◆ title() [1/2]

const std::string & Rose::BinaryAnalysis::SymbolicExpressionParser::Expansion::title ( ) const
inline

Property: Title to use for documentation.

Definition at line 218 of file SymbolicExpressionParser.h.

◆ title() [2/2]

void Rose::BinaryAnalysis::SymbolicExpressionParser::Expansion::title ( const std::string &  s)
inline

Property: Title to use for documentation.

Definition at line 219 of file SymbolicExpressionParser.h.

◆ docString() [1/2]

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

Property: Documentation string.

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

Definition at line 227 of file SymbolicExpressionParser.h.

◆ docString() [2/2]

void Rose::BinaryAnalysis::SymbolicExpressionParser::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 228 of file SymbolicExpressionParser.h.

◆ delayedExpansion()

virtual SymbolicExpression::Ptr Rose::BinaryAnalysis::SymbolicExpressionParser::Expansion::delayedExpansion ( const SymbolicExpression::Ptr src,
const SymbolicExpressionParser  
)
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::SymbolicExpressionParser::RegisterSubstituter, and Rose::BinaryAnalysis::SymbolicExpressionParser::MemorySubstituter.

Definition at line 240 of file SymbolicExpressionParser.h.


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