竜 TatSu is a tool that takes grammars in a variation of EBNF
<http://en.wikipedia.org/wiki/Ebnf> as input, and outputs memoizing
<http://en.wikipedia.org/wiki/Memoization> (Packrat
<http://bford.info/packrat/>) PEG
<http://en.wikipedia.org/wiki/Parsing_expression_grammar> parsers in Python
<http://python.org/>.

竜 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 <https://docs.python.org/3.7/library/re.html> module does
with regular expressions, or it can generate a Python
<http://python.org/> module
that implements the parser.

竜 TatSu supports left-recursive
<https://en.wikipedia.org/wiki/Left_recursion> rules in PEG
<http://en.wikipedia.org/wiki/Parsing_expression_grammar> grammars using
the algorithm <http://norswap.com/pubs/sle2016.pdf> by *Laurent* and *Mens*.
The generated AST <http://en.wikipedia.org/wiki/Abstract_syntax_tree> has
the expected left associativity.
<https://github.com/neogeny/TatSu#installation>*CHANGES*


   - 竜 TatSu is now only tested against Python 3.8. Earlier versions of
   Python are now deprecated, and Python 2.X versions are no longer supported (
   @apalala <https://github.com/apalala>).
   - Apply nameguard only if token[0].isalpha(). This solves a regression
   afecting previous TatSu and Grako grammars (@apalala
   <https://github.com/apalala>).
   - Remove pygraphviz from develoment requirements, as it doesn't build
   under Py38 (@apalala <https://github.com/apalala>)
   - #56 <https://github.com/neogeny/TatSu/issues/56> Include missing
   tatsu/g2e/antlr.ebnf in distribution (@apalala
   <https://github.com/apalala>)
   - #138 <https://github.com/neogeny/TatSu/issues/138> Reimplement the
   calculation of FIRST, FOLLOW, and LOOKAHEAD sets using latest theories.
   For now, this should improve parser error reporting, but should eventually
   enable the simplification of parsing of leftrec grammars (@apalala
   <https://github.com/apalala>).
   - #153 <https://github.com/neogeny/TatSu/issues/153> Import ABCs from
   collections.abc (@tirkarthi <https://github.com/tirkarthi>)
   - Remove support for Cythonand pypy3 (@apalala
   <https://github.com/apalala>).


-- 
Juancarlo *Añez*
--
Python-announce-list mailing list -- python-announce-list@python.org
To unsubscribe send an email to python-announce-list-le...@python.org
https://mail.python.org/mailman3/lists/python-announce-list.python.org/

        Support the Python Software Foundation:
        http://www.python.org/psf/donations/

Reply via email to