summaryrefslogtreecommitdiff
path: root/tools/dfagen/dfagen/output/dot.py
diff options
context:
space:
mode:
Diffstat (limited to 'tools/dfagen/dfagen/output/dot.py')
-rw-r--r--tools/dfagen/dfagen/output/dot.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/tools/dfagen/dfagen/output/dot.py b/tools/dfagen/dfagen/output/dot.py
new file mode 100644
index 00000000..100cbb8f
--- /dev/null
+++ b/tools/dfagen/dfagen/output/dot.py
@@ -0,0 +1,19 @@
+
+def write (prefix, automaton, user):
+ output = prefix + '.dot'
+ o = open (output, 'w')
+ o.write ('digraph %s {' % prefix)
+ for s in automaton.states.values ():
+ o.write (' %s\n' % s.name)
+ for tr in s.transitions.values ():
+ for br in tr.branches.values ():
+ o.write (' %(state)s -> %(to)s [ label = "%(event)s" ];\n'
+ % dict (
+ state = s.name,
+ event = tr.event.name
+ + (br.name and ': ' + br.name or ''),
+ to = (br.to and br.to.name or s.name),
+ )
+ )
+ o.write ('}')
+ o.close ()