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