Reblok is a project mainly written in PYTHON and SHELL, based on the GPL-3.0 license.
Reblok build an Abstract Syntax Tree (AST) back from python bytecode
Reblok build an Abstract Syntax Tree (AST) back from python bytecode.
python 2.[5-6] (NOT python 2.7, see Notes bellow)
Has not been tested with python3,
Should work with pypy, although some specific opcodes are not handled (see Pypy special opcodes).
easy_install reblok
or
wget http://devedge.bour.cc/resources/reblok/src/reblok.latest.tar.gz
tar xvf reblok.latest.tar.gz
cd reblok-* && ./setup.py install
You can found reblok opcodes documentation at http://devedge.bour.cc/resources/reblok/doc/sources/ast.html
>>> from reblok import Parser
>>> add = lambda x: x + 1
>>> ast = Parser().walk(add)
>>> print ast
['function', '<lambda>', [['ret', ('add', ('var', 'x', 'local'), ('const', 1))]], [('x', '<undef>')], None, None, [], {}]
reblok is not compatible with python 2.7 at the moment as JUMP_IF_FALSE and JUMP_IF_TRUE opcodes are replaced by new POP_JUMP_IF_FALSE, POP_JUMP_IF_TRUE, JUMP_IF_FALSE_OR_POP and
JUMP_IF_TRUE_OR_POP opcodes.
Will be fixed in a future release.
Not yet handled opcodes:
Reblok is licensed under GNU GPL v3.
It is developped by Guillaume Bour <[email protected]>