Metadata-Version: 2.1
Name: astutils
Version: 0.0.6
Summary: Utilities for abstract syntax trees and parsing with PLY.
Home-page: https://github.com/johnyf/astutils
Author: Ioannis Filippidis
Author-email: jfilippidis@gmail.com
License: BSD
Keywords: lexing,parsing,syntax tree,abstract syntax tree,AST,PLY,lex,yacc
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Topic :: Software Development
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: ply<=3.10,>=3.4

[![Build Status][build_img]][ci]


About
=====

Bare essentials for building abstract syntax trees (AST) and Python
`lex`-`yacc` ([PLY](https://github.com/dabeaz/ply)) parsers.
The package includes:

- two classes for tree nodes: `Terminal`, `Operator`
- a `Lexer` and `Parser` class, and a helper function to erase and
  rewrite the table files.

The examples under `examples/` demonstrate how to use these classes to create
a richer AST, a parser, and different backends that use the same parser.

These classes provide the boilerplate for parsing with PLY, and are based on
code that was developed in [`tulip`](
    https://github.com/tulip-control/tulip-control)
and [`promela`](https://github.com/johnyf/promela).


License
=======
[BSD-3](https://opensource.org/licenses/BSD-3-Clause), see file `LICENSE`.


[build_img]: https://github.com/johnyf/astutils/actions/workflows/main.yml/badge.svg?branch=main
[ci]: https://github.com/johnyf/astutils/actions
