UNPKG

@syntest/cfg

Version:
41 lines 2.31 kB
export declare enum EdgeType { /** * A normal edge is an edge that is neither a back edge nor an abnormal edge. Normal edges are typical of control flow. */ NORMAL = "NORMAL", /** * An exception edge is an edge that is part of an exception handling statement. Exception edges are typical of try-catch statements. */ EXCEPTION = "EXCEPTION", /** * A conditional edge is an edge that is part of a conditional statement. Conditional edges are typical of if statements. */ CONDITIONAL_TRUE = "CONDITIONAL_TRUE", CONDITIONAL_FALSE = "CONDITIONAL_FALSE", /** * An interprocedural edge is an edge that crosses a procedure boundary. Interprocedural edges are typical of function calls. * https://www.researchgate.net/profile/Katherine-Yelick/publication/228396231/figure/fig1/AS:669526194667520@1536638892015/Construction-of-the-interprocedural-control-flow-graph-of-a-program-from-the-individual.png */ INTERPROCEDURAL = "INTERPROCEDURAL", /** * A back edge is an edge that points to a block that has already been met during a depth-first (DFS) traversal of the graph. Back edges are typical of loops. * https://en.wikipedia.org/wiki/Control-flow_graph */ BACK_EDGE = "BACK_EDGE", /** * A critical edge is an edge which is neither the only edge leaving its source block, nor the only edge entering its destination block. These edges must be split: a new block must be created in the middle of the edge, in order to insert computations on the edge without affecting any other edges. * https://en.wikipedia.org/wiki/Control-flow_graph */ CRITICAL_EDGE = "CRITICAL_EDGE", /** * An abnormal edge is an edge whose destination is unknown. Exception handling constructs can produce them. These edges tend to inhibit optimization. * https://en.wikipedia.org/wiki/Control-flow_graph */ ABNORMAL_EDGE = "ABNORMAL_EDGE", /** * An impossible edge (also known as a fake edge) is an edge which has been added to the graph solely to preserve the property that the exit block postdominates all blocks. It cannot ever be traversed. * https://en.wikipedia.org/wiki/Control-flow_graph */ IMPOSSIBLE_EDGE = "IMPOSSIBLE_EDGE" } //# sourceMappingURL=EdgeType.d.ts.map