aboutsummaryrefslogtreecommitdiff
path: root/devel/py-funcparserlib/pkg-descr
diff options
context:
space:
mode:
authorTAKATSU Tomonari <tota@FreeBSD.org>2011-08-05 14:03:53 +0000
committerTAKATSU Tomonari <tota@FreeBSD.org>2011-08-05 14:03:53 +0000
commitd0bf10ed20d8374cb6ac1ee4d13a6450be1af058 (patch)
tree540d91f6fc7d925b7461f6248bcd77ade3db36c6 /devel/py-funcparserlib/pkg-descr
parent6e4e0d5b6d8581e17a8b04b283ab23bf62e0c4e1 (diff)
downloadports-d0bf10ed20d8374cb6ac1ee4d13a6450be1af058.tar.gz
ports-d0bf10ed20d8374cb6ac1ee4d13a6450be1af058.zip
Notes
Diffstat (limited to 'devel/py-funcparserlib/pkg-descr')
-rw-r--r--devel/py-funcparserlib/pkg-descr21
1 files changed, 21 insertions, 0 deletions
diff --git a/devel/py-funcparserlib/pkg-descr b/devel/py-funcparserlib/pkg-descr
new file mode 100644
index 000000000000..cd63ed8594c2
--- /dev/null
+++ b/devel/py-funcparserlib/pkg-descr
@@ -0,0 +1,21 @@
+Parser combinators are just higher-order functions that take parsers as
+their arguments and return them as result values. Parser combinators are:
+
+ * First-class values
+ * Extremely composable
+ * Tend to make the code quite compact
+ * Resemble the readable notation of xBNF grammars
+
+Parsers made with funcparserlib are pure-Python LL(*) parsers. It means that
+it's very easy to write them without thinking about look-aheads and all that
+hardcore parsing stuff. But the recursive descent parsing is a rather slow
+method compared to LL(k) or LR(k) algorithms.
+
+So the primary domain for funcparserlib is parsing little languages or external
+DSLs (domain specific languages).
+
+The library itself is very small. Its source code is only 0.5 KLOC, with lots
+of comments included. It features the longest parsed prefix error reporting,
+as well as a tiny lexer generator for token position tracking.
+
+WWW: http://code.google.com/p/funcparserlib/