Brainfuck parser
Project description
Brainfuck
Pure python brainfuck parser, interpreter Including optimizations, translation into python AST and python code
Installation
pip install brainfuck-venomlab
Usage
From code
from brainfuck import Brainfuck
from brainfuck.contrib import execute, to_python_ast, to_python_code
source_code = "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++."
bf = Brainfuck.compile(source_code)
# Execute code directly
execute(bf)
# Optimize
bf = bf.optimize()
# Get python code
python_code = to_python_code(bf) # type: str
# Get python AST
program = to_python_ast(bf) # type: ast.AST
# Compile AST info code object with `exec` mode - it's module
executable = compile(program, "program.py", "exec")
# Either exec or eval
exec(executable)
From command line
Execute brainfuck from *.bf file:
brainfuck -f examples/hw.bf
# Hello World!
Execute brainfuck from commandline:
brainfuck -c "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++."
# Hello
Translate brainfuck to python with -py
flag:
brainfuck -py -c "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++."
# buffer = bytearray(30000)
# index = 0
# buffer[index] += 1
# buffer[index] += 1
# buffer[index] += 1
# ...
# print(chr(buffer[index]), end='')
Enable optimizations with -o
flag:
brainfuck -py -o -c "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++."
# buffer = bytearray(30000)
# index = 0
# buffer[index] += 10
# ...
# buffer[index] += 3
# print(chr(buffer[index]), end='')
Write python output to file:
brainfuck -py -out "hw.py" -o -c "++++++++++[>+++++++>++++++++++>+++>+<<<<-]>++.>+.+++++++..+++."
# file `hw.py` is created
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for brainfuck_venomlab-0.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b3c49b76ffc3a565ab03950ef1db5437c2edeeb1d420574a01812391130f46f |
|
MD5 | 78dbde8727a0059c6ac1320504e83da7 |
|
BLAKE2b-256 | 842170711f2f39b931a6002021f94195dc2da796081eacd7f494147e17226ee9 |