258 if visitee
not in self.
ids:
260 dot_id = self.
ids[visitee] =
"T%s" % self.
number
261 dot_id = self.
ids[visitee]
264 if isinstance(visitee, ControlFlowLeaf):
265 entry =
'%s [label="%s", shape=box]' % (dot_id, visitee.name())
266 elif isinstance(visitee, OrNode):
267 entry =
'%s [label="OR", shape=invhouse]' % dot_id
268 elif isinstance(visitee, AndNode):
269 entry =
'%s [label="AND", shape=invhouse]' % dot_id
270 elif isinstance(visitee, OrderedNode):
271 entry =
'%s [label=">>", shape=point]' % dot_id
272 elif isinstance(visitee, InvertNode):
273 entry =
'%s [label="NOT", shape=circle, color=red]' % dot_id
274 elif isinstance(visitee, par):
275 entry =
'%s [label="PAR", shape=circle]' % dot_id
276 elif isinstance(visitee, seq):
277 entry =
'%s [label="SEQ", shape=circle]' % dot_id
279 entry =
'%s [label="%s", shape=circle]' % (dot_id, type(visitee))
280 self.
nodes.append(entry)
281 if len(self.
stack) != 0:
284 mother = self.
stack[-1][1]
285 edge =
"%s->%s" % (dot_id, mother)
286 self.
edges.append(edge)
287 self.
stack.append((visitee, dot_id))