コード例 #1
0
 public bool HasSinglePredecessor(APC ppoint, out APC singlePredecessor, bool skipContracts)
 {
     CallAdaption.Push <IEdgeSubroutineAdaptor>(this);
     try
     {
         return(underlying.HasSinglePredecessor(ppoint, out singlePredecessor, skipContracts));
     }
     finally {
         CallAdaption.Pop(this);
     }
 }
コード例 #2
0
 public IEnumerable <APC> Successors(APC ppoint)
 {
     CallAdaption.Push <IEdgeSubroutineAdaptor>(this);
     try
     {
         return(underlying.Successors(ppoint));
     }
     finally {
         CallAdaption.Pop(this);
     }
 }
コード例 #3
0
 public bool HasSingleSuccessor(APC ppoint, out APC singleSuccessor)
 {
     CallAdaption.Push <IEdgeSubroutineAdaptor>(this);
     try
     {
         return(underlying.HasSingleSuccessor(ppoint, out singleSuccessor));
     }
     finally {
         CallAdaption.Pop(this);
     }
 }
コード例 #4
0
 public IEnumerable <APC> Predecessors(APC ppoint, bool skipContracts)
 {
     CallAdaption.Push <IEdgeSubroutineAdaptor>(this);
     try
     {
         return(underlying.Predecessors(ppoint, skipContracts));
     }
     finally
     {
         CallAdaption.Pop(this);
     }
 }
コード例 #5
0
 public void Print(System.IO.TextWriter tw, ILPrinter <APC> ilPrinter, BlockInfoPrinter <APC> edgePrinter, Func <CFGBlock, IEnumerable <DataStructures.FList <DataStructures.STuple <CFGBlock, CFGBlock, string> > > > contextLookup, DataStructures.FList <DataStructures.STuple <CFGBlock, CFGBlock, string> > context)
 {
     CallAdaption.Push <IEdgeSubroutineAdaptor>(this);
     try
     {
         underlying.Print(tw, ilPrinter, edgePrinter, contextLookup, context);
     }
     finally
     {
         CallAdaption.Pop(this);
     }
 }
コード例 #6
0
 public string ToString(APC pc)
 {
     CallAdaption.Push <IEdgeSubroutineAdaptor>(this);
     try
     {
         return(underlying.ToString(pc));
     }
     finally
     {
         CallAdaption.Pop(this);
     }
 }
コード例 #7
0
 public APC PredecessorPCPriorToRequires(APC ppoint)
 {
     CallAdaption.Push <IEdgeSubroutineAdaptor>(this);
     try
     {
         return(underlying.PredecessorPCPriorToRequires(ppoint));
     }
     finally
     {
         CallAdaption.Pop(this);
     }
 }
コード例 #8
0
        public FList <Pair <string, Subroutine> > GetOrdinaryEdgeSubroutines(CFGBlock from, CFGBlock to, SubroutineContext context)
        {
            CallAdaption.Push(this);

            try
            {
                return(this.Subroutine.GetOrdinaryEdgeSubroutines(from, to, context));
            }
            finally
            {
                CallAdaption.Pop(this);
            }
        }
コード例 #9
0
 private IEnumerable <Pair <Unit, APC> > SuccessorEdges(APC pc, IGraph <APC, Unit> underlyingGraph)
 {
     CallAdaption.Push(this);
     try
     {
         foreach (var succ in underlyingGraph.Successors(pc))
         {
             yield return(succ);
         }
     }
     finally
     {
         CallAdaption.Pop(this);
     }
 }