From: sivaji Date: Wed, 2 May 2007 19:16:41 +0000 (+0000) Subject: Working version of TaskAnalysis without using DOTVistor.visit()... X-Git-Tag: preEdgeChange~606 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=74ac84dcf4f076ba7f27c67c8e52b872ff68c359;p=IRC.git Working version of TaskAnalysis without using DOTVistor.visit()... --- 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(); }