Releases: neogeny/TatSu
Maintenance + Python 3.8
- 竜 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).
- Apply
nameguard
only iftoken[0].isalpha()
. This solves a regression afecting previous TatSu and Grako grammars (@apalala). - Remove
pygraphviz
from develoment requirements, as it doesn't build under Py38 (@apalala) - #56 Include missing
tatsu/g2e/antlr.ebnf
in distribution (@apalala) - #138 Reimplement the calculation of
FIRST
,FOLLOW
, andLOOKAHEAD
sets using latest theories. For now, this should improve parser error reporting, but should eventually enable the simplification of parsing of leftrec grammars (@apalala). - #153 Import ABCs from
collections.abc
(@tirkarthi) - Remove support for
Cython
andpypy3
(@apalala).
Implementation of left recursion complete
- The default regexp for whitespace was changed to `(?s)s+
- Allow empty patterns (
//
) like Python does - #65 Allow initial, consecutive, and trailing
@namechars
- #73 Allow
@@whitespace :: None
and@@whitespace :: False
- #75 Complete implemenation of left recursion(@Victorious3)
- #77 Allow
@keyword
throughout the grammar - #89 Make all attributes defined in the rule present in the resulting
AST
orNode
even if the associated expression was not parsed - #93 Fix trace colorization on Windows
- #96 Documented each
@@directive
- Switched the documentation to the "Alabaster" theme
- Various code and documentation fixes (@davesque, @nicholasbishop, @rayjolt)
ModelBuilder upgrade
- #66 Fix multiline ( (?x) ) patterns not properly supported in grammar (@pdw-mb)
- #70 Important upgrade to ModelBuilder and grammar specification of classes for generated nodes. See pull request #78 for details (@Victorious3)
Bug fix release
- #56 Add missing tatsu/g2e/antlr.ebnf to distribution (@Ruth-Polymnia)
- #62 Fix TatSu ignoring start rule provided in command line (@r-chaves)
- Fix typos in documentation (@mjdominus
Bug fix release
Bug fix release
Bug-fix release (includes not working)
-
#37 Regression: The
#include
pragma works by using theEBNFBuffer
fromgrammars.py
. Somehow the defaultEBNFBootstrapBuffer
frombootstrap.py
has been used instead (@gegenschall). -
#38 Documentation: Use of
json.dumps()
requiresast.asjson()
(@davidchen).
Revert incorrect changes to left recursion
-
#27 Undo the fixes to dropped input on left recursion because they broke previously expected behavior.
-
#34 More left-recursion test cases (@manueljacob).
Left recursion bug fix
Fixed
-
#27 Left-recursive parsers would drop or skip input on many combinations of grammars and correct/incorrect inputs(@manueljacob)
-
Documentation fixes (@manueljacob, @paulhoule)
provisions for recovery, optimizations, cleanup
Added
-
Parse speeds on large files reduced by 5-20% by optimizing parse contexts and closures, and unifying the AST_ and CST_ stacks.
-
Added the "skip to" expression (
->
), useful for writing recovery rules. The parser will advance over input, one character at time, until the expression matches. Whitespace and comments will be skipped at each step. -
Added the any expression (
/./
) for matching the next character in the input. -
The ANTLR_ grammar for Python3_ to the
g2e
example, and udateg2e
to handle more ANTLR_ syntax. -
Check typing with Mypy_.
Changed
-
Removed the very old regex example.
-
Make parse traces more compact. Add a sample to the docs.
-
Explain Grako_ compatibility in docs.