blob: 61930956102acc60fbefd8d3efcf66d21cbf5e3a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
#!/usr/bin/env -Slua -i
local cip = require "automaton"
local x = "abcdefghijklm opqrstuvxyz"
local state = cip(x)
local history = {}
local format = require "format"
local function log (value)
table.insert(history, {previous=state, value=value})
end
function back ()
local entry = table.remove(history)
if not entry then
io.stderr:write("already at the earliest revision\n")
return
end
state = entry.previous
return state
end
function init (data)
if data then
x = data
end
state = cip(x)
history = {}
return state
end
function show ()
print(state)
end
function c ()
log(0)
state = state:pivot()
return state
end
function up ()
log(1)
state = state:up()
return state
end
function down ()
log(3)
state = state:down()
return state
end
function left ()
log(4)
state = state:left()
return state
end
function right ()
log(2)
state = state:right()
return state
end
function flush ()
local values = {}
for _, v in ipairs(history) do
table.insert(values, v)
end
io.write("{", format.csv(values), "}\n")
history = {}
end
|