Simply compiles Brainfuck code to JavaScript and interprets the Brainfuck code by evaluating the JavaScript code.
Command line interface
Syntax
- $ brainfuck code [input]
Arguments
- code – (string) The Brainfuck code to interpret.
- input – (string, optional) Used as input to the Brainfuck program.
Example

Todo
- Make options to interpret Brainfuck code from a file on the server instead of using direct input
brainfuck.js
- /**
- * Javascript brainfuck interpreter, inspired
- * by http://www.muppetlabs.com/~breadbox/bf/
- **/
- TinyShell.plugins.brainfuck = new Class({
- description: "Interpret brainfuck code",
- run : function(t, args) {
- if (!args.length) {
- t.print("brainfuck: usage: brainfuck code [input]");
- t.resume();
- return;
- }
- var commands = {
- '>' : "++p;",
- '<' : "--p;",
- '+' : "if(++array[p]>255)array[p]=0;", // modulus
- '-' : "if(--array[p]<0)array[p]=255;", // modulus
- '.' : "output.push(array[p]);",
- ',' : "array[p]=input.shift();",
- '[' : "while(array[p]){",
- ']' : "}"
- }
- var output = [];
- var input = args.length > 1 ? args[1].split("") : [];
- var js = "var array=[];for(var j=0;j<30000;j++){array[j]=0;};var p=0;";
- for(var i = 0; i < args[0].length; i++) if ($defined(commands[args[0].charAt(i)])) js += commands[args[0].charAt(i)];
- eval(js);
- var outstr = "";
- for(var i = 0; i < output.length; i++) outstr += String.fromCharCode(output[i]);
- t.print(outstr);
- t.resume();
- }
- });