summaryrefslogtreecommitdiff
path: root/main.ha
blob: c8e5c656ed3d211355728c370bb4fe5c6e4e061a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use fmt;
use os;
use strings;

let bf: Brainfuck = Brainfuck {
	ptr = 0,
	mem = [0...]
};

export fn main() void = {
	if (len(os::args) != 2)
		fmt::fatal("usage: hare-brainfuck <source>");
	const buf = drain(os::args[1]);
	defer free(buf);
	const buf = optimize(buf);
	fmt::println("optimized source", strings::fromutf8(buf)!)!;
	exec(&bf, buf);
};