Brainfuck Интерпретатор написан в C.
brainfuck [-veh] file...
-e --eval run code directly
-v --version show version information
-h --help show a help message.
Интерактивная консоль можно получить, передавая никаких аргументов.
Мы также предоставляем C API:
#include <stdio.h>
#include <stdlib.h>
#include <brainfuck.h>
int main () {
BrainfuckState * state = brainfuck_state ();
BrainfuckExecutionContext * context = brainfuck_context ( BRAINFUCK_TAPE_SIZE );
BrainfuckInstruction * instruction = brainfuck_parse_string ( ",+++++." );
brainfuck_add ( state , instruction );
brainfuck_execute ( state -> root , context );
brainfuck_destroy_context ( context );
brainfuck_destroy_state ( state );
return EXIT_SUCCESS ;
}Примеры/ каталог содержит большое количество примеров Brainfuck. Мы пытались приписать оригинальных авторов этих программ, где это возможно.
Загрузите исходный код, запустив следующий код в вашей командной строке:
$ git clone https://github.com/fabianishere/brainfuck.gitИли просто возьмите копию исходного кода в виде zip -файла.
Создайте каталог сборки.
$ mkdir build
$ cd buildBrainfuck требует Cmake и C Compiler (например, Clang или GCC) для работы. Это также зависит от Libedit, которое доступно в основных репозиториях большинства распределений Linux (например, как Libedit-Dev на Debian/Ubuntu) и поставляется с инструментами командной строки MacOS XCODE. Затем просто создайте Makefiles:
$ cmake ..И, наконец, создайте его, используя выбранную вами систему строительства (например, сделайте):
$ makeПосле того, как сборка была завершена, вы можете установить двоичные файлы в локальную систему (см. CMAKE_INSTALL_PREFIX для получения информации о префиксе установки):
$ make installВ качестве альтернативы, вы можете запустить интерпретатора напрямую без установки, например:
$ ./brainfuck ../examples/hello.bfКод выпускается в соответствии с лицензией Apache версии 2.0. См. License.txt.
Fabian Mastenbroek https://github.com/fabianishere
aliclubb https://github.com/aliclubb
diekmann https://github.com/diekmann
SevenBits https://github.com/SevenBits
Alex Burka https://github.com/durka
outis https://github.com/outis
rien333 https://github.com/rien333
boweiliu https://github.com/boweiliu
Rotartsi https://github.com/ROTARTSI82
Saket Upadhyay https://github.com/Saket-Upadhyay
outis https://github.com/outis
Jalmari91 https://github.com/Jalmari91
Alok Singh https://github.com/alok
Lasse Damsgaard Skaalum https://github.com/humleflue