[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