aboutsummaryrefslogtreecommitdiffstats
path: root/bench/rule110.bad
diff options
context:
space:
mode:
Diffstat (limited to 'bench/rule110.bad')
-rw-r--r--bench/rule110.bad39
1 files changed, 39 insertions, 0 deletions
diff --git a/bench/rule110.bad b/bench/rule110.bad
new file mode 100644
index 0000000..b4a2a71
--- /dev/null
+++ b/bench/rule110.bad
@@ -0,0 +1,39 @@
1; Parameters.
2let line = 0b00000000000000000000000000000001
3let max_iter = 30
4
5; Print current line.
6fun print_line(line: int): nil {
7 for let i = 0 , i < 64 , set i += 1 {
8 let val = line >> 63 - i & 0b1
9 if val == 0b1 {
10 print("■ ")
11 } else {
12 print("· ")
13 }
14 }
15 println("")
16}
17
18; Get the next line.
19fun next_line(line: int): int {
20 let next = 0
21 for let j = 0 , j < 61 , set j += 1 {
22 let val = line >> 60 - j & 0b111
23 set val = cond {
24 val == 1 = 1
25 val == 2 = 1
26 val == 3 = 1
27 val == 5 = 1
28 val == 6 = 1
29 else = 0
30 }
31 set next |= val << 61 - j
32 }
33 next | 1
34}
35
36for let iter = 0 , iter < max_iter , set iter += 1 {
37 print_line(line)
38 set line = next_line(line)
39}