aboutsummaryrefslogtreecommitdiffstats
path: root/util/machina2dot.py
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2007-03-18 02:11:51 +0000
committerDavid Robillard <d@drobilla.net>2007-03-18 02:11:51 +0000
commit47f59aaad7a5ab8c189905544a761940ae9f8509 (patch)
tree67b6ec9ad915de327cda5007c8c1708a1e256c87 /util/machina2dot.py
parenta716b2c0571f5bdcd817835cecb30cb7a4c745e0 (diff)
downloadmachina-47f59aaad7a5ab8c189905544a761940ae9f8509.tar.gz
machina-47f59aaad7a5ab8c189905544a761940ae9f8509.tar.bz2
machina-47f59aaad7a5ab8c189905544a761940ae9f8509.zip
Improved automata diagram drawing (include notes, use standard initial note notation).
Made compilation without Jack possible. git-svn-id: http://svn.drobilla.net/lad/machina@363 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'util/machina2dot.py')
-rwxr-xr-xutil/machina2dot.py78
1 files changed, 0 insertions, 78 deletions
diff --git a/util/machina2dot.py b/util/machina2dot.py
deleted file mode 100755
index cb704ef..0000000
--- a/util/machina2dot.py
+++ /dev/null
@@ -1,78 +0,0 @@
-#!/usr/bin/python
-
-import sys
-import RDF
-
-model = RDF.Model()
-parser = RDF.Parser(name="guess")
-
-if len(sys.argv) != 2:
- print "Usage: machina2dot FILE"
- sys.exit(-1)
-
-parser.parse_into_model(model, "file:" + sys.argv[1])
-
-
-print """
-digraph finite_state_machine {
- rankdir=LR;
- node [ shape = circle ];
-""",
-
-node_durations = { }
-
-initial_nodes_query = RDF.SPARQLQuery("""
-PREFIX machina: <http://drobilla.net/ns/machina#>
-SELECT DISTINCT ?n ?dur WHERE {
- ?m machina:initialNode ?n .
- ?n a machina:Node ;
- machina:duration ?dur .
-}
-""")
-
-invis_id = 0;
-
-for result in initial_nodes_query.execute(model):
- node_id = result['n'].blank_identifier
- duration = float(result['dur'].literal_value['string'])
- node_durations[node_id] = duration
- print "\t{ node [ style = invis ] ",
- print "invis%d" % invis_id, " }"
- print '\t', node_id, "[ label = \"d =", duration, "\"];"
- print '\t', "invis%d" % invis_id, " -> ", node_id
- invis_id += 1
-
-
-nodes_query = RDF.SPARQLQuery("""
-PREFIX machina: <http://drobilla.net/ns/machina#>
-SELECT DISTINCT ?n ?dur WHERE {
- ?m machina:node ?n .
- ?n a machina:Node ;
- machina:duration ?dur .
-}
-""")
-
-for result in nodes_query.execute(model):
- node_id = result['n'].blank_identifier
- duration = float(result['dur'].literal_value['string'])
- node_durations[node_id] = duration
- print '\t', node_id, "[ label = \"d =", "%.2f" % duration, "\"]; "
-
-
-edge_query = RDF.SPARQLQuery("""
-PREFIX machina: <http://drobilla.net/ns/machina#>
-SELECT DISTINCT ?tail ?head ?prob WHERE {
- ?e a machina:Edge ;
- machina:tail ?tail ;
- machina:head ?head ;
- machina:probability ?prob .
-}
-""")
-
-for edge in edge_query.execute(model):
- print '\t', edge['tail'].blank_identifier, ' -> ',
- print edge['head'].blank_identifier, ' ',
- print "[ label = \"", "%1.2f" % float(edge['prob'].literal_value['string']), "\" ",
- print "minlen = ", node_durations[edge['tail'].blank_identifier] * 2, " ];"
-
-print "}"