46 lines
887 B
Plaintext
46 lines
887 B
Plaintext
DEF BRAINFUG CODE$, IN$
|
|
DIM TAPE[30000]
|
|
VAR PNT
|
|
'not sure if len is eval'd each time oh well
|
|
FOR I=0 TO LEN(CODE$)-1
|
|
C$=CODE$[I]
|
|
IF C$==">" THEN
|
|
INC PNT
|
|
ELSEIF C$=="<" THEN
|
|
DEC PNT
|
|
ELSEIF C$=="+" THEN
|
|
INC TAPE[PNT]
|
|
ELSEIF C$=="-" THEN
|
|
DEC TAPE[PNT]
|
|
ELSEIF C$=="." THEN
|
|
PRINT CHR$(TAPE[PNT])
|
|
ELSEIF C$=="," THEN
|
|
TAPE[PNT] = ASC(SHIFT(IN$))
|
|
ELSEIF C$=="[" AND TAPE[PNT]==0 THEN
|
|
NEST = 1
|
|
WHILE NEST
|
|
INC I
|
|
IF CODE$[I]=="[" THEN
|
|
INC NEST
|
|
ELSEIF CODE$[I]=="]" THEN
|
|
DEC NEST
|
|
ENDIF
|
|
WEND
|
|
ELSEIF C$=="]" AND TAPE[PNT]!=0 THEN
|
|
NEST=1
|
|
WHILE NEST
|
|
DEC I
|
|
IF CODE$[I]=="]" THEN
|
|
INC NEST
|
|
ELSEIF CODE$[I]=="[" THEN
|
|
DEC NEST
|
|
ENDIF
|
|
WEND
|
|
ENDIF
|
|
NEXT
|
|
PRINT
|
|
END
|
|
|
|
CODE$="++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++."
|
|
BRAINFUG CODE$, ""
|