ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
VirtualCFG::CFGEdge Class Reference

A control flow edge connecting two CFG nodes, with an edge condition to indicate edge types. More...

#include <virtualCFG.h>

Collaboration diagram for VirtualCFG::CFGEdge:

Public Member Functions

 CFGEdge (CFGNode src, CFGNode tgt)
 Constructor. More...
 
 CFGEdge ()
 Default constructor. Used for compatibility with containers. More...
 
std::string toString () const
 Pretty string for Dot node labels, etc. More...
 
std::string toStringForDebugging () const
 String for debugging graphs. More...
 
std::string id () const
 ID to use for Dot, etc. More...
 
CFGNode source () const
 The source (beginning) CFG node. More...
 
CFGNode target () const
 The target (ending) CFG node. More...
 
EdgeConditionKind condition () const
 The control flow condition that enables this edge. More...
 
SgExpressioncaseLabel () const
 The label of the case represented by an eckCaseLabel edge. More...
 
unsigned int computedGotoCaseIndex () const
 The expression of the computed goto represented by the eckArithmeticIf* conditions. More...
 
SgExpressionconditionBasedOn () const
 The test or case key that is tested as a condition of this control flow edge. More...
 
std::vector< SgInitializedName * > scopesBeingExited () const
 Variables going out of scope across this edge (not extensively tested) More...
 
std::vector< SgInitializedName * > scopesBeingEntered () const
 Variables coming into scope across this edge (not extensively tested) More...
 
bool operator== (const CFGEdge &o) const
 Compare equality of edges. More...
 
bool operator!= (const CFGEdge &o) const
 Compare disequality of edges. More...
 
bool operator< (const CFGEdge &o) const
 operator<() has an arbitrary ordering, but allows these objects to be used with std::set and std::map More...
 

Private Attributes

CFGNode src
 
CFGNode tgt
 

Detailed Description

A control flow edge connecting two CFG nodes, with an edge condition to indicate edge types.

Definition at line 108 of file virtualCFG.h.

Constructor & Destructor Documentation

VirtualCFG::CFGEdge::CFGEdge ( CFGNode  src,
CFGNode  tgt 
)
inline

Constructor.

Definition at line 112 of file virtualCFG.h.

References VirtualCFG::CFGNode::getNode().

VirtualCFG::CFGEdge::CFGEdge ( )
inline

Default constructor. Used for compatibility with containers.

Definition at line 115 of file virtualCFG.h.

Member Function Documentation

std::string VirtualCFG::CFGEdge::toString ( ) const

Pretty string for Dot node labels, etc.

std::string VirtualCFG::CFGEdge::toStringForDebugging ( ) const

String for debugging graphs.

std::string VirtualCFG::CFGEdge::id ( ) const

ID to use for Dot, etc.

CFGNode VirtualCFG::CFGEdge::source ( ) const
inline

The source (beginning) CFG node.

Definition at line 124 of file virtualCFG.h.

CFGNode VirtualCFG::CFGEdge::target ( ) const
inline

The target (ending) CFG node.

Definition at line 126 of file virtualCFG.h.

EdgeConditionKind VirtualCFG::CFGEdge::condition ( ) const

The control flow condition that enables this edge.

Referenced by evalFunction().

SgExpression* VirtualCFG::CFGEdge::caseLabel ( ) const

The label of the case represented by an eckCaseLabel edge.

unsigned int VirtualCFG::CFGEdge::computedGotoCaseIndex ( ) const

The expression of the computed goto represented by the eckArithmeticIf* conditions.

SgExpression* VirtualCFG::CFGEdge::conditionBasedOn ( ) const

The test or case key that is tested as a condition of this control flow edge.

std::vector<SgInitializedName*> VirtualCFG::CFGEdge::scopesBeingExited ( ) const

Variables going out of scope across this edge (not extensively tested)

std::vector<SgInitializedName*> VirtualCFG::CFGEdge::scopesBeingEntered ( ) const

Variables coming into scope across this edge (not extensively tested)

bool VirtualCFG::CFGEdge::operator== ( const CFGEdge o) const
inline

Compare equality of edges.

Definition at line 140 of file virtualCFG.h.

References src, and tgt.

bool VirtualCFG::CFGEdge::operator!= ( const CFGEdge o) const
inline

Compare disequality of edges.

Definition at line 142 of file virtualCFG.h.

References src, and tgt.

bool VirtualCFG::CFGEdge::operator< ( const CFGEdge o) const
inline

operator<() has an arbitrary ordering, but allows these objects to be used with std::set and std::map

Definition at line 145 of file virtualCFG.h.

References src, and tgt.

Member Data Documentation

CFGNode VirtualCFG::CFGEdge::src
private

Definition at line 109 of file virtualCFG.h.

Referenced by operator!=(), operator<(), and operator==().

CFGNode VirtualCFG::CFGEdge::tgt
private

Definition at line 109 of file virtualCFG.h.

Referenced by operator!=(), operator<(), and operator==().


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