ANN: Grako 3.12.1

Juancarlo Añez apalala at gmail.com
Sun Aug 7 10:10:53 EDT 2016


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:

   - Distinguish between positive and normal joins: s.{e}+ and s.{e}.
   Having s.{e} use a positive closure was too unexpected.
   - 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.
   - 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 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.
   - Now model.ParseModel is an alias for model.Node.
   - Improved examples/antlr2grako so it generates more usable Grako
   grammars.
   - Syntax file for Sublime Text (vmuriart).
   - 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.



-- 
Juancarlo *Añez*


More information about the Python-announce-list mailing list