mirror of
https://git.FreeBSD.org/ports.git
synced 2024-12-19 03:52:17 +00:00
f6bf4993f1
- Switch to easy_install - Convert to new Makefile header - Adapt to new options framework - Allow OPTIONSFILE to be overridden - Replace tab with a single space after 'WWW:' in pkg-descr
22 lines
940 B
Plaintext
22 lines
940 B
Plaintext
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/
|