Skip to content
Snippets Groups Projects
Commit 2b4481f0 authored by Régis Blanc's avatar Régis Blanc
Browse files

template for a call graph object

parent 676732cb
Branches
Tags
No related merge requests found
package leon
import leon.purescala.Definitions._
import leon.purescala.Trees._
import leon.purescala.TypeTrees._
import leon.purescala.Common._
class CallGraph(val program: Program) {
sealed abstract class ProgramPoint
case class FunctionStart(fd: FunDef) extends ProgramPoint
case class ExpressionPoint(wp: Expr) extends ProgramPoint
sealed abstract class EdgeLabel
case class ConditionLabel(expr: Expr) extends EdgeLabel {
require(expr.getType == BooleanType)
}
case class FunctionInvocLabel(fd: FunDef, args: List[Expr]) extends EdgeLabel {
require(args.zip(fd.args).forall(p => p._1.getType == p._2.getType))
}
private lazy val graph: Map[ProgramPoint, Set[EdgeLabel]] = buildGraph
private def buildGraph: Map[ProgramPoint, Set[EdgeLabel]] = {
null
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment