Skip to content

Releases: neogeny/TatSu

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.

bugfix

22 May 01:44
Compare
Choose a tag to compare
  • tatus.objectmodel.Node was not setting attributes from AST

Left recursion + general cleanup

21 May 17:06
Compare
Choose a tag to compare
  • 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 the ignorecase= 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.