From 74ac84dcf4f076ba7f27c67c8e52b872ff68c359 Mon Sep 17 00:00:00 2001
From: sivaji <sivaji>
Date: Wed, 2 May 2007 19:16:41 +0000
Subject: [PATCH] Working version of TaskAnalysis without using
 DOTVistor.visit()...

---
 .../Analysis/TaskStateAnalysis/FlagState.java |  2 +-
 .../TaskStateAnalysis/TaskAnalysis.java       | 32 ++++++++++++++++++-
 2 files changed, 32 insertions(+), 2 deletions(-)

diff --git a/Robust/src/Analysis/TaskStateAnalysis/FlagState.java b/Robust/src/Analysis/TaskStateAnalysis/FlagState.java
index a34c1fb2..74dab1cb 100644
--- a/Robust/src/Analysis/TaskStateAnalysis/FlagState.java
+++ b/Robust/src/Analysis/TaskStateAnalysis/FlagState.java
@@ -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");
         }
 
diff --git a/Robust/src/Analysis/TaskStateAnalysis/TaskAnalysis.java b/Robust/src/Analysis/TaskStateAnalysis/TaskAnalysis.java
index d94887b1..c64622ec 100644
--- a/Robust/src/Analysis/TaskStateAnalysis/TaskAnalysis.java
+++ b/Robust/src/Analysis/TaskStateAnalysis/TaskAnalysis.java
@@ -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();
 	}
 	
 
-- 
2.34.1