Skip to main content

module lang::php::analysis::cfg::FlowEdge

rascal-0.43.0
org.rascalmpl.php-analysis-0.3.6

Usage​

import lang::php::analysis::cfg::FlowEdge;

Dependencies​

import lang::php::ast::AbstractSyntax;
import lang::php::analysis::cfg::Label;
import lang::php::pp::PrettyPrinter;
import List;

data FlowEdge​

data FlowEdge  
= flowEdge(Lab from, Lab to)
| backEdge(Lab from, Lab to)
| jumpEdge(Lab from, Lab to)
| conditionTrueFlowEdge(Lab from, Lab to, Lab header, Expr why)
| conditionTrueFlowEdge(Lab from, Lab to, Lab header, Expr why, list[Expr] whyNots)
| conditionTrueFlowEdge(Lab from, Lab to, Lab header, list[Expr] whys)
| conditionTrueFlowEdge(Lab from, Lab to, Lab header, list[Expr] whys, list[Expr] whyNots)
| conditionTrueBackEdge(Lab from, Lab to, Lab header, Expr why)
| conditionFalseFlowEdge(Lab from, Lab to, Lab header, Expr whyNot)
| conditionFalseFlowEdge(Lab from, Lab to, Lab header, list[Expr] whyNots)
| iteratorEmptyFlowEdge(Lab from, Lab to, Lab header, Expr arr)
| iteratorNotEmptyFlowEdge(Lab from, Lab to, Lab header, Expr arr)
| escapingBreakEdge(Lab from, Lab to, OptionExpr breakAmount)
| escapingContinueEdge(Lab from, Lab to, OptionExpr continueAmount)
| escapingGotoEdge(Lab from, Lab to, str gotoLabel)
;

alias FlowEdges​

set[FlowEdge]

function printFlowEdgeLabel​

str printFlowEdgeLabel(flowEdge(Lab from, Lab to))

str printFlowEdgeLabel(backEdge(Lab from, Lab to))

str printFlowEdgeLabel(jumpEdge(Lab from, Lab to))

str printFlowEdgeLabel(conditionTrueFlowEdge(Lab from, Lab to, Lab header, Expr why))

str printFlowEdgeLabel(conditionTrueFlowEdge(Lab from, Lab to, Lab header, Expr why, list[Expr] whyNots))

str printFlowEdgeLabel(conditionTrueFlowEdge(Lab from, Lab to, Lab header, list[Expr] whys))

str printFlowEdgeLabel(conditionTrueFlowEdge(Lab from, Lab to, Lab header, list[Expr] whys, list[Expr] whyNots))

str printFlowEdgeLabel(conditionTrueBackEdge(Lab from, Lab to, Lab header, Expr why))

str printFlowEdgeLabel(conditionFalseFlowEdge(Lab from, Lab to, Lab header, Expr whyNot))

str printFlowEdgeLabel(conditionFalseFlowEdge(Lab from, Lab to, Lab header, list[Expr] whyNots))

str printFlowEdgeLabel(iteratorEmptyFlowEdge(Lab from, Lab to, Lab header, Expr arr))

str printFlowEdgeLabel(iteratorNotEmptyFlowEdge(Lab from, Lab to, Lab header, Expr arr))

str printFlowEdgeLabel(escapingBreakEdge(Lab from, Lab to, OptionExpr breakAmount))

str printFlowEdgeLabel(escapingContinueEdge(Lab from, Lab to, OptionExpr continueAmount))

str printFlowEdgeLabel(escapingGotoEdge(Lab from, Lab to, str gotoLabel))