BSD Ports

devel/py-funcparserlib 1.0.1 NetBSD

Recursive descent parsing library based on functional combinators

System
NetBSD
Repository
pkgsrc
Maintainer
[email protected]
Last update
Commit
2b8eae59ea
License
mit
Categories
devel, python
Package size
25.1 KiB, 135.5 KiB installed

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.

In the other systems

SystemPortVersion
NetBSDdevel/py-funcparserlib1.0.1
FreeBSDdevel/py-funcparserlib1.0.1_1
DragonFlydevel/py-funcparserlib1.0.1_1
HardenedBSDdevel/py-funcparserlib1.0.1_1
GhostBSDdevel/py-funcparserlib1.0.1_1

Install

Binary package:

pkgin install py311-funcparserlib

From pkgsrc:

cd /usr/pkgsrc/devel/py-funcparserlib && make install clean

Packages

The version each package repository carries. “-” means the repository builds no package of it, “n/a” that there is no such repository.

RepositoryVersion
NetBSD 10.1 x86_641.0.1
NetBSD 10.1 aarch641.0.1
SmartOS / illumos x86_641.0.1nb1
macOS 15 arm641.0.1

Dependencies

Run dependencies 1

Configuration

No options to configure.

Service scripts
none
Flavors
py312-funcparserlib-1.0.1, py313-funcparserlib-1.0.1, py314-funcparserlib-1.0.1

Commit history 1

DateCommitCreditsLog message
2b8eae59ea adam py-funcparserlib: converted to wheel.mk