brainfuck.py compiles Brainfuck programs to Python AST, enabling the integration of industial-strength Brainfuck programs with Python code. Example:
>>> import brainfuck
>>> hello = brainfuck.to_function("""
++++++++[>++++[>++>+++>+++>+<<<<-]>+>+>->>+[<]<-]>>
.>---.+++++++..+++.>>.<-.<.+++.------.--------.>>+.>++.
""")
>>> hello()
'Hello World!\n'
For convenience, an import hook is also provided:
>>> brainfuck.install_import_hook()
>>> # Note: programs is a python package (with __init__.py
# and a brainfuck file named rot13.bf)
>>> from programs import rot13
>>> rot13.rot13("brainfuck")
'oenvashpx'
>>> # The module can also be called directly
>>> rot13("foobar")
'sbbone'
$ pip install python-brainfuck
OR
$ git clone git@github.com:koirikivi/brainfuck.git
$ cd brainfuck
$ python setup.py install
OR just copy brainfuck.py
somewhere in your PYTHONPATH.
Latest versions of Python 2, 3 and PyPy are supported and tested. Other Python
versions that have support for the ast
module should work too, but are not
tested.
Run tests with $ python test_brainfuck.py
- Optimizations for the brainfuck-generated AST (this is a big one!)
- More tests
- Running tests with tox
- Python AST to brainfuck compilation (may take some time)
MIT (programs in the programs-directory may be licensed differently)