Working version of TaskAnalysis without using DOTVistor.visit()...
authorsivaji <sivaji>
Wed, 2 May 2007 19:16:41 +0000 (19:16 +0000)
committersivaji <sivaji>
Wed, 2 May 2007 19:16:41 +0000 (19:16 +0000)
Robust/src/Analysis/TaskStateAnalysis/FlagState.java
Robust/src/Analysis/TaskStateAnalysis/TaskAnalysis.java

index a34c1fb206e389e658407fa39227e7c314d38437..74dab1cb521bd6177f5caf6d51999706e47181be 100644 (file)
@@ -272,7 +272,7 @@ public class FlagState {
                          output.println("\tremincross=true;");*/
             output.println("\tnode [fontsize=10,height=\"0.1\", width=\"0.1\"];");
             output.println("\tedge [fontsize=6];");
-            //traverse();
+            traverse();
             output.println("}\n");
         }
 
index d94887b1059e397b0a55900e34ade00c98d598ba..c64622ec9fb3b1b9331def8b556a77bb26152a08 100644 (file)
@@ -5,8 +5,10 @@ import IR.Tree.*;
 import IR.Flat.*;
 import java.util.*;
 import java.io.File;
+import java.io.FileWriter;
 import java.io.FileOutputStream;
 
+
 public class TaskAnalysis {
     State state;
     Hashtable flagstates;
@@ -430,10 +432,38 @@ public class TaskAnalysis {
           
        File dotfile= new File("graph"+cd.getSymbol()+".dot");
 
-       FileOutputStream dotstream=new FileOutputStream(dotfile,true);
+       /*FileOutputStream dotstream=new FileOutputStream(dotfile,true);
        
        FlagState.DOTVisitor.visit(dotstream,((Hashtable)flagstates.get(cd)).values());
+       */
+       
+       FileWriter dotwriter=new FileWriter(dotfile,true);
+
+       dotwriter.write("digraph G{ \n");
+       dotwriter.write("center=true;\norientation=landscape;\n");
+       
+       //***debug***
+       FlagDescriptor[] flg=(FlagDescriptor [])flags.get(cd);
+       for(int i = 0; i < flg.length ; i++)
+       {
+               dotwriter.write(flg[i].toString()+"\n");
+       }
 
+       //*** debug***  
+       Iterator it_sourcenodes=((Hashtable)flagstates.get(cd)).values().iterator();
+       while(it_sourcenodes.hasNext()) {
+           FlagState fsv = (FlagState)(it_sourcenodes.next());
+           System.out.println(fsv.toString());
+           
+           for(Iterator it_edges=fsv.edges();it_edges.hasNext();) {
+                   Edge tonode=(Edge)it_edges.next();
+                       dotwriter.write(fsv.toString(flg)+" -> "+tonode.getTarget().toString(flg)+"[label=\""+tonode.getLabel()+"\"];\n");
+           }
+
+       }
+       dotwriter.write("}\n");
+       dotwriter.flush();
+       dotwriter.close();
        }