Skip to content

fabrv/bf-interpreter

Repository files navigation

Brainfuck CLI Interpreter

NodeJS Brainfuck and Brainfuck ♭ console interpreter

Install and use

Prerequisites

  1. NodeJS

Install

  1. 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:

  1. Having two different memory arrays
    a. The register array has a fixed 16 cells
    b. The standard memory has a dynamic length, it doubles everytime the memory pointer moves past its length
  2. Adds 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)

About

CLI interpreter for Brainfuck

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages