No description
Find a file
2023-04-14 00:46:15 +00:00
src fix the thing with the thing 2023-04-13 19:27:20 -04:00
.gitignore Added cmakelists lol 2023-04-13 20:44:55 -04:00
CMakeLists.txt Added cmakelists lol 2023-04-13 20:44:55 -04:00
LICENSE brainfucked 2023-04-13 17:04:05 -04:00
Makefile fix makefile 2023-04-13 18:31:29 -04:00
readme.md readme 2023-04-13 17:18:39 -04:00

Brainfucked

Its brainfuck but with manual memory allocation :3

All normal brainfuck is valid brainfucked. Though your tape only starts with as much memory that can hold a pointer. In other words, if you're on a 64 bit computer you get 8 cells, and if you're on a 32bit computer you get 4 cells.

Pointers in brainfucked span as many cells as they are bytes.

Just like brainfuck, cells wrap from 0 to 255, and vice versa, and also the tape wraps from front to end and end to front. The tape will not wrap though if you are inputting a string.

Commands

< Move pointer left

> Move pointer right

+ Increment cell by one

- Decrement cell by one

[ Jump past the matching ] if the cell at the pointer is 0

] Jump back to the matching [ if the cell at the pointer is nonzero

. Output ascii at current cell

, Input ascii into current cell

* Allocate new tape size of current cell and replace with pointer

! Free allocated pointer in current cell

( Go to tape at pointer in current cell

) Leave tape last entered

` Output null terminated string at current cell

~ Input string into current cells with max length in current cell

% Clear screen

\ Comment out the rest of the line

Usage

The brainfucked command expects only one argument which is the path to a file containing brainfucked.

For example:

$ brainfucked helloworld.bfd

License

This project is Licensed under the WTFPL

Compilation

Brainfucked only runs on Linux systems because im too lazy to make other makefiles. Though it can compile if they are made.

Make sure to have gcc and make installed, and then run

$ make # compiles the program
$ sudo make install # installs the binary

If you wish to remove the program, you can run

$ sudo make uninstall # removes the binary