21 lines
677 B
Plaintext
21 lines
677 B
Plaintext
# Where `code` is a string.
|
|
bf = (code) :
|
|
tape = (0)
|
|
tape_pos = 0
|
|
brackets = ()
|
|
i = -1
|
|
while (++i < code length) :
|
|
if (code(i) == ">"): if (++tape_pos == tape length): tape append(0)..
|
|
elsif (code(i) == "<"): tape_pos--.
|
|
elsif (code(i) == "+"): tape(tape_pos) = tape(tape_pos) + 1.
|
|
elsif (code(i) == "-"): tape(tape_pos) = tape(tape_pos) - 1.
|
|
elsif (code(i) == "."): tape(tape_pos) chr print.
|
|
elsif (code(i) == ","): tape(tape_pos) = read at(0) ord.
|
|
elsif (code(i) == "["): brackets push(i).
|
|
elsif (code(i) == "]") :
|
|
if (tape(tape_pos) == 0): brackets pop.
|
|
else: i = brackets(-1).
|
|
.
|
|
.
|
|
.
|