C# Class GameMaker.FlowAnalysis.ControlFlowNode

Represents a block in the control flow graph.
Show file Open project: WarlockD/GMdsam Class Usage Examples

Public Properties

Property Type Description
BlockIndex int
DominanceFrontier HashSet
DominatorTreeChildren List
Incoming List
NodeType ControlFlowNodeType
Offset int
Outgoing List
UserData object
Visited bool

Public Methods

Method Description
Dominates ( ControlFlowNode node ) : bool

Gets whether this dominates node.

ToString ( ) : string
TraversePostOrder ( Func children, Action visitAction ) : void
TraversePreOrder ( Func children, Action visitAction ) : void

Private Methods

Method Description
ControlFlowNode ( int blockIndex ) : System
ControlFlowNode ( int blockIndex, int offset, ControlFlowNodeType nodeType ) : System

Method Details

Dominates() public method

Gets whether this dominates node.
public Dominates ( ControlFlowNode node ) : bool
node ControlFlowNode
return bool

ToString() public method

public ToString ( ) : string
return string

TraversePostOrder() public method

public TraversePostOrder ( Func children, Action visitAction ) : void
children Func
visitAction Action
return void

TraversePreOrder() public method

public TraversePreOrder ( Func children, Action visitAction ) : void
children Func
visitAction Action
return void

Property Details

BlockIndex public property

Index of this node in the ControlFlowGraph.Nodes collection.
public int BlockIndex
return int

DominanceFrontier public property

The dominance frontier of this node. This is the set of nodes for which this node dominates a predecessor, but which are not strictly dominated by this node.
b.DominanceFrontier = { y in CFG; (exists p in predecessors(y): b dominates p) and not (b strictly dominates y)}
public HashSet DominanceFrontier
return HashSet

DominatorTreeChildren public property

List of children in the dominator tree.
public List DominatorTreeChildren
return List

Incoming public property

List of incoming control flow edges.
public List Incoming
return List

NodeType public property

Type of the node.
public ControlFlowNodeType NodeType
return ControlFlowNodeType

Offset public property

Gets the IL offset of this node.
public int Offset
return int

Outgoing public property

List of outgoing control flow edges.
public List Outgoing
return List

UserData public property

Any user data
public object UserData
return object

Visited public property

Visited flag, used in various algorithms. Before using it in your algorithm, reset it to false by calling ControlFlowGraph.ResetVisited();
public bool Visited
return bool