Skip to main content

Recursive descent parsing library based on functional combinators

Project 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.

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

funcparserlib-0.3.6.tar.gz (30.4 kB view details)

Uploaded Source

File details

Details for the file funcparserlib-0.3.6.tar.gz.

File metadata

File hashes

Hashes for funcparserlib-0.3.6.tar.gz
Algorithm Hash digest
SHA256 b7992eac1a3eb97b3d91faa342bfda0729e990bd8a43774c1592c091e563c91d
MD5 3aba546bdad5d0826596910551ce37c0
BLAKE2b-256 cbf7b4a59c3ccf67c0082546eaeb454da1a6610e924d2e7a2a21f337ecae7b40

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page