func main[] : i64 // https://brainfuck.org/sierpinski.b let src: str = "++++++++[>+>++++<<-]>++>>+<[-[>>+<<-]+>>]>+[-<<<[->[+[-]+>++>>>-<<]<[<]>>++++++[<<+++++>>-]+<<++.[-]<<]>.>+[>>]>+]" let src_len: i64 = str.len(src) let i: i64 = 0 let memory: ptr = mem.alloc(30000) mem.zero(memory, 30000) let p: i64 = 0 while i < src_len let op: u8 = src[i] if op == '>' p = p + 1 else if op == '<' p = p - 1 else if op == '+' str.set(memory, p, memory[p] + 1) else if op == '-' str.set(memory, p, memory[p] - 1) else if op == '.' io.print_char(memory[p]) else if op == ',' str.set(memory, p, io.read_char()) else if op == '[' if !memory[p] i = i + 1 let opened: i64 = 0 while i < src_len & !(src[i] == ']' & !opened) if src[i] == '[' opened = opened + 1 else if src[i] == ']' opened = opened - 1 i = i + 1 else if op == ']' if memory[p] i = i - 1 let closed: i64 = 0 while i >= 0 & !(src[i] == '[' & !closed) if src[i] == ']' closed = closed + 1 else if src[i] == '[' closed = closed - 1 i = i - 1 i = i + 1 mem.free(memory)