Pure-Python implementation of the "ast" module
Project description
This is a pure-Python implementation of the “ast” module as described in CPython documentation. It is written for the Pycopy project, the minimalist Python dialect, and is a part of its standard library, pycopy-lib. However, it can also run under CPython and other Python implementations.
Implementation-wise, it is laid out as a package, with the following submodules:
ast.types, with AST node types auto-generated from CPython’s ASDL description.
ast.parser, implementing hand-written parser for Python 3.6, utilizing recursive descent to parse statements, and Pratt operator precedence parser to parse expressions.
ast, the main package, integrating submodules above, and exposing CPython-compatible API with corresponding additional functions and classes to process AST trees.
At the time of writing, the parser supports Python 3.6 syntax. Updates for the next versions of Python syntax are expected to follow.
The package has small builtin test corpus to check that the AST trees match the ones generated by CPython, and can also use entire CPython standard library as a test corpus, which it also can parse correctly (but with some discrepancies, e.g. this module is optimized for minimal size and doesn’t support Unicode named escape sequences (in the same way as Pycopy doesn’t support them)).
Pycopy’s ast module is written by Paul Sokolovsky and provided under the MIT license.
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
File details
Details for the file pycopy-ast-2.9.1.tar.gz
.
File metadata
- Download URL: pycopy-ast-2.9.1.tar.gz
- Upload date:
- Size: 11.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a8cc1b5672d75e51c77ec4a7f2674e0f9e99691ae285a7c79a90a9944b46d049 |
|
MD5 | 43b7821eb4992c240720553d50889b38 |
|
BLAKE2b-256 | 1d347d12f5b35b5f80852d0243a117d56e1feca8125807ce2cd26f6fe1149d41 |