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
| System | Port | Version |
|---|---|---|
| NetBSD | devel/py-funcparserlib | 1.0.1 |
| FreeBSD | devel/py-funcparserlib | 1.0.1_1 |
| DragonFly | devel/py-funcparserlib | 1.0.1_1 |
| HardenedBSD | devel/py-funcparserlib | 1.0.1_1 |
| GhostBSD | devel/py-funcparserlib | 1.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.
| Repository | Version |
|---|---|
| NetBSD 10.1 x86_64 | 1.0.1 |
| NetBSD 10.1 aarch64 | 1.0.1 |
| SmartOS / illumos x86_64 | 1.0.1nb1 |
| macOS 15 arm64 | 1.0.1 |
Dependencies
Run dependencies 1
Required by 2
Configuration
No options to configure.
- Service scripts
- none
- Flavors
py312-funcparserlib-1.0.1,py313-funcparserlib-1.0.1,py314-funcparserlib-1.0.1