#!/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"}"