0.1.0 • Published 9 years ago

brainless v0.1.0

Weekly downloads
2
License
MIT
Repository
github
Last release
9 years ago

brainless

Interpreter for the Brainfuck esoteric language

npm david

Wikipedia page.

The following features are supported:

  • Almost unlimited number of cells. The ECMA specification for the maximum array length is an unsigned 32-bit integer, 2^32-1 = 4,294,967,295 cells.
    Negative pointer values are also valid, but they are stored in a separate tape. This means that the total tape length is 2*(2^32-1) = 8,589,934,590 cells.
    The state of the program when the pointer is outside these valid ranges is undefined.
  • Each cell stores an IEEE 754 double-precision integer (64 bits), so negative numbers and UTF8 multibyte characters are allowed.
  • It recognizes the usual tokens, but adds the de-facto # for debugging purposes. Prints a json object to the stdout, something similar to this: {"pointer":-1,"tape":{"p":[97,98,99,0],"n":[null,0]}}.
  • It doesn't recognize the token !. There's a cli option to enter an input string.

Tokens:

Usage

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
> a
n
> b
o
> c
p

Send a SIGINT signal (ctrl+c) to kill the process.

CLI

$ brainfuck -h
Usage: 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 exit

Report bugs to <gagle@outlook.com>.

For example:

$ brainfuck examples/reverse -i abc
cba

Note: If the file doesn't exist and doesn't have an extension, it tries to read the same file with the extension .bf.

Programmatically

module(code, input) : undefined
Executes the given code.

var bf = require('brainless');
bf(',[>,]<[.<]', 'abc');
// cba
0.1.0

9 years ago

0.0.5

10 years ago

0.0.4

10 years ago

0.0.3

10 years ago

0.0.2

11 years ago

0.0.1

11 years ago