Interpreter for the Brainfuck esoteric language
The following features are supported:
2^32-1 = 4,294,967,295 cells.
2*(2^32-1) = 8,589,934,590 cells.
#for debugging purposes. Prints a json object to the stdout, something similar to this:
!. There's a cli option to enter an input string.
|>||Increments the pointer.|
|<||Decrements the pointer.|
|+||Increments the cell value where points the pointer.|
|-||Decrements the cell value where points the pointer.|
|.||Outputs to the stdout the UTF8 character stored in the cell where points the pointer.|
|,||Reads a UTF8 character and stores it in the cell where points the pointer.|
|[||If the value in the cell where points the pointer is 0, it jumps to the ] token, otherwise it executes the code inside [ and ].|
|]||If the value in the cell where points the pointer is not 0, it jumps back again to the [ token, otherwise it continues with the program execution.|
|#||Outputs the pointer and the state of the tape. For debugging purposes.|
If the program needs to read an input value but no string is provided, it prompts a cli message asking for a character:
$ brainfuck examples/rot13> an> bo> cp
Send a SIGINT signal (ctrl+c) to kill the process.
$ brainfuck -hUsage: brainfuck [options] <input_file>Interpreter for the Brainfuck esoteric language-i, --input=STRING STRING to read during the program execution-h, --help Display this help message and exit-v, --version Output version information and exitReport bugs to <email@example.com>.
$ brainfuck examples/reverse -i abccba
Note: If the file doesn't exist and doesn't have an extension, it tries to read the same file with the extension
module(code[, input]) : undefined
Executes the given code.
var bf = require'brainless';bf',[>,]<[.<]' 'abc';// cba