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

Uploaded Source

Built Distribution

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

Uploaded Python 2 Python 3

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