7
현재 Brainfuck 통역사를 언어로 작성하여 Nimrod을 (를) 이용하고 있습니다. 그것은 성공적으로 컴파일Nimrod의 Brainfuck 통역자
import os, unsigned
const RamSize = 200
type
TRam = array[0..RamSize, int]
var
ram : TRam
ip : int = 0
dp : int = 0
proc readCode(path: string) =
var
f : TFile = open(path)
i : int = 0
while i < RamSize and not EndOfFile(f):
ram[i] = ord(readChar(f))
inc(i)
proc main(path: string) =
readCode(path)
while ip < RamSize:
case chr(ram[ip])
of '>' : inc dp
of '<' : dec dp
of '+' : inc ram[dp]
of '-' : dec ram[dp]
of '.' : write stdout, chr(ram[dp])
else : nil
inc(ip)
echo()
if paramcount() == 1: main(paramstr(1))
else: echo("usage: bfrun PATH")
,하지만 난 그것을 입력을 던질 때처럼 : 현재 루프를 구현하지 않고, 내가 가진
가 문자를 인쇄해야>
+++++ +++++
+++++ +++++
+++++ +++++
+++++ +++++
+++++ +++++
+++++ +++++
+++++ .
는 'A'는이 반환 'N을 ' 어떤 아이디어?
감사합니다. 해결책은 캐리지 리턴에서 증가하는 문제를 피하기 위해 또 다른 RAM "테이프"를 추가하는 것입니다. –