blob: 3950bac045a27dc6c48dcdd24f62c55363575a12 (
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
|
use io;
use os;
fn exec(bf: *Brainfuck, b: []const u8) void = {
for (let i = 0z; i < len(b); i += 1) {
switch (b[i]) {
case '+' =>
bf.mem[bf.ptr] += 1;
case '-' =>
bf.mem[bf.ptr] -= 1;
case '<' =>
if (bf.ptr > 0)
bf.ptr -= 1
else
bf.ptr = mem_size - 1;
case '>' =>
if (bf.ptr < bf.ptr - 1)
bf.ptr += 1
else
bf.ptr = 0;
case '.' =>
io::write(os::stdout, bf.mem[bf.ptr .. bf.ptr + 1])!;
case ',' =>
io::read(os::stdin, bf.mem[bf.ptr .. bf.ptr + 1])!;
case => continue;
};
};
};
|