X-Git-Url: http://plrg.eecs.uci.edu/git/?p=repair.git;a=blobdiff_plain;f=Repair%2FRepairCompiler%2FMCC%2FIR%2FTermination.java;h=b788acc3ac8937242cd905b7a216dbe8ff5778f5;hp=bfbe8db16066c3780a67597b4554f36590471a26;hb=6e6caa157ea20e565ea92786ef266c952e6f39b3;hpb=cd8c06f13c3d628b15f745790e3eeac2891c5736 diff --git a/Repair/RepairCompiler/MCC/IR/Termination.java b/Repair/RepairCompiler/MCC/IR/Termination.java index bfbe8db..b788acc 100755 --- a/Repair/RepairCompiler/MCC/IR/Termination.java +++ b/Repair/RepairCompiler/MCC/IR/Termination.java @@ -15,6 +15,8 @@ public class Termination { Hashtable scopesatisfy; Hashtable scopefalsify; Hashtable consequence; + Hashtable abstractadd; + Hashtable abstractremove; State state; @@ -29,11 +31,15 @@ public class Termination { consequence=new Hashtable(); updatenodes=new HashSet(); consequencenodes=new HashSet(); + abstractadd=new Hashtable(); + abstractremove=new Hashtable(); + generateconjunctionnodes(); generatescopenodes(); generaterepairnodes(); generatedatastructureupdatenodes(); + generatecompensationnodes(); generateabstractedges(); generatescopeedges(); @@ -41,16 +47,25 @@ public class Termination { HashSet superset=new HashSet(); superset.addAll(conjunctions); - superset.addAll(abstractrepair); - superset.addAll(updatenodes); - superset.addAll(scopenodes); - superset.addAll(consequencenodes); + //superset.addAll(abstractrepair); + //superset.addAll(updatenodes); + //superset.addAll(scopenodes); + //superset.addAll(consequencenodes); + GraphNode.computeclosure(superset,null); try { GraphNode.DOTVisitor.visit(new FileOutputStream("graph.dot"),superset); } catch (Exception e) { e.printStackTrace(); System.exit(-1); } + for(Iterator it=updatenodes.iterator();it.hasNext();) { + GraphNode gn=(GraphNode)it.next(); + TermNode tn=(TermNode)gn.getOwner(); + MultUpdateNode mun=tn.getUpdate(); + System.out.println(gn.getTextLabel()); + System.out.println(mun.toString()); + } + GraphAnalysis ga=new GraphAnalysis(this); } void generateconjunctionnodes() { @@ -60,9 +75,13 @@ public class Termination { DNFConstraint dnf=c.dnfconstraint; for(int j=0;j