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

What’s New in 0.3.5

A maintenance release.

  • Python 2.4 compatibility
  • More readable terminal names for error reporting
  • Fixed wrong token positions in lexer error messages

Project details


Release history Release notifications

History Node

0.3.6

This version
History Node

0.3.5

History Node

0.3.4

History Node

0.3.3

History Node

0.3.2

History Node

0.3

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
funcparserlib-0.3.5.tar.gz (33.1 kB) Copy SHA256 hash SHA256 Source None Jan 13, 2011

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page