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
Built Distribution
File details
Details for the file python-brainfuck-0.9.1.tar.gz
.
File metadata
- Download URL: python-brainfuck-0.9.1.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a39d7c48765289a71f4d1a2a773194bf766f3c0287db98650e8d8510f3c2332b |
|
MD5 | 949b08fc8a368076fcb0b40566a11300 |
|
BLAKE2b-256 | f71bfbe21b1760549b673815233729685638b16f6b967c6edbf29a1c7f168158 |
File details
Details for the file python_brainfuck-0.9.1-py2.py3-none-any.whl
.
File metadata
- Download URL: python_brainfuck-0.9.1-py2.py3-none-any.whl
- Upload date:
- Size: 5.7 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.0.0 pkginfo/1.5.0.1 requests/2.20.1 setuptools/41.4.0 requests-toolbelt/0.9.1 tqdm/4.39.0 CPython/3.7.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36696e6fa571fbd93d72c4106a5d93a5df36d6e47fba58804efd333af7882f50 |
|
MD5 | ca91fe3a64811179c07ba40d8f52c1c0 |
|
BLAKE2b-256 | 8c3d962805f509a2277e2a3a2221a8249b22fe90e8e6d5dce965a9be8cf541e2 |