mirror of
https://github.com/Stichting-MINIX-Research-Foundation/pkgsrc-ng.git
synced 2025-09-08 20:07:50 -04:00
19 lines
892 B
Plaintext
19 lines
892 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.
|