summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kdx@42l.fr>2023-01-19 00:29:29 +0100
committerkdx <kdx@42l.fr>2023-01-19 00:30:20 +0100
commit08ee35a3c6d5cf5ec89d55c6f25f4acdfe703b13 (patch)
tree9f9c215ddf14389584f78177fef292dcffdb2099
parenta4ed47d2e35d2e596c06ece8f2513a2716d0e19a (diff)
downloadhare-brainfuck-main.tar.gz
input is kinda okHEADmain
-rw-r--r--exec.ha12
-rw-r--r--test.bf2
2 files changed, 9 insertions, 5 deletions
diff --git a/exec.ha b/exec.ha
index 8b73c8b..3950bac 100644
--- a/exec.ha
+++ b/exec.ha
@@ -4,8 +4,10 @@ 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 '+' =>
+ bf.mem[bf.ptr] += 1;
+ case '-' =>
+ bf.mem[bf.ptr] -= 1;
case '<' =>
if (bf.ptr > 0)
bf.ptr -= 1
@@ -16,8 +18,10 @@ fn exec(bf: *Brainfuck, b: []const u8) void = {
bf.ptr += 1
else
bf.ptr = 0;
- case '.' => io::write(os::stdout, bf.mem[bf.ptr..bf.ptr])!;
- case ',' => io::read(os::stdin, bf.mem[bf.ptr..bf.ptr])!;
+ 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;
};
};
diff --git a/test.bf b/test.bf
index 3b759f3..3670b41 100644
--- a/test.bf
+++ b/test.bf
@@ -10,4 +10,4 @@ j+++
dawjdwadjwa
A-da_d-wad
AW-d_DW-
-,.+,-.+..-..
+,.>,<.>..<..