[pypy-svn] rev 2063 - in pypy/trunk/src/pypy: objspace/flow translator/tool

hpk at codespeak.net hpk at codespeak.net
Sat Oct 25 22:06:41 CEST 2003


Author: hpk
Date: Sat Oct 25 22:06:40 2003
New Revision: 2063

Modified:
   pypy/trunk/src/pypy/objspace/flow/model.py
   pypy/trunk/src/pypy/translator/tool/make_dot.py
Log:
some tweaks to dot-view (and view of Variables/Constants) 



Modified: pypy/trunk/src/pypy/objspace/flow/model.py
==============================================================================
--- pypy/trunk/src/pypy/objspace/flow/model.py	(original)
+++ pypy/trunk/src/pypy/objspace/flow/model.py	Sat Oct 25 22:06:40 2003
@@ -51,7 +51,7 @@
             Variable.counter += 1
         self.name = name
     def __repr__(self):
-        return '<%s>' % self.name
+        return '%s' % self.name
 
 class Constant:
     def __init__(self, value):
@@ -63,7 +63,7 @@
     def __hash__(self):
         return hash(self.value)
     def __repr__(self):
-        return '<%r>' % (self.value,)
+        return '%r' % (self.value,)
 
 class SpaceOperation:
     def __init__(self, opname, args, result): 
@@ -80,7 +80,7 @@
     def __hash__(self):
         return hash((self.opname,tuple(self.args),self.result))
     def __repr__(self):
-        return "%r <- %s(%s)" % (self.result, self.opname, ", ".join(map(repr, self.args)))
+        return "%r = %s(%s)" % (self.result, self.opname, ", ".join(map(repr, self.args)))
 
 def uniqueitems(lst):
     "Returns a list with duplicate elements removed."

Modified: pypy/trunk/src/pypy/translator/tool/make_dot.py
==============================================================================
--- pypy/trunk/src/pypy/translator/tool/make_dot.py	(original)
+++ pypy/trunk/src/pypy/translator/tool/make_dot.py	Sat Oct 25 22:06:40 2003
@@ -38,16 +38,16 @@
     def emit(self, line):
         self.lines.append(line)
 
-    def emit_edge(self, name1, name2, label="", style="dashed", **kw):
+    def emit_edge(self, name1, name2, label="", style="dashed", color="black", **kw):
         d = locals()
         d.update(kw)
-        self.emit('edge [style="%(style)s", dir="forward", weight=0, label="%(label)s"];' % d)
+        self.emit('edge [style=%(style)s, color=%(color)s, dir="forward", weight=0, label="%(label)s"];' % d)
         self.emit('%(name1)s -> %(name2)s;' % d)
 
-    def emit_node(self, name, shape, label, **kw):
+    def emit_node(self, name, shape, label, color="black", **kw):
         d = locals()
         d.update(kw)
-        self.emit('%(name)s [shape=%(shape)s, label="%(label)s"];' % d)
+        self.emit('%(name)s [shape=%(shape)s, color="%(color)s" label="%(label)s"];' % d)
 
     def visit(self, obj):
         # ignore for now 
@@ -68,18 +68,20 @@
 
         numblocks = len(block.exits)
 
+        color = "black"
         if not numblocks:
            shape = "circle"
         elif numblocks == 1:
             shape = "box"
         else:
+            color = "red"
             lines.append("exitswitch: %s" % block.exitswitch)
             shape = "octagon"
 
         iargs = " ".join(map(repr, block.inputargs))
         data = "%s(%s)\\ninputargs: %s\\n\\n" % (name, block.__class__.__name__, iargs)
         data = data + "\l".join(lines)
-        self.emit_node(name, shape, data)
+        self.emit_node(name, label=data, shape=shape, color=color)
 
         if numblocks == 1:
             name2 = self.blockname(block.exits[0].target)
@@ -91,7 +93,7 @@
                 name2 = self.blockname(link.target)
                 label = " ".join(map(repr, link.args))
                 label = "%s: %s" %(str(i), label)
-                self.emit_edge(name, name2, label, style="dotted")
+                self.emit_edge(name, name2, label, style="dotted", color=color)
                 i+=1
 
 
@@ -124,4 +126,4 @@
 
     space = Space()
     graph = space.build_flow(f)
-    make_dot(graph)
+    make_dot(graph, udir.dirname())


More information about the Pypy-commit mailing list