Class

org.argus.jawa.alir.controlFlowGraph

InterproceduralControlFlowGraph

Related Doc: package controlFlowGraph

Permalink

class InterproceduralControlFlowGraph[Node <: ICFGNode] extends InterproceduralGraph[Node]

Linear Supertypes
InterproceduralGraph[Node], Serializable, Serializable, AlirSuccPredAccesses[Node], AlirEdgeAccesses[Node], AlirGraph[Node], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. InterproceduralControlFlowGraph
  2. InterproceduralGraph
  3. Serializable
  4. Serializable
  5. AlirSuccPredAccesses
  6. AlirEdgeAccesses
  7. AlirGraph
  8. AnyRef
  9. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new InterproceduralControlFlowGraph()

    Permalink

Type Members

  1. type Edge = AlirEdge[Node]

    Permalink
    Definition Classes
    AlirGraph

Value Members

  1. final def !=(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. val BRANCH_PROPERTY_KEY: String

    Permalink
  5. final val EDGE_TYPE: String("EdgeType")

    Permalink
  6. def addEdge(source: Node, target: Node, typ: String): Edge

    Permalink
  7. def addEdge(e: Edge): Boolean

    Permalink
    Definition Classes
    AlirEdgeAccesses
  8. def addEdge(source: Node, target: Node): Edge

    Permalink
    Definition Classes
    AlirEdgeAccesses
  9. def addEntryNode(en: ICFGEntryNode): Unit

    Permalink
  10. def addExitNode(en: ICFGExitNode): Unit

    Permalink
  11. def addICFGCallNode(context: Context): Node

    Permalink
  12. def addICFGCenterNode(context: Context): Node

    Permalink
  13. def addICFGEntryNode(context: Context): Node

    Permalink
  14. def addICFGExitNode(context: Context): Node

    Permalink
  15. def addICFGNormalNode(context: Context): Node

    Permalink
  16. def addICFGReturnNode(context: Context): Node

    Permalink
  17. def addNode(node: Node): Node

    Permalink
    Definition Classes
    InterproceduralGraph → AlirEdgeAccesses
  18. def addProcessed(jp: Signature, c: Context, nodes: ISet[Node]): MMap[(Signature, Context), ISet[Node]]

    Permalink
  19. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  20. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. def collectCfgToBaseGraph[VirtualLabel](calleeProc: JawaMethod, callerContext: Context, isFirst: Boolean = false): ISet[Node]

    Permalink
  22. def compressByDelNode(n: Node): Unit

    Permalink

    (We ASSUME that predecessors ???? and successors of n are within the same method as of n) So, this algorithm is only for an internal node of a method NOT for a method's Entry node or Exit node The algorithm is obvious from the following code

  23. def deleteEdge(e: Edge): Boolean

    Permalink
    Definition Classes
    InterproceduralGraph
  24. def deleteEdge(source: Node, target: Node): Edge

    Permalink
    Definition Classes
    InterproceduralGraph
  25. def deleteNode(node: Node): Boolean

    Permalink
    Definition Classes
    InterproceduralGraph
  26. val eIDProvider: EdgeNameProvider[Edge] { def filterLabel(uri: String): String }

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  27. def edgeSource(edge: AlirEdge[Node]): Node

    Permalink
    Attributes
    protected
    Definition Classes
    AlirSuccPredAccesses
  28. def edgeTarget(edge: AlirEdge[Node]): Node

    Permalink
    Attributes
    protected
    Definition Classes
    AlirSuccPredAccesses
  29. def edges: Iterable[Edge]

    Permalink
    Definition Classes
    AlirGraph
  30. var entryN: ICFGNode

    Permalink
    Attributes
    protected
  31. def entryNode(proc: Signature, callerContext: Context): Node

    Permalink
  32. def entryNode: Node

    Permalink
  33. final def eq(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  34. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  35. var exitN: ICFGNode

    Permalink
    Attributes
    protected
  36. def exitNode: Node

    Permalink
  37. def extendGraph(calleeSig: Signature, callerContext: Context): Node

    Permalink
  38. def extendGraphOneWay(calleeSig: Signature, callerContext: Context, typ: String = null): Node

    Permalink
  39. def finalize(): Unit

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  40. def findPath(srcNode: Node, tarNode: Node): IList[Edge]

    Permalink
    Definition Classes
    InterproceduralGraph
  41. def getCallGraph: CallGraph

    Permalink
  42. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  43. def getEdges(n1: Node, n2: Node): CSet[Edge]

    Permalink
    Definition Classes
    AlirGraph
  44. def getICFGCallNode(context: Context): Node

    Permalink
  45. def getICFGCenterNode(context: Context): Node

    Permalink
  46. def getICFGEntryNode(context: Context): Node

    Permalink
  47. def getICFGExitNode(context: Context): Node

    Permalink
  48. def getICFGNormalNode(context: Context): Node

    Permalink
  49. def getICFGReturnNode(context: Context): Node

    Permalink
  50. def getNode(n: Node): Node

    Permalink
    Definition Classes
    InterproceduralGraph → AlirGraph
  51. def getProcessed: MMap[(Signature, Context), ISet[Node]]

    Permalink
  52. val graph: DirectedPseudograph[Node, Edge]

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph → AlirGraph
  53. def hasEdge(n1: Node, n2: Node): Boolean

    Permalink
    Definition Classes
    AlirGraph
  54. def hasNode(n: Node): Boolean

    Permalink
    Definition Classes
    AlirGraph
  55. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  56. def icfgCallNodeExists(context: Context): Boolean

    Permalink
  57. def icfgEntryNodeExists(context: Context): Boolean

    Permalink
  58. def icfgExitNodeExists(context: Context): Boolean

    Permalink
  59. def icfgICFGCenterNodeExists(context: Context): Boolean

    Permalink
  60. def icfgNormalNodeExists(context: Context): Boolean

    Permalink
  61. def icfgReturnNodeExists(context: Context): Boolean

    Permalink
  62. def isCall(l: LocationDecl): Boolean

    Permalink
  63. def isEdgeType(e: Edge, typ: String): Boolean

    Permalink
  64. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  65. def isProcessed(proc: Signature, callerContext: Context): Boolean

    Permalink
  66. def merge(icfg: InterproceduralControlFlowGraph[Node]): Any

    Permalink
  67. final def ne(arg0: AnyRef): Boolean

    Permalink
    Definition Classes
    AnyRef
  68. def newICFGCallNode(context: Context): ICFGCallNode

    Permalink
    Attributes
    protected
  69. def newICFGCenterNode(context: Context): ICFGCenterNode

    Permalink
    Attributes
    protected
  70. def newICFGEntryNode(context: Context): ICFGEntryNode

    Permalink
    Attributes
    protected
  71. def newICFGExitNode(context: Context): ICFGExitNode

    Permalink
    Attributes
    protected
  72. def newICFGNormalNode(context: Context): ICFGNormalNode

    Permalink
    Attributes
    protected
  73. def newICFGReturnNode(context: Context): ICFGReturnNode

    Permalink
    Attributes
    protected
  74. def nodes: Iterable[Node]

    Permalink
    Definition Classes
    AlirGraph
  75. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  76. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  77. def numOfEdges: Int

    Permalink
    Definition Classes
    AlirGraph
  78. def numOfNodes: Int

    Permalink
    Definition Classes
    AlirGraph
  79. val pl: MMap[InterproceduralNode, Node]

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  80. def pool: MMap[InterproceduralNode, Node]

    Permalink
    Definition Classes
    InterproceduralGraph
  81. def prePostNodeOrder(n: Node): MMap[Node, (Int, Int)]

    Permalink
    Definition Classes
    AlirGraph
  82. def predecessor(node: Node, branch: Option[Branch]): Node

    Permalink
  83. def predecessor(edge: Edge): Node

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  84. def predecessorEdges(node: Node): CSet[Edge]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  85. def predecessors(node: Node): CSet[Node]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  86. def reverse: InterproceduralControlFlowGraph[Node]

    Permalink
  87. def stronglyConnectedSets: Iterable[CSet[Node]]

    Permalink
    Definition Classes
    AlirGraph
  88. def successor(node: Node, branch: Option[Branch]): Node

    Permalink
  89. def successor(edge: Edge): Node

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  90. def successorEdges(node: Node): CSet[Edge]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  91. def successors(node: Node): CSet[Node]

    Permalink
    Definition Classes
    AlirSuccPredAccesses
  92. final def synchronized[T0](arg0: ⇒ T0): T0

    Permalink
    Definition Classes
    AnyRef
  93. def toApiGraph(global: Global): InterproceduralControlFlowGraph[Node]

    Permalink
  94. def toDot(w: Writer, vlp: VertexNameProvider[Node] = vIDProvider): Unit

    Permalink
    Definition Classes
    InterproceduralGraph
  95. def toGML(w: Writer, vip: VertexNameProvider[Node] = vIDProvider, vlp: VertexNameProvider[Node] = vLDProvider, eip: EdgeNameProvider[Edge] = eIDProvider, elp: EdgeNameProvider[Edge] = null): Unit

    Permalink
    Definition Classes
    InterproceduralGraph
  96. def toGraphML(w: Writer, vip: VertexNameProvider[Node] = vIDProvider, vlp: VertexNameProvider[Node] = vLDProvider, eip: EdgeNameProvider[Edge] = eIDProvider, elp: EdgeNameProvider[Edge] = null): Unit

    Permalink
    Definition Classes
    InterproceduralGraph
  97. def toString(): String

    Permalink
    Definition Classes
    InterproceduralControlFlowGraph → AnyRef → Any
  98. def useBranch[T](pst: ProcedureSymbolTable)(f: ⇒ T): T

    Permalink
  99. val vIDProvider: VertexNameProvider[Node] { def filterLabel(uri: String): String }

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  100. val vLDProvider: VertexNameProvider[Node] { def filterLabel(uri: String): String }

    Permalink
    Attributes
    protected
    Definition Classes
    InterproceduralGraph
  101. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  102. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  103. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from InterproceduralGraph[Node]

Inherited from Serializable

Inherited from Serializable

Inherited from AlirSuccPredAccesses[Node]

Inherited from AlirEdgeAccesses[Node]

Inherited from AlirGraph[Node]

Inherited from AnyRef

Inherited from Any

Ungrouped