./devel/py-funcparserlib, Recursive descent parsing library based on functional combinators

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]

Branch: CURRENT, Version: 1.0.1, Package name: py310-funcparserlib-1.0.1, Maintainer: pkgsrc-users

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.

Master sites:

Filesize: 16.834 KB

Version history: (Expand)

CVS history: (Expand)

   2022-11-26 20:50:46 by Adam Ciarcinski | Files touched by this commit (4) | Package updated
Log message:
py-funcparserlib: updated to 1.0.1


Added support for Python 3.11


The stable 1.0.0 release freezes the API of funcparserlib 0.3.6 which was \ 
released on 2013-05-02, with a few bug fixes and small features.


Added support for Python 3.10
Added support for Python 3.9
Added support for Python 3.8
Added -p (the same as skip(p)) with more strict type hints for -p and p1 + p2
Added tok(type[, value]) for more compact grammars, better error messages
Added TokenSpec(type, pattern[, flags]) to simplify the use of make_tokenizer()
Added type hints for the public API
Added the new library homepage with the new Getting Started guide and the new \ 
API reference


Parse exceptions now show expected tokens and grammar rules at the stopped position
Dropped support for Python 3.4, 3.5, 3.6 (end of life)
Dropped support for Python 2.5, 2.6, 3.3 (end of life), modernized code for \ 
Python 3 to run without obsolete 2to3
Removed documentation and unit tests from the distribution
Switched from setuptools to Poetry
Switched to poetry-core for lighter PEP 517 builds
Run unit tests on GitHub Actions for all supported Pythons


Fixed TypeError in oneplus when applying it parser + parser
Fixed AttributeError when comparing Token objects to None
Fixed doctests in the tutorial
Fixed several cases of wrong expected tokens in error messages
   2022-01-04 21:55:40 by Thomas Klausner | Files touched by this commit (1595)
Log message:
*: bump PKGREVISION for egg.mk users

They now have a tool dependency on py-setuptools instead of a DEPENDS
   2021-12-16 12:16:14 by Thomas Klausner | Files touched by this commit (3)
Log message:
py-funcparserlib: fix build with latest setuptools
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:

The following distfiles were unfetchable (note: some may be only fetched

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip
   2021-10-07 15:44:44 by Nia Alarie | Files touched by this commit (3017)
Log message:
devel: Remove SHA1 hashes for distfiles
   2017-09-04 20:55:10 by Thomas Klausner | Files touched by this commit (40)
Log message:
Update some URLs.
   2016-06-08 19:43:49 by Thomas Klausner | Files touched by this commit (356)
Log message:
   2015-11-03 04:29:40 by Alistair G. Crooks | Files touched by this commit (1995)
Log message:
Add SHA512 digests for distfiles for devel category

Issues found with existing distfiles:
No changes made to these distinfo files.

Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden).  All existing
SHA1 digests retained for now as an audit trail.