Metadata-Version: 2.4
Name: parstools
Version: 0.0.5
Summary: Parsing algorithms
Author: Ioannis Filippidis
Author-email: jfilippidis@gmail.com
License: Public Domain
Keywords: algorithms,grammar,lexer,lexing,LR(1),LR parser,parsers,parsing
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3 :: Only
Requires-Python: >=3.11
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: keywords
Dynamic: license
Dynamic: license-file
Dynamic: requires-python
Dynamic: summary

`parstools` is a package for writing parsers.
Currently, it includes:

- [LR(1)](https://doi.org/10.1016/S0019-9958%2865%2990426-2) parser generation
- [LR(1) with state-merging](https://doi.org/10.1007/BF00290336)
- grammar definition via `p_...` methods
- lexer definition via `t_...` methods
- stateful lexing
- regular language matching [using nondeterministic automata](https://doi.org/10.1145/363347.363387)
- conversions between regular grammars, regexes, NFA
- representing grammars, productions
- plotting LR state-machines
- printing of LR tables
- printing trees

The documentation is in the file `doc.md`.
Examples are in the directory `examples/`.
