public List <CallGraphNode> GetPostOrder() { var roots = SimpleGraph.FindRoots(GetNodes().Cast <ISimpleGraphNode>()).Cast <CallGraphNode>(); var post = new SDiff.PostOrder(); foreach (var root in roots) { post.Visit(root); } return(post.ordering); }
public Worklist Make(CallGraph c1, CallGraph c2, Config cfg) { var c1Roots = SimpleGraph.FindRoots((IEnumerable <ISimpleGraphNode>)c1.GetNodes()).Cast <CallGraphNode>(); var c2Roots = SimpleGraph.FindRoots((IEnumerable <ISimpleGraphNode>)c2.GetNodes()).Cast <CallGraphNode>(); if (c1Roots.Count() != c2Roots.Count()) { Log.Out(Log.Urgent, "Unequal number of nodes at root level in worklist construction"); } //for(int i = 0; i < c1Roots.Count; i++) // c1Roots[i].Name return(null); }