Add tasks for all the new languages
This commit is contained in:
parent
9dc3c2bb62
commit
bba7bfd280
13208 changed files with 134745 additions and 0 deletions
32
Task/Execute-Brain----/Nim/execute-brain----.nim
Normal file
32
Task/Execute-Brain----/Nim/execute-brain----.nim
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
import os
|
||||
|
||||
var
|
||||
code = if paramCount() > 0: readFile paramStr 1
|
||||
else: readAll stdin
|
||||
tape = newSeq[char]()
|
||||
d = 0
|
||||
i = 0
|
||||
|
||||
proc run(skip = false): bool =
|
||||
while d >= 0 and i < code.len:
|
||||
if d >= tape.len: tape.add '\0'
|
||||
|
||||
if code[i] == '[':
|
||||
inc i
|
||||
let p = i
|
||||
while run(tape[d] == '\0'): i = p
|
||||
elif code[i] == ']':
|
||||
return tape[d] != '\0'
|
||||
elif not skip:
|
||||
case code[i]
|
||||
of '+': inc tape[d]
|
||||
of '-': dec tape[d]
|
||||
of '>': inc d
|
||||
of '<': dec d
|
||||
of '.': stdout.write tape[d]
|
||||
of ',': tape[d] = stdin.readChar
|
||||
else: discard
|
||||
|
||||
inc i
|
||||
|
||||
discard run()
|
||||
Loading…
Add table
Add a link
Reference in a new issue