Skip to content

Releases: neogeny/TatSu

Maintenance + Python 3.8

26 Jan 19:02
Compare
Choose a tag to compare
  • 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 if token[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, 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).
  • #153 Import ABCs from collections.abc (@tirkarthi)
  • Remove support for Cythonand pypy3 (@apalala).

Implementation of left recursion complete

23 Apr 17:19
Compare
Choose a tag to compare
  • 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 or Node 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

17 Nov 10:14
Compare
Choose a tag to compare
  • #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

07 May 01:56
Compare
Choose a tag to compare

Bug fix release

26 Nov 22:07
Compare
Choose a tag to compare
  • #42 Rename vim files from grako.vim to tatsu.vim (@fcoelho)
  • #51 Fix inconsistent code generation for whitespace (@fpom)
  • #54 Only care about case of first letter of rule name for determining advance over whitespace (@acw1251)

Bug fix release

14 Oct 21:21
Compare
Choose a tag to compare
  • #40 Make the start rule default to the first rule defined in the grammar (@hariedo)
  • #43 Import re from tatsu.util to support optional regex-only features (@azazel75)
  • #47 Fix incorrect sample code in documentation

Bug-fix release (includes not working)

10 Jul 21:30
Compare
Choose a tag to compare
  • #37 Regression: The #include pragma works by using the EBNFBuffer from grammars.py. Somehow the default EBNFBootstrapBuffer from bootstrap.py has been used instead (@gegenschall).

  • #38 Documentation: Use of json.dumps() requires ast.asjson() (@davidchen).

Revert incorrect changes to left recursion

01 Jul 19:45
Compare
Choose a tag to compare
  • #27 Undo the fixes to dropped input on left recursion because they broke previously expected behavior.

  • #33 Fixes to the calc example and mini tutorial (@heronils)

  • #34 More left-recursion test cases (@manueljacob).

Left recursion bug fix

18 Jun 13:52
Compare
Choose a tag to compare

Fixed

provisions for recovery, optimizations, cleanup

04 Jun 20:52
Compare
Choose a tag to compare

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 udate g2e 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.