Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

brainless

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

brainless

Interpreter for the Brainfuck esoteric language

  • 0.1.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

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:

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

Keywords

FAQs

Package last updated on 16 Jan 2015

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc