Path to this page:
./
devel/py-grako,
Grammar compiler
Branch: pkgsrc-2019Q3,
Version: 3.99.9,
Package name: py37-grako-3.99.9,
Maintainer: pkgsrc-usersGrako (for grammar compiler) is a tool that takes grammars in a variation of
EBNF as input, and outputs memoizing (Packrat) PEG parsers in Python.
Grako can also compile a grammar stored in a string into a Grammar object that
can be used to parse any given input, much like the re module does with
regular expressions.
Grako is different from other PEG parser generators:
* Generated parsers use Python's very efficient exception-handling system to
backtrack. Grako generated parsers simply assert what must be parsed. There
are no complicated if-then-else sequences for decision making or
backtracking. Memoization allows going over the same input sequence several
times in linear time.
* Positive and negative lookaheads, and the cut element (with its cleaning of
the memoization cache) allow for additional, hand-crafted optimizations at
the grammar level.
* Delegation to Python's re module for lexemes allows for (Perl-like) powerful
and efficient lexical analysis.
* The use of Python's context managers considerably reduces the size of the
generated parsers for code clarity, and enhanced CPU-cache hits.
* Include files, rule inheritance, and rule inclusion give Grako grammars
considerable expressive power.
* Automatic generation of Abstract Syntax Trees and Object Models, along with
Model Walkers and Code Generators make analysis and translation approachable.
Master sites:
SHA1: b8751e9e40b8f51aae7316b80d2bed65e56ddbd4
RMD160: 151edb61fd019d98734cf959b1ea28178fce3ba8
Filesize: 155.545 KB
Version history: (Expand)
- (2019-10-02) Package added to pkgsrc.se, version py37-grako-3.99.9 (created)