Port details |
- py-funcparserlib Recursive descent parsing library based on functional combinators
- 1.0.1 devel =2 1.0.1Version of this port present on the latest quarterly branch.
- Maintainer: tota@FreeBSD.org
- Port Added: 2011-08-05 14:04:23
- Last Update: 2023-06-27 19:34:34
- Commit Hash: 3d9a815
- People watching this port, also watch:: jdictionary, py311-Automat, py311-python-gdsii, py39-PyOpenGL, p5-Sane
- Also Listed In: python
- License: MIT
- WWW:
- https://funcparserlib.pirx.ru/
- Description:
- The primary focus of funcparserlib is parsing little languages or
external DSLs (domain specific languages).
Parsers made with funcparserlib are pure-Python LL(*) parsers. It
means that it's very easy to write parsers without thinking about
lookaheads and other hardcore parsing stuff. However, recursive
descent parsing is a rather slow method compared to LL(k) or LR(k)
algorithms. Still, parsing with funcparserlib is at least twice
faster than PyParsing, a very popular library for Python.
The source code of funcparserlib is only 1.2K lines of code, with
lots of comments. Its API is fully type hinted. It features the
longest parsed prefix error reporting, as well as a tiny lexer
generator for token position tracking.
The idea of parser combinators used in funcparserlib comes from the
Introduction to Functional Programming course. We have converted
it from ML into Python.
- ¦ ¦ ¦ ¦
- Manual pages:
- FreshPorts has no man page information for this port.
- pkg-plist: as obtained via:
make generate-plist - There is no configure plist information for this port.
- Dependency lines:
-
- ${PYTHON_PKGNAMEPREFIX}funcparserlib>0:devel/py-funcparserlib@${PY_FLAVOR}
- To install the port:
- cd /usr/ports/devel/py-funcparserlib/ && make install clean
- To add the package, run one of these commands:
- pkg install devel/py-funcparserlib
- pkg install py39-funcparserlib
NOTE: If this package has multiple flavors (see below), then use one of them instead of the name specified above. NOTE: This is a Python port. Instead of py39-funcparserlib listed in the above command, you can pick from the names under the Packages section.- PKGNAME: py39-funcparserlib
- Package flavors (<flavor>: <package>)
- distinfo:
- TIMESTAMP = 1683934239
SHA256 (funcparserlib-1.0.1.tar.gz) = a2c4a0d7942f7a0e7635c369d921066c8d4cae7f8b5bf7914466bec3c69837f4
SIZE (funcparserlib-1.0.1.tar.gz) = 17238
Packages (timestamps in pop-ups are UTC):
- Dependencies
- NOTE: FreshPorts displays only information on required and default dependencies. Optional dependencies are not covered.
- Build dependencies:
-
- py39-setuptools>=63.1.0 : devel/py-setuptools@py39
- python3.9 : lang/python39
- Test dependencies:
-
- python3.9 : lang/python39
- Runtime dependencies:
-
- py39-setuptools>=63.1.0 : devel/py-setuptools@py39
- python3.9 : lang/python39
- This port is required by:
- for Build
-
- lang/py-hy
- for Run
-
- graphics/py-blockdiag
- lang/py-hy
Configuration Options:
- No options to configure
- Options name:
- devel_py-funcparserlib
- USES:
- python
- FreshPorts was unable to extract/find any pkg message
- Master Sites:
|
Commit History - (may be incomplete: for full details, see links to repositories near top of page) |
Commit | Credits | Log message |
1.0.1 27 Jun 2023 19:34:34 |
Rene Ladan (rene) |
all: remove explicit versions in USES=python for "3.x+"
The logic in USES=python will automatically convert this to 3.8+ by
itself.
Adjust two ports that only had Python 3.7 mentioned but build fine
on Python 3.8 too.
finance/quickfix: mark BROKEN with PYTHON
libtool: compile: c++ -DHAVE_CONFIG_H -I. -I../.. -I -I. -I.. -I../.. -I../C++
-DLIBICONV_PLUG -DPYTHON_MAJOR_VERSION=3 -Wno-unused-variable
-Wno-maybe-uninitialized -O2 -pipe -DLIBICONV_PLUG -fstack-protector-strong
-fno-strict-aliasing -DLIBICONV_PLUG -Wall -ansi
-Wno-unused-command-line-argument -Wpointer-arith -Wwrite-strings
-Wno-overloaded-virtual -Wno-deprecated-declarations -Wno-deprecated -std=c++0x
-MT _quickfix_la-QuickfixPython.lo -MD -MP -MF
.deps/_quickfix_la-QuickfixPython.Tpo -c QuickfixPython.cpp -fPIC -DPIC -o
.libs/_quickfix_la-QuickfixPython.o
warning: unknown warning option '-Wno-maybe-uninitialized'; did you mean
'-Wno-uninitialized'? [-Wunknown-warning-option]
QuickfixPython.cpp:175:11: fatal error: 'Python.h' file not found
^~~~~~~~~~
1 warning and 1 error generated.
Reviewed by: portmgr, vishwin, yuri
Differential Revision: <https://reviews.freebsd.org/D40568> |
1.0.1 13 May 2023 05:21:10 |
TAKATSU Tomonari (tota) |
devel/py-funcparserlib: Update to 1.0.1 |
1.0.0 11 Jan 2023 15:58:34 |
Dmitry Marakasov (amdmi3) |
*/*: rename CHEESESHOP to PYPI in MASTER_SITES
PR: 267994
Differential revision: D37518
Approved by: bapt |
07 Sep 2022 21:58:51 |
Stefan Eßer (se) |
Remove WWW entries moved into port Makefiles
Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.
This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.
Approved by: portmgr (tcberner) |
1.0.0 07 Sep 2022 21:10:59 |
Stefan Eßer (se) |
Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.
Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.
There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.
(Only the first 15 lines of the commit message are shown above ) |
1.0.0 20 Jul 2022 14:21:35 |
Tobias C. Berner (tcberner) |
devel: remove 'Created by' lines
A big Thank You to the original contributors of these ports:
* "Waitman Gobble" <uzimac@da3m0n8t3r.com>
* <jkoshy@FreeBSD.org>
* Aaron Dalton <aaron@FreeBSD.org>
* Aaron Dalton <aaron@daltons.ca>
* Aaron H. K. Diep <ahkdiep@gmail.com>
* Aaron Hurt <ahurt@anbcs.com>
* Abel Chow <abel_chow@yahoo.com>
* Adam McLaurin
* Adam Saponara <as@php.net>
* Adam Weinberger <adamw@FreeBSD.org>
* Ade Lovett <ade@FreeBSD.org> (Only the first 15 lines of the commit message are shown above ) |
1.0.0 07 May 2022 04:31:49 |
TAKATSU Tomonari (tota) |
devel/py-funcparserlib: Update to 1.0.0
- Remove DOCS option
- Update pkg-descr
Changes: https://funcparserlib.pirx.ru/changes/#100-2022-05-02 |
0.3.6_1 07 Mar 2022 18:13:18 |
Po-Chuan Hsieh (sunpoet) |
devel/py-funcparserlib: Fix build with setuptools 58.0.0+
With hat: python |
0.3.6_1 06 Apr 2021 14:31:07 |
Mathieu Arnold (mat) |
Remove # $FreeBSD$ from Makefiles. |
0.3.6_1 28 Dec 2020 23:02:15 |
antoine |
Drop python 2.7 support from a few ports
With hat: portmgr |
0.3.6_1 21 Oct 2016 12:51:41 |
mat |
${RM} already has -f.
PR: 213570
Submitted by: mat
Exp-run by: antoine
Sponsored by: Absolight |
0.3.6_1 19 May 2016 10:21:25 |
amdmi3 |
- Fix trailing whitespace in pkg-descrs, categories [a-f]*
Approved by: portmgr blanket |
0.3.6_1 17 Aug 2015 14:20:41 |
mat |
Remove UNIQUENAME and LATEST_LINK.
UNIQUENAME was never unique, it was only used by USE_LDCONFIG and now,
we won't have conflicts there.
Use PKGBASE instead of LATEST_LINK in PKGLATESTFILE, the *only* consumer
is pkg-devel, and it works just fine without LATEST_LINK as pkg-devel
has the correct PKGNAME anyway.
Now that UNIQUENAME is gone, OPTIONSFILE is too. (it's been called
OPTIONS_FILE now.)
Reviewed by: antoine, bapt
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D3336 |
0.3.6_1 20 Oct 2014 16:04:14 |
mva |
- Convert ports of devel/ to USES=python
Approved by: portmgr (implicit) |
0.3.6_1 12 Apr 2014 10:48:26 |
tota |
- Support STAGEDIR [1]
- Use USE_PYDISTUTILS= yes instead of easy_install
- Use PYDISTUTILS_AUTOPLIST
- Make docs unconditional to stage
* Remove bsd.port.options.mk, accordingly
* Remove OPTIONSFILE which is not needed
- Unmute INSTALL_WRKSRC in post-install target
- Remove x-generate-plist target which should have been done
at r317309 when pkg-plist was removed
- Bump PORTREVISION
PR: ports/188493 [1]
Submitted by: Bartek Rutkowski <ports@robakdesign.com> |
0.3.6 20 Sep 2013 17:13:47 |
bapt |
Add NO_STAGE all over the place in preparation for the staging support (cat:
devel part 3) |
0.3.6 04 May 2013 11:40:09 |
tota |
- Update to 0.3.6
- Switch to easy_install
- Convert to new Makefile header
- Adapt to new options framework
- Allow OPTIONSFILE to be overridden
- Replace tab with a single space after 'WWW:' in pkg-descr |
0.3.5 25 Jul 2012 11:24:11 |
cs |
Fix typos in COMMENT |
0.3.5 05 Aug 2011 14:03:53 |
tota |
- Add a new port: devel/py-funcparserlib
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.
WWW: http://code.google.com/p/funcparserlib/ |