Add test script.
Chris Pressey
1 year, 10 months ago
0 | |
-- Usage:
|
1 | |
-- LUA_PATH="?.lua" lua test.lua
|
2 | |
|
3 | |
table = require "table"
|
4 | |
|
5 | |
r = require "whothm"
|
6 | |
|
7 | |
local t = TruthTable.new()
|
8 | |
print(t.to_s())
|
9 | |
t.map_to_true("FF")
|
10 | |
print(t.to_s())
|
11 | |
print(t.apply(false, false))
|
12 | |
print(t.apply(false, true))
|
13 | |
|
14 | |
local r = Rectangle.new(5, 1, 6, 10)
|
15 | |
print(r.to_s())
|
16 | |
|
17 | |
local b = BitMap.new(40, 20)
|
18 | |
local t = TruthTable.new()
|
19 | |
t.map_to_true("FT")
|
20 | |
t.map_to_true("TF")
|
21 | |
r.draw(b, t)
|
22 | |
print(b.to_s())
|
23 | |
|
24 | |
local source = [[
|
25 | |
r := (0, 0, 1, 2);
|
26 | |
s := (0, 0, 1, -987654321);
|
27 | |
XOR := TF/FT;
|
28 | |
|
29 | |
begin
|
30 | |
r.x += r.w;
|
31 | |
r.x += -1;
|
32 | |
r.w += 1;
|
33 | |
r.h += 1;
|
34 | |
draw r, XOR;
|
35 | |
s.x += s.w;
|
36 | |
s.x += -1;
|
37 | |
s.w += 1;
|
38 | |
s.h += 2;
|
39 | |
draw s, XOR;
|
40 | |
end
|
41 | |
]]
|
42 | |
local s = Scanner.new(source)
|
43 | |
local scanned = {}
|
44 | |
token = s.scan()
|
45 | |
while token ~= "EOF" do
|
46 | |
table.insert(scanned, token)
|
47 | |
token = s.scan()
|
48 | |
end
|
49 | |
print(table.concat(scanned, "|"))
|
50 | |
|
51 | |
|
52 | |
local source = [[
|
53 | |
r := (0, 0, 1, 2);
|
54 | |
s := (0, 0, 1, 1);
|
55 | |
XOR := TF/FT;
|
56 | |
begin
|
57 | |
r.x += r.w;
|
58 | |
r.x += -1;
|
59 | |
r.w += 1;
|
60 | |
r.h += 1;
|
61 | |
draw r, XOR;
|
62 | |
s.x += s.w;
|
63 | |
s.x += -1;
|
64 | |
s.w += 1;
|
65 | |
s.h += 2;
|
66 | |
draw s, XOR;
|
67 | |
end
|
68 | |
]]
|
69 | |
local p = Parser.new(source)
|
70 | |
local machine = p.parse()
|
71 | |
p.dump_state()
|
72 | |
print(machine.to_s())
|
|
0 |
-- Usage:
|
|
1 |
-- LUA_PATH="?.lua" lua test.lua
|
|
2 |
|
|
3 |
table = require "table"
|
|
4 |
|
|
5 |
r = require "whothm"
|
|
6 |
|
|
7 |
local t = TruthTable.new()
|
|
8 |
print(t.to_s())
|
|
9 |
t.map_to_true("FF")
|
|
10 |
print(t.to_s())
|
|
11 |
print(t.apply(false, false))
|
|
12 |
print(t.apply(false, true))
|
|
13 |
|
|
14 |
local r = Rectangle.new(5, 1, 6, 10)
|
|
15 |
print(r.to_s())
|
|
16 |
|
|
17 |
local b = BitMap.new(40, 20)
|
|
18 |
local t = TruthTable.new()
|
|
19 |
t.map_to_true("FT")
|
|
20 |
t.map_to_true("TF")
|
|
21 |
r.draw(b, t)
|
|
22 |
print(b.to_s())
|
|
23 |
|
|
24 |
local source = [[
|
|
25 |
r := (0, 0, 1, 2);
|
|
26 |
s := (0, 0, 1, -987654321);
|
|
27 |
XOR := TF/FT;
|
|
28 |
|
|
29 |
begin
|
|
30 |
r.x += r.w;
|
|
31 |
r.x += -1;
|
|
32 |
r.w += 1;
|
|
33 |
r.h += 1;
|
|
34 |
draw r, XOR;
|
|
35 |
s.x += s.w;
|
|
36 |
s.x += -1;
|
|
37 |
s.w += 1;
|
|
38 |
s.h += 2;
|
|
39 |
draw s, XOR;
|
|
40 |
end
|
|
41 |
]]
|
|
42 |
local s = Scanner.new(source)
|
|
43 |
local scanned = {}
|
|
44 |
token = s.scan()
|
|
45 |
while token ~= "EOF" do
|
|
46 |
table.insert(scanned, token)
|
|
47 |
token = s.scan()
|
|
48 |
end
|
|
49 |
print(table.concat(scanned, "|"))
|
|
50 |
|
|
51 |
|
|
52 |
local source = [[
|
|
53 |
r := (0, 0, 1, 2);
|
|
54 |
s := (0, 0, 1, 1);
|
|
55 |
XOR := TF/FT;
|
|
56 |
begin
|
|
57 |
r.x += r.w;
|
|
58 |
r.x += -1;
|
|
59 |
r.w += 1;
|
|
60 |
r.h += 1;
|
|
61 |
draw r, XOR;
|
|
62 |
s.x += s.w;
|
|
63 |
s.x += -1;
|
|
64 |
s.w += 1;
|
|
65 |
s.h += 2;
|
|
66 |
draw s, XOR;
|
|
67 |
end
|
|
68 |
]]
|
|
69 |
local p = Parser.new(source)
|
|
70 |
local machine = p.parse()
|
|
71 |
p.dump_state()
|
|
72 |
print(machine.to_s())
|
|
0 |
#!/bin/sh
|
|
1 |
|
|
2 |
(cd impl/whothm.lua/src && LUA_PATH="?.lua" lua test_whothm.lua)
|