Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.python.announce > #2227
| From | Juancarlo Añez <apalala@gmail.com> |
|---|---|
| Newsgroups | comp.lang.python.announce |
| Subject | ANN: Grako 3.12.1 |
| Date | 2016-08-07 09:40 -0430 |
| Message-ID | <mailman.244.1470646138.6033.python-announce-list@python.org> (permalink) |
| References | <CAN1YFWsPpY=TnuzO8nS8doU1hQzLOMmDDxEHNtWeMtgJTyt_LQ@mail.gmail.com> |
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*
Back to comp.lang.python.announce | Previous | Next | Find similar | Unroll thread
ANN: Grako 3.12.1 Juancarlo Añez <apalala@gmail.com> - 2016-08-07 09:40 -0430
csiph-web