let brainfuck(INPUT) = do memory = [0] * 30*1000 pointer = 0 output = "" i = 0 while (i < INPUT.length) do if (INPUT[i] == ">") do pointer += 1 else if (INPUT[i] == "<") do pointer -= 1 else if (INPUT[i] == "+") do memory[pointer] += 1 else if (INPUT[i] == "-") do memory[pointer] -= 1 else if (INPUT[i] == ".") do output += chr(memory[pointer]) else if (INPUT[i] == ",") do memory[pointer] = ord(input()) else if (INPUT[i] == "[") do if (memory[pointer] == 0) do count = 1 while (count > 0) do i += 1 if (INPUT[i] == "[") do count += 1 else if (INPUT[i] == "]") do count -= 1 else if (INPUT[i] == "]") do if (memory[pointer] != 0) do count = 1 while (count > 0) do i -= 1 if (INPUT[i] == "]") do count += 1 else if (INPUT[i] == "[") do count -= 1 else do pass i += 1 term.print(memory) return output term.time("brainfuck") term.plain.oneLine(brainfuck(input())) term.timeEnd("brainfuck")