
TatSu 5.7.0 is now available. - https://pypi.org/project/TatSu/5.7.0/ - https://tatsu.readthedocs.io/ - https://github.com/neogeny/TatSu 竜 TatSu is a tool that takes grammars in a variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python. 竜 TatSu can compile a grammar stored in a string into a tatsu.grammars.Grammar object that can be used to parse any given input, much like the *re* module does with regular expressions, or it can generate a Python module that implements the parser. 竜 TatSu supports left-recursive rules in PEG grammars using the algorithm by Laurent and Mens. The generated AST has the expected left associativity. CHANGELOG: - Now ``config: ParserConfig`` is used in ``__init__()`` and ``parse()`` methods of ``contexts.ParseContext``, ``grammars.Grammar``, and elsewhere to avoid long parameter lists. ``ParserConfig` also provides clean and clear ways of overriding a group of settings - All names defined in the successful choice in a rule are now defined in the resulting AST. Names within optionals that did not match will have their values set to ``None``, and closures that did not match will be set to ``[]` - Moved build configuration from ``setup.py`` in favor of ``setup.cfg`` and ``pyproject.toml`` (@KOLANICH_) - ``Node.children()`` is now computed only when required, and cached - Classes in generated object models are now ``@dataclass`` - Optimize and get rid of bugs and annoyances while keeping backwards compatibility - Drop support for Python < 3.10
participants (1)
-
Juancarlo Añez