Releases: neogeny/TatSu
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.
bugfix
Left recursion + general cleanup
- New support for left recursion with correct associativity. All
test cases pass. - Left recursion is enabled by default. Use the
@@left_recursion :: False
directive to diasable it. - Renamed the decorator for generated rule methods to
@tatsumasu
. - Refactored the
tatsu.contexts.ParseContext
for clarity. - The
@@ignorecase
directive and theignorecase=
parameter no
longer appy to regular expressions (patterns) in grammars. Use
(?i)
in the pattern to ignore the case in a particular pattern. - Now
tatsu.g2e
is a library and executable module for translating
ANTLR grammars to TatSu. - Modernized the
calc
example and made it part of the documentation
as Mini Tutorial. - Simplified the generated object models using the semantics of class
attributes in Python.