All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opalj.br.cfg.package.scala Maven / Gradle / Ivy

The newest version!
/* BSD 2-Clause License - see OPAL/LICENSE for details. */
package org.opalj.br

package object cfg {
    private def enumerate(node: CFGNode): Int = node match {
        case _: BasicBlock => 1
        case _: CatchNode  => 2
        case _: ExitNode   => 3
    }
    implicit val cfgNodeOrdering: Ordering[CFGNode] = (x: CFGNode, y: CFGNode) => {
        (x, y) match {
            case (b1: BasicBlock, b2: BasicBlock) => b1.startPC compare b2.startPC
            case (b1: CatchNode, b2: CatchNode)   => (b1.handlerPC, b1.catchType) compare (b2.handlerPC, b2.catchType)
            case (b1: ExitNode, b2: ExitNode)     => b1.normalReturn compare b2.normalReturn
            case (_, _)                           => enumerate(x) compare enumerate(y)
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy