Grako 3.20.0 released

Juancarlo Añez apalala at
Fri Apr 7 18:24:36 EDT 2017



   Added grako.compile(grammar, name=None, **kwargs) as a substitute for
   grako.genmodel (which remains for backwards compatibility).

   Added a grako.parse(grammar, input, **kwargs) that will compile a
   grammar and uset to parse the given input. For efficiency, parsed grammars
   are cached.

   Added a grako.to_python_sourcecode(grammar, name=None, filename=None,
   **kwargs) that compiles the grammar to the Python sourcecode that
   implements the parser.

   Rename the existing *join* (.{}) expression to *gather*, and use *join* for
   a new expression (%{}) that keeps the separator in the resulting AST.

   Added left-join (<{}) and right-join (>{}) expressions to the grammar.



   Enable python test with pytest.

   Remove the deprecated prefix= argument to ParseContext.closure().

   Document that *Grako* may be used as a library (with no code generation)
   by compiling grammars to Grammar objects that can be used to parse any
   given input, much like Python's re does with regular expressions.

   Refactored grammar so double naming (name1:name2:exp) is disallowed.

Grako 3.20.0 <>

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

*Grako* can also compile a grammar stored in a string into a
grako.grammars.Grammar object that can be used to parse any given input,
much like the *re* module does with regular expressions.

Juancarlo *Añez*

More information about the Python-announce-list mailing list