From d4dd6baae7ec7d4c02d978762cf4dd99b83ec04a Mon Sep 17 00:00:00 2001 From: Aki Date: Thu, 7 Nov 2024 18:30:16 +0100 Subject: Dump automaton to a graphviz digraph --- .gitignore | 2 ++ dot.lua | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 .gitignore create mode 100755 dot.lua diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b38f805 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +*.dot +*.png diff --git a/dot.lua b/dot.lua new file mode 100755 index 0000000..8ef5685 --- /dev/null +++ b/dot.lua @@ -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"}" -- cgit v1.1