diff options
-rw-r--r-- | .gitignore | 2 | ||||
-rwxr-xr-x | dot.lua | 31 |
2 files changed, 33 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b38f805 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.dot +*.png @@ -0,0 +1,31 @@ +#!/usr/bin/env lua +local automaton = require "automaton" +local init = {} +for i=1, 25 do + table.insert(init, i) +end +init = automaton(init) + + +local function dump_edges (state, prefix, color) + prefix = prefix or "" + color = color or "gray" + io.write(prefix, "edge [color=", color, "];\n") + for i, v in ipairs(state) do + io.write(prefix, string.format("%d -> %d;\n", v, i)) + end +end + + +print[[ +digraph { + node [style=filled]; + node [fillcolor="#ded"] 1 2 3 [fillcolor=green] 4 5 6 7 8 9; + node [fillcolor="#dde"] 10 11 12 13 14 15 16; + node [fillcolor="#fed"] 17 18 19 [fillcolor=red] 20 21 22 23 24 25;]] +dump_edges(init:left(), "\t", "red") +dump_edges(init:right(), "\t", "blue") +dump_edges(init:pivot(), "\t", "aqua") +dump_edges(init:up(), "\t", "purple") +dump_edges(init:down(), "\t", "darkgreen") +print"}" |