Skip to main content

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


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 details)

Uploaded Source

Built Distribution

python_brainfuck-0.9.1-py2.py3-none-any.whl (5.7 kB view details)

Uploaded Python 2 Python 3

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

Hashes for python-brainfuck-0.9.1.tar.gz
Algorithm Hash digest
SHA256 a39d7c48765289a71f4d1a2a773194bf766f3c0287db98650e8d8510f3c2332b
MD5 949b08fc8a368076fcb0b40566a11300
BLAKE2b-256 f71bfbe21b1760549b673815233729685638b16f6b967c6edbf29a1c7f168158

See more details on using hashes here.

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

Hashes for python_brainfuck-0.9.1-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 36696e6fa571fbd93d72c4106a5d93a5df36d6e47fba58804efd333af7882f50
MD5 ca91fe3a64811179c07ba40d8f52c1c0
BLAKE2b-256 8c3d962805f509a2277e2a3a2221a8249b22fe90e8e6d5dce965a9be8cf541e2

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page