Skip to content

Instantly share code, notes, and snippets.

@Mischa-Alff
Last active August 29, 2015 14:15
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mischa-Alff/51068e97111e75c8d4a8 to your computer and use it in GitHub Desktop.
Save Mischa-Alff/51068e97111e75c8d4a8 to your computer and use it in GitHub Desktop.
Brainfuck interpreter in C.
char*c="code",*z="input",d['u0']={0};
main(r,i,k){char*p=d;int s['~']={k=r=0},*l=s;while(i=c[r++])k?i==91?++k:i==93?k?--k:--k:0:(i==93?*p?r=*l:l--:i==91?*p?*++l=r:++k:0,p+=i==62,p-=i==60,i==46?putchar(*p):0,*p-=i==45,i==44?*p=*z++:0,*p+=i==43);}
// Whitespace version below:
char*c="code",*z="input",d['u0']={0};
main(r,i,k)
{
char*p=d;
int s['~']={k=r=0},*l=s;
while(i=c[r++])
k?i==91?++k:i==93?k?--k:--k:0:(
i==93?*p?r=*l:l--:
i==91?*p?*++l=r:++k:0,
p+=i==62,
p-=i==60,
i==46?putchar(*p):0,
*p-=i==45,
i==44?*p=*z++:0,
*p+=i==43);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment