Brainfuck to Python AST compilation and integration
Project description
brainfuck.py - seamless usage of Brainfuck in Python code
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'
Installation
$ 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.
Platform support
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.
Unit tests
Run tests with $ python test_brainfuck.py
TODO
- 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)
License
MIT (programs in the programs-directory may be licensed differently)
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
python-brainfuck-0.9.1.tar.gz
(6.1 kB
view hashes)
Built Distribution
Close
Hashes for python_brainfuck-0.9.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36696e6fa571fbd93d72c4106a5d93a5df36d6e47fba58804efd333af7882f50 |
|
MD5 | ca91fe3a64811179c07ba40d8f52c1c0 |
|
BLAKE2b-256 | 8c3d962805f509a2277e2a3a2221a8249b22fe90e8e6d5dce965a9be8cf541e2 |