CMD + K

funcparserlib

Community

Recursive descent parsing library based on functional combinators

Installation

To install this package, run one of the following:

Conda
$conda install gwerbin::funcparserlib

Usage Tracking

0.3.6
1 / 8 versions selected
Total downloads: 0

Description

Description

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.

Documentation

See the Documentation__ section on GitHub.

__ https://github.com/vlasovskikh/funcparserlib

What's New in 0.3.6

A maintenance release.

  • Python 3 compatibility
  • #31 Fixed many() that consumed too many tokens in some cases
  • #14 More info available in exception objects

About

Summary

Recursive descent parsing library based on functional combinators

Information Last Updated

Mar 25, 2025 at 16:24

License

MIT License

Total Downloads

46

Platforms

Linux 64 Version: 0.3.6