Recursive descent parsing library based on functional combinators
Parser combinators are just higher-order functions that take parsers as their arguments and return them as result values. Parser combinators are:
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.
See the Documentation
__ section on GitHub.
__ https://github.com/vlasovskikh/funcparserlib
A maintenance release.
many()
that consumed too many tokens in some cases