pkgsrc-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[pkgsrc/trunk]: pkgsrc/devel/py-grako Grako (for grammar compiler) is a tool ...
details: https://anonhg.NetBSD.org/pkgsrc/rev/4f726e965df7
branches: trunk
changeset: 363111:4f726e965df7
user: adam <adam%pkgsrc.org@localhost>
date: Thu Jun 01 12:04:38 2017 +0000
description:
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 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.
diffstat:
devel/py-grako/ALTERNATIVES | 1 +
devel/py-grako/DESCR | 24 +++++
devel/py-grako/Makefile | 21 ++++
devel/py-grako/PLIST | 209 ++++++++++++++++++++++++++++++++++++++++++++
devel/py-grako/distinfo | 6 +
5 files changed, 261 insertions(+), 0 deletions(-)
diffs (281 lines):
diff -r b0315e7cfe02 -r 4f726e965df7 devel/py-grako/ALTERNATIVES
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/py-grako/ALTERNATIVES Thu Jun 01 12:04:38 2017 +0000
@@ -0,0 +1,1 @@
+bin/slicer @PREFIX@/bin/slicer@PYVERSSUFFIX@
diff -r b0315e7cfe02 -r 4f726e965df7 devel/py-grako/DESCR
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/py-grako/DESCR Thu Jun 01 12:04:38 2017 +0000
@@ -0,0 +1,24 @@
+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 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.
diff -r b0315e7cfe02 -r 4f726e965df7 devel/py-grako/Makefile
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/py-grako/Makefile Thu Jun 01 12:04:38 2017 +0000
@@ -0,0 +1,21 @@
+# $NetBSD: Makefile,v 1.1 2017/06/01 12:04:38 adam Exp $
+
+DISTNAME= grako-3.99.9
+PKGNAME= ${PYPKGPREFIX}-${DISTNAME}
+CATEGORIES= devel python
+MASTER_SITES= ${MASTER_SITE_PYPI:=g/grako/}
+EXTRACT_SUFX= .zip
+
+MAINTAINER= pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE= https://bitbucket.org/neogeny/grako/
+COMMENT= Grammar compiler
+LICENSE= modified-bsd
+
+USE_LANGUAGES= c
+
+post-install:
+ cd ${DESTDIR}${PREFIX}/bin && mv grako grako${PYVERSSUFFIX} || ${TRUE}
+
+.include "../../devel/py-cython/buildlink3.mk"
+.include "../../lang/python/egg.mk"
+.include "../../mk/bsd.pkg.mk"
diff -r b0315e7cfe02 -r 4f726e965df7 devel/py-grako/PLIST
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/py-grako/PLIST Thu Jun 01 12:04:38 2017 +0000
@@ -0,0 +1,209 @@
+@comment $NetBSD: PLIST,v 1.1 2017/06/01 12:04:38 adam Exp $
+bin/grako${PYVERSSUFFIX}
+${PYSITELIB}/${EGG_INFODIR}/PKG-INFO
+${PYSITELIB}/${EGG_INFODIR}/SOURCES.txt
+${PYSITELIB}/${EGG_INFODIR}/dependency_links.txt
+${PYSITELIB}/${EGG_INFODIR}/entry_points.txt
+${PYSITELIB}/${EGG_INFODIR}/not-zip-safe
+${PYSITELIB}/${EGG_INFODIR}/requires.txt
+${PYSITELIB}/${EGG_INFODIR}/top_level.txt
+${PYSITELIB}/grako/__init__.py
+${PYSITELIB}/grako/__init__.pyc
+${PYSITELIB}/grako/__init__.pyo
+${PYSITELIB}/grako/__main__.py
+${PYSITELIB}/grako/__main__.pyc
+${PYSITELIB}/grako/__main__.pyo
+${PYSITELIB}/grako/_config.py
+${PYSITELIB}/grako/_config.pyc
+${PYSITELIB}/grako/_config.pyo
+${PYSITELIB}/grako/_config.so
+${PYSITELIB}/grako/_unicode_characters.py
+${PYSITELIB}/grako/_unicode_characters.pyc
+${PYSITELIB}/grako/_unicode_characters.pyo
+${PYSITELIB}/grako/_unicode_characters.so
+${PYSITELIB}/grako/_version.py
+${PYSITELIB}/grako/_version.pyc
+${PYSITELIB}/grako/_version.pyo
+${PYSITELIB}/grako/_version.so
+${PYSITELIB}/grako/ast.py
+${PYSITELIB}/grako/ast.pyc
+${PYSITELIB}/grako/ast.pyo
+${PYSITELIB}/grako/ast.so
+${PYSITELIB}/grako/bootstrap.py
+${PYSITELIB}/grako/bootstrap.pyc
+${PYSITELIB}/grako/bootstrap.pyo
+${PYSITELIB}/grako/bootstrap.so
+${PYSITELIB}/grako/buffering.py
+${PYSITELIB}/grako/buffering.pyc
+${PYSITELIB}/grako/buffering.pyo
+${PYSITELIB}/grako/buffering.so
+${PYSITELIB}/grako/codegen/__init__.py
+${PYSITELIB}/grako/codegen/__init__.pyc
+${PYSITELIB}/grako/codegen/__init__.pyo
+${PYSITELIB}/grako/codegen/cgbase.py
+${PYSITELIB}/grako/codegen/cgbase.pyc
+${PYSITELIB}/grako/codegen/cgbase.pyo
+${PYSITELIB}/grako/codegen/cgbase.so
+${PYSITELIB}/grako/codegen/objectmodel.py
+${PYSITELIB}/grako/codegen/objectmodel.pyc
+${PYSITELIB}/grako/codegen/objectmodel.pyo
+${PYSITELIB}/grako/codegen/objectmodel.so
+${PYSITELIB}/grako/codegen/python.py
+${PYSITELIB}/grako/codegen/python.pyc
+${PYSITELIB}/grako/codegen/python.pyo
+${PYSITELIB}/grako/codegen/python.so
+${PYSITELIB}/grako/color.py
+${PYSITELIB}/grako/color.pyc
+${PYSITELIB}/grako/color.pyo
+${PYSITELIB}/grako/color.so
+${PYSITELIB}/grako/containers.py
+${PYSITELIB}/grako/containers.pyc
+${PYSITELIB}/grako/containers.pyo
+${PYSITELIB}/grako/containers.so
+${PYSITELIB}/grako/contexts.py
+${PYSITELIB}/grako/contexts.pyc
+${PYSITELIB}/grako/contexts.pyo
+${PYSITELIB}/grako/contexts.so
+${PYSITELIB}/grako/diagrams.py
+${PYSITELIB}/grako/diagrams.pyc
+${PYSITELIB}/grako/diagrams.pyo
+${PYSITELIB}/grako/diagrams.so
+${PYSITELIB}/grako/exceptions.py
+${PYSITELIB}/grako/exceptions.pyc
+${PYSITELIB}/grako/exceptions.pyo
+${PYSITELIB}/grako/exceptions.so
+${PYSITELIB}/grako/grammars.py
+${PYSITELIB}/grako/grammars.pyc
+${PYSITELIB}/grako/grammars.pyo
+${PYSITELIB}/grako/grammars.so
+${PYSITELIB}/grako/infos.py
+${PYSITELIB}/grako/infos.pyc
+${PYSITELIB}/grako/infos.pyo
+${PYSITELIB}/grako/infos.so
+${PYSITELIB}/grako/model.py
+${PYSITELIB}/grako/model.pyc
+${PYSITELIB}/grako/model.pyo
+${PYSITELIB}/grako/model.so
+${PYSITELIB}/grako/objectmodel.py
+${PYSITELIB}/grako/objectmodel.pyc
+${PYSITELIB}/grako/objectmodel.pyo
+${PYSITELIB}/grako/objectmodel.so
+${PYSITELIB}/grako/parser.py
+${PYSITELIB}/grako/parser.pyc
+${PYSITELIB}/grako/parser.pyo
+${PYSITELIB}/grako/parser.so
+${PYSITELIB}/grako/parsing.py
+${PYSITELIB}/grako/parsing.pyc
+${PYSITELIB}/grako/parsing.pyo
+${PYSITELIB}/grako/parsing.so
+${PYSITELIB}/grako/rendering.py
+${PYSITELIB}/grako/rendering.pyc
+${PYSITELIB}/grako/rendering.pyo
+${PYSITELIB}/grako/rendering.so
+${PYSITELIB}/grako/semantics.py
+${PYSITELIB}/grako/semantics.pyc
+${PYSITELIB}/grako/semantics.pyo
+${PYSITELIB}/grako/semantics.so
+${PYSITELIB}/grako/symtables.py
+${PYSITELIB}/grako/symtables.pyc
+${PYSITELIB}/grako/symtables.pyo
+${PYSITELIB}/grako/symtables.so
+${PYSITELIB}/grako/synth.py
+${PYSITELIB}/grako/synth.pyc
+${PYSITELIB}/grako/synth.pyo
+${PYSITELIB}/grako/synth.so
+${PYSITELIB}/grako/test/__init__.py
+${PYSITELIB}/grako/test/__init__.pyc
+${PYSITELIB}/grako/test/__init__.pyo
+${PYSITELIB}/grako/test/__main__.py
+${PYSITELIB}/grako/test/__main__.pyc
+${PYSITELIB}/grako/test/__main__.pyo
+${PYSITELIB}/grako/test/ast_test.py
+${PYSITELIB}/grako/test/ast_test.pyc
+${PYSITELIB}/grako/test/ast_test.pyo
+${PYSITELIB}/grako/test/buffering_test.py
+${PYSITELIB}/grako/test/buffering_test.pyc
+${PYSITELIB}/grako/test/buffering_test.pyo
+${PYSITELIB}/grako/test/codegen_test.py
+${PYSITELIB}/grako/test/codegen_test.pyc
+${PYSITELIB}/grako/test/codegen_test.pyo
+${PYSITELIB}/grako/test/diagram_test.py
+${PYSITELIB}/grako/test/diagram_test.pyc
+${PYSITELIB}/grako/test/diagram_test.pyo
+${PYSITELIB}/grako/test/grammar/__init__.py
+${PYSITELIB}/grako/test/grammar/__init__.pyc
+${PYSITELIB}/grako/test/grammar/__init__.pyo
+${PYSITELIB}/grako/test/grammar/__init__.so
+${PYSITELIB}/grako/test/grammar/directive_test.py
+${PYSITELIB}/grako/test/grammar/directive_test.pyc
+${PYSITELIB}/grako/test/grammar/directive_test.pyo
+${PYSITELIB}/grako/test/grammar/directive_test.so
+${PYSITELIB}/grako/test/grammar/join_test.py
+${PYSITELIB}/grako/test/grammar/join_test.pyc
+${PYSITELIB}/grako/test/grammar/join_test.pyo
+${PYSITELIB}/grako/test/grammar/join_test.so
+${PYSITELIB}/grako/test/grammar/keyword_test.py
+${PYSITELIB}/grako/test/grammar/keyword_test.pyc
+${PYSITELIB}/grako/test/grammar/keyword_test.pyo
+${PYSITELIB}/grako/test/grammar/keyword_test.so
+${PYSITELIB}/grako/test/grammar/left_recursion_test.py
+${PYSITELIB}/grako/test/grammar/left_recursion_test.pyc
+${PYSITELIB}/grako/test/grammar/left_recursion_test.pyo
+${PYSITELIB}/grako/test/grammar/left_recursion_test.so
+${PYSITELIB}/grako/test/grammar/parameter_test.py
+${PYSITELIB}/grako/test/grammar/parameter_test.pyc
+${PYSITELIB}/grako/test/grammar/parameter_test.pyo
+${PYSITELIB}/grako/test/grammar/parameter_test.so
+${PYSITELIB}/grako/test/grammar/pattern_test.py
+${PYSITELIB}/grako/test/grammar/pattern_test.pyc
+${PYSITELIB}/grako/test/grammar/pattern_test.pyo
+${PYSITELIB}/grako/test/grammar/pattern_test.so
+${PYSITELIB}/grako/test/grammar/pretty_test.py
+${PYSITELIB}/grako/test/grammar/pretty_test.pyc
+${PYSITELIB}/grako/test/grammar/pretty_test.pyo
+${PYSITELIB}/grako/test/grammar/pretty_test.so
+${PYSITELIB}/grako/test/grammar/semantics_test.py
+${PYSITELIB}/grako/test/grammar/semantics_test.pyc
+${PYSITELIB}/grako/test/grammar/semantics_test.pyo
+${PYSITELIB}/grako/test/grammar/semantics_test.so
+${PYSITELIB}/grako/test/grammar/stateful_test.py
+${PYSITELIB}/grako/test/grammar/stateful_test.pyc
+${PYSITELIB}/grako/test/grammar/stateful_test.pyo
+${PYSITELIB}/grako/test/grammar/stateful_test.so
+${PYSITELIB}/grako/test/grammar/syntax_test.py
+${PYSITELIB}/grako/test/grammar/syntax_test.pyc
+${PYSITELIB}/grako/test/grammar/syntax_test.pyo
+${PYSITELIB}/grako/test/grammar/syntax_test.so
+${PYSITELIB}/grako/test/model_test.py
+${PYSITELIB}/grako/test/model_test.pyc
+${PYSITELIB}/grako/test/model_test.pyo
+${PYSITELIB}/grako/test/parsing_test.py
+${PYSITELIB}/grako/test/parsing_test.pyc
+${PYSITELIB}/grako/test/parsing_test.pyo
+${PYSITELIB}/grako/test/pickle_test.py
+${PYSITELIB}/grako/test/pickle_test.pyc
+${PYSITELIB}/grako/test/pickle_test.pyo
+${PYSITELIB}/grako/test/zzz_bootstrap/__init__.py
+${PYSITELIB}/grako/test/zzz_bootstrap/__init__.pyc
+${PYSITELIB}/grako/test/zzz_bootstrap/__init__.pyo
+${PYSITELIB}/grako/test/zzz_bootstrap/__init__.so
+${PYSITELIB}/grako/test/zzz_bootstrap/bootstrap_test.py
+${PYSITELIB}/grako/test/zzz_bootstrap/bootstrap_test.pyc
+${PYSITELIB}/grako/test/zzz_bootstrap/bootstrap_test.pyo
+${PYSITELIB}/grako/test/zzz_bootstrap/bootstrap_test.so
+${PYSITELIB}/grako/tool.py
+${PYSITELIB}/grako/tool.pyc
+${PYSITELIB}/grako/tool.pyo
+${PYSITELIB}/grako/tool.so
+${PYSITELIB}/grako/util.py
+${PYSITELIB}/grako/util.pyc
+${PYSITELIB}/grako/util.pyo
+${PYSITELIB}/grako/util.so
+${PYSITELIB}/grako/walkers.py
+${PYSITELIB}/grako/walkers.pyc
+${PYSITELIB}/grako/walkers.pyo
+${PYSITELIB}/grako/walkers.so
+${PYSITELIB}/grako/yaml.py
+${PYSITELIB}/grako/yaml.pyc
+${PYSITELIB}/grako/yaml.pyo
+${PYSITELIB}/grako/yaml.so
diff -r b0315e7cfe02 -r 4f726e965df7 devel/py-grako/distinfo
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/devel/py-grako/distinfo Thu Jun 01 12:04:38 2017 +0000
@@ -0,0 +1,6 @@
+$NetBSD: distinfo,v 1.1 2017/06/01 12:04:38 adam Exp $
+
+SHA1 (grako-3.99.9.zip) = b8751e9e40b8f51aae7316b80d2bed65e56ddbd4
+RMD160 (grako-3.99.9.zip) = 151edb61fd019d98734cf959b1ea28178fce3ba8
+SHA512 (grako-3.99.9.zip) = 1251a669cafc37021405f63005eab974fc1d9acab04f14ef16132411c1c36e540a3a092ae58a6ca5c3f46d3e040d2402cb287cc1fc56aa422eb5200555f29a74
+Size (grako-3.99.9.zip) = 159278 bytes
Home |
Main Index |
Thread Index |
Old Index