Profile cover photo
Profile photo
Juancarlo Añez
184 followers -
Ai Ki Do
Ai Ki Do

184 followers
About
Juancarlo Añez's interests
View all
Juancarlo Añez's posts

Tatu 4.2.0
----------------

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.



|TatSu|
=======

|TatSu| (the successor to Grako_) is a tool that takes grammars in a variation of `EBNF`_ as input, and outputs `memoizing`_ (`Packrat`) `PEG` parsers in `Python`_.

|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`_ module does with regular expressions, or it can generate a Python_ module that implements the parser.


Post has attachment

Post has attachment
TatSu v4.1.0 was released

* https://pypi.org/project/tatsu/

* http://tatsu.readthedocs.io/en/stable/

* https://github.com/neogeny/TatSu

TatSu (the successor to Grako) is a tool that takes grammars in a variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python.

CHANGES

* 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.

Post has attachment
竜 TatSu 4.0.0 released

竜 TatSu (the successor to Grako) is a tool that takes grammars in a variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python.

竜 TatSu can compile a grammar stored in a string into an object that can be used to parse any given input, much like the re module does with regular expressions, or it can generate a Python module that implements the parser.

https://pypi.python.org/pypi/TatSu/

https://github.com/apalala/TatSu/

http://tatsu.readthedocs.io/

Post has attachment

Post has attachment

Post has attachment

Post has attachment

Post has attachment
Grako (for grammar compiler) is a tool that takes grammars in a variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python.

3.16.0 @ 2016-10-01
=================

Added
----------
* Test and publish Grako using Travis CI.
* Added support for case-insensitivity to grako.symtables.
( A base class can now be specified along with the object model class name in grammar rules

Changed
--------------
* Reduced the memory used by symbol tables by replacing symtables.SymbolReference by the referencing objectmodel.Node.
* Now grako.grammars.Decorator is public.
* Demoted support for left recursion to experimental. It has been reported that even some simple cases are not handled correctly.

Post has attachment
Grako (for grammar compiler) is a tool that takes grammars in a variation of EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python.

Changes in 3.12.1:

## [3.12.1] @ 2016-08-06


### Added

- Also generate a `buffering.Buffer` descendant specific to the grammar for parsers that need to customize the `parsing.Parser.parse()` method.
- Added the `grako.synth` module which makes synthetic `grako.model.Node` classes pickable.
- Now patterns may be concatenated to split a complex pattern into parts, possibly accross several lines: `/regexp/ + /regexp/`.
- Added basic support for symbol tables in `grako.symtables`.
- Syntax file for [Sublime Text] [vmuriart]


### Changed

- Distinguish between positive and normal joins: `s.{e}+` and `s.{e}`. Having `s.{e}` use a positive closure was too unexpected.
- Traded memory for simplicity and replaced the line-based line cache in `buffering.Buffer` for a position-based cache. Buffering needs to continue being `str`-based for complex `re` patterns to work as expected.
- Now `model.ParseModel` is an alias for `model.Node`.
- Improved `examples/antlr2grako` so it generates more usable *Grako* grammars.


### Fixed

- The latest changes to `grako.util.trim()` were incomplete.
- Fixed several inconsistencies in the implementation and use of `buffering.Buffer` line indexing.
- Repeated parameters to object model constructors.

Wait while more posts are being loaded