package pyre-ast
Install
Dune Dependency
Authors
Maintainers
Sources
sha256=108d13eb1b7d89d750f3780830916e79ae6cbe4176740610ed0e05d0c5826ea1
sha512=ff9f21e1dff29df73ab57d4eb3eae6f3dbffc4d6d882042d3a6b53c5dd6132594b9a0418f8ff957c9272141afe5a3015aa0d4bd654adda8f0385eb12f1994222
Description
pyre-ast is an OCaml library to parse Python source files into abstract syntax trees. Under the hood, it relies on the CPython parser to do the parsing work and therefore the result is always 100% compatible with the official CPython implementation.
Published: 04 Nov 2022
README
pyre-ast
pyre-ast
is an OCaml library to parse Python files.
The library features its full-fidelity to the official Python spec. Apart from a few technical edge cases, as long as a given file can be parsed by the CPython interpreter, pyre-ast
will be able to parse the file without any problem. Furthermore, abstract syntax trees obtained from pyre-ast
is guaranteed to 100% match the results obtained by Python's own ast.parse API, down to every AST node and every line and column number.
Another notable feature of this library is that it represents the Python syntax using the tagless-final style. This style typically offers more flexibility and extensibility for the downstream consumers of the syntax, and allow them to build up their analysis without explicitly constructing a syntax tree. On the other hand, this library does offer a tranditional "concrete" syntax tree structure as well, for developers who are less familiar with the tagless-final approach and more familiar with standard algebraic data type representation.
Installation
It is recommended to use opam for package management. To install pyre-ast
with opam
, you can run:
opam install pyre-ast
Usage
It is recommended to use dune as your build system. To use pyre-ast
in your dune
project, you can add pyre-ast
to the libraries
stanza in your dune
file. For example,
(library
(name mylib)
(libraries pyre-ast))
Documentation of this library can be found here.
Development
It is recommended to use a local switch for development:
$ git clone https://github.com/grievejia/pyre-ast.git
$ cd pyre-ast
$ opam switch create ./ 4.14.0 --deps-only --with-test
$ dune build @install # Build the library
$ dune test # Run tests
Dependencies (7)
-
ppx_make
>= "0.2.1"
-
ppx_deriving
>= "5.2.1"
-
ppx_hash
>= "v0.14.0"
-
ppx_compare
>= "v0.14.0"
-
ppx_sexp_conv
>= "v0.14.0"
-
base
>= "v0.14.1"
-
dune
>= "2.8"
Dev Dependencies (4)
Used by (1)
Conflicts
None