Metadata-Version: 2.0
Name: asdl
Version: 0.1.5
Summary: A copy of the ASDL parser used in CPython 3.5.
Home-page: https://github.com/fpoli/python-asdl
Author: Federico Poli
Author-email: federpoli@gmail.com
License: PSFL
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Topic :: Software Development :: Code Generators
Classifier: Topic :: Software Development :: Compilers
Classifier: License :: OSI Approved :: Python Software Foundation License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Provides-Extra: dev
Requires-Dist: twine; extra == 'dev'
Requires-Dist: nose; extra == 'dev'
Requires-Dist: pep8 (==1.4.6); extra == 'dev'

python-asdl
=================

.. image:: https://travis-ci.org/fpoli/python-asdl.svg?branch=master
    :target: https://travis-ci.org/fpoli/python-asdl

A copy of the ASDL parser used in CPython 3.5, cleaned a bit and packaged here.


Installation
------------

.. code-block:: bash

    $ pip install asdl


Usage
-----

.. code-block:: python

    from asdl import ASDLParser, parse

    syntax = """
        module Lambda {
            term =
                Lambda(name x, term body) |
                Apply(term function, term argument) |
                Variable(name x)
        }
    """

    print(ASDLParser().parse(syntax))

    print(asdl.parse("./test/Python.asdl"))

Output:

    Module(Lambda, [Type(term, Sum([Constructor(Lambda, [Field(name, x), Field(term, body)]), Constructor(Apply, [Field(term, function), Field(term, argument)]), Constructor(Variable, [Field(name, x)])]))])

    Module(Python, [Type(mod, Sum([Constructor(Module, [Field(stmt, body, seq=True)]), Constructor(Interactive, [Field(stmt, body, seq=True)]), Constructor(Expression, [Field(expr, body)]), Constructor(Suite, [Field(stmt, body, seq=True)])])), Type(stmt, Sum([Constructor(FunctionDef, [Field(identifier, name), Field(arguments, args), Field(stmt, body, seq=True), Field(expr, decorator_list, seq=True), Field(expr, returns, opt=True)]), ...


License
-------

Same as CPython: Python Software Foundation License (LICENSE file included
here).


