CfgNodeMethods

io.shiftleft.semanticcpg.language.nodemethods.CfgNodeMethods
final class CfgNodeMethods(val node: CfgNode) extends AnyVal, NodeExtension

Attributes

Graph
Supertypes
class AnyVal
trait Matchable
class Any

Members list

Value members

Concrete methods

def address: Option[String]

Obtain hexadecimal string representation of lineNumber field.

Obtain hexadecimal string representation of lineNumber field.

Binary frontends store addresses in the lineNumber field as integers. For interoperability with other binary analysis tooling, it is convenient to allow retrieving these as hex strings.

Attributes

def cfgNext: Iterator[CfgNode]

Successors in the CFG

Successors in the CFG

Attributes

def cfgNext(n: Int): Iterator[CfgNode]

Maps each node in the traversal to a traversal returning its n successors.

Maps each node in the traversal to a traversal returning its n successors.

Attributes

def cfgPrev(n: Int): Iterator[CfgNode]

Maps each node in the traversal to a traversal returning its n predecessors.

Maps each node in the traversal to a traversal returning its n predecessors.

Attributes

def cfgPrev: Iterator[CfgNode]

Predecessors in the CFG

Predecessors in the CFG

Attributes

def controlledBy: Iterator[CfgNode]

Recursively determine all nodes on which this CFG node is control-dependent.

Recursively determine all nodes on which this CFG node is control-dependent.

Attributes

def controls: Iterator[CfgNode]

Recursively determine all nodes which this CFG node controls

Recursively determine all nodes which this CFG node controls

Attributes

def dominatedBy: Iterator[CfgNode]

Recursively determine all nodes by which this node is dominated

Recursively determine all nodes by which this node is dominated

Attributes

def dominates: Iterator[CfgNode]

Recursively determine all nodes which are dominated by this node

Recursively determine all nodes which are dominated by this node

Attributes

def method: Method
def passes(included: Set[CfgNode]): Iterator[CfgNode]

Using the post dominator tree, will determine if this node passes through the included set of nodes and filter it in.

Using the post dominator tree, will determine if this node passes through the included set of nodes and filter it in.

Value parameters

included

the nodes this node must pass through.

Attributes

Returns

the traversal of this node if it passes through the included set.

def passesNot(excluded: Set[CfgNode]): Iterator[CfgNode]

Using the post dominator tree, will determine if this node passes through the excluded set of nodes and filter it out.

Using the post dominator tree, will determine if this node passes through the excluded set of nodes and filter it out.

Value parameters

excluded

the nodes this node must not pass through.

Attributes

Returns

the traversal of this node if it does not pass through the excluded set.

def postDominatedBy: Iterator[CfgNode]

Recursively determine all nodes by which this node is post dominated

Recursively determine all nodes by which this node is post dominated

Attributes

def postDominates: Iterator[CfgNode]

Recursively determine all nodes which are post dominated by this node

Recursively determine all nodes which are post dominated by this node

Attributes

Concrete fields

val node: CfgNode