bfrun
v1.3.2
Published
One more Brainfuck CLI interpreter and derivative
Downloads
13
Maintainers
Readme
Brainfuck CLI Interpreter
NodeJS Brainfuck and Brainfuck ♭ console interpreter
Install and use
Prerequisites
- NodeJS
Install
npm i -g bfrun
Use
| Command | Properties | Description | |---------------|------------|---------------------| | start <file>| --verbose | Runs brainfuck file | | debug <file>| --verbose | Debug brainfuck project, add * to add a debug breakpoint | | test <spec file> <to eval file>| | Unit test a brainfuck file with brainfuck, compare the memory result | | help | | Help from the CLI |
Brainfuck Flat (BFF / B♭)
BFF is a Brainfuck derivative inspired by Brainfuck++, it expands standard Brainfuck in two ways:
Having two different memory arrays
a. Theregister
array has a fixed 16 cells
b. The standardmemory
has a dynamic length, it doubles everytime the memory pointer moves past its lengthAdds this commands:
| Command | Specification | |---------|--------------------------| | ^ | Swaps between memory strip and registers strip. | | # | Reads filename until a null byte is reached, input buffer will now be said file, pointer returns to original cell. If file doesn't exists the program will exit. | | : | Reads filename until a null byte is reached, dumps all non-zero memory except filename in said file. If file doesn't exists the program will exit. | | :: | Reads filename until a null byte is reached, writes file with no content, if a file already existis it will replace it. |
Unit testing
Now you can unit test a brainfuck file with another brainfuck file!
To use it first create a new brainfuck file, preferably name it like the file you want to test with a _spec
after the name and with extension .bf
.
Inside the file start with the input to test and finish the input with a !
, everything before the exclamation mark will be read as input for the evaluated BF.
Insert in memory the final memory dump you expect on the evaluated file. Example: This an example of addition of a + 2 sum_spec.bf
3!
++++++++++++++++++++++++++++++++++++++++++++++++++++
sum.bf
,>++[<+>-]
Then run the command bfrun test sum_spec.bf sum.bf
(If you want header comments on your spec file add it after the exclamation mark)