git: 2bf3900fc8bf - main - devel/re2c: Update to 2.2

From: Daniel Engberg <diizzy_at_FreeBSD.org>
Date: Fri, 08 Oct 2021 07:06:44 UTC
The branch main has been updated by diizzy:

URL: https://cgit.FreeBSD.org/ports/commit/?id=2bf3900fc8bfca9c896d6d844e336663a40fbfa9

commit 2bf3900fc8bfca9c896d6d844e336663a40fbfa9
Author:     Eero Hänninen <fax@nohik.ee>
AuthorDate: 2021-10-08 06:26:29 +0000
Commit:     Daniel Engberg <diizzy@FreeBSD.org>
CommitDate: 2021-10-08 07:06:34 +0000

    devel/re2c: Update to 2.2
    
    Additional changes to submitted patch done by Corey Halpin (maintainer)
    and Daniel Engberg (ports committer).
    
    Changelog: https://github.com/skvadrik/re2c/blob/master/CHANGELOG
    
    PR:             257966
    Approved by:    port maintainer, arrowd (mentor)
    Differential Revision:  https://reviews.freebsd.org/D32327
---
 devel/re2c/Makefile  |  40 +++++++++-----
 devel/re2c/distinfo  |   5 +-
 devel/re2c/pkg-descr |  18 +++---
 devel/re2c/pkg-plist | 152 +++++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 192 insertions(+), 23 deletions(-)

diff --git a/devel/re2c/Makefile b/devel/re2c/Makefile
index f587679d9210..34f9703b02f0 100644
--- a/devel/re2c/Makefile
+++ b/devel/re2c/Makefile
@@ -1,32 +1,44 @@
 # Created by: Eivind Eklund <eivind@FreeBSD.org>
 
 PORTNAME=	re2c
-PORTVERSION=	0.14.3
+DISTVERSION=	2.2
 CATEGORIES=	devel
-MASTER_SITES=	SF/${PORTNAME}/${PORTVERSION}
+MASTER_SITES=	https://github.com/skvadrik/${PORTNAME}/releases/download/${DISTVERSION}/
 
 MAINTAINER=	chalpin@cs.wisc.edu
-COMMENT=	Compile regular expression to C (much faster final code than flex)
+COMMENT=	Lexer generator for C, C++ and Go with a focus on generating fast code
 
 LICENSE=	PD
 
-USES=		cpe
+TEST_DEPENDS=	bash:shells/bash
 
-OPTIONS_DEFINE=	DOCS EXAMPLES
+USES=	cmake cpe python:3.6+,test tar:xz
 
-GNU_CONFIGURE=	yes
+TEST_TARGET=	check
+TEST_USES=	shebangfix
+SHEBANG_FILES=	test/posix_captures/.run/__run.sh \
+		test/posix_captures/.gen/__gen.sh \
+		test/__run_unicode_tests.sh
 
-PLIST_FILES=	bin/re2c \
-		man/man1/re2c.1.gz
-PORTDOCS=	*
-PORTEXAMPLES=	*
+OPTIONS_DEFINE=		DOCS EXAMPLES LIBRE2C RE2GO
+OPTIONS_DEFAULT=	RE2GO
+OPTIONS_SUB=		yes
+
+LIBRE2C_DESC=		Build libre2c (Experimental)
+RE2GO_DESC=		Build RE2GO (identical to re2c --lang go)
+
+DOCS_BUILD_DEPENDS=	bison:devel/bison \
+			rst2man:textproc/py-docutils
+DOCS_CMAKE_BOOL=	RE2C_REBUILD_DOCS
+LIBRE2C_CMAKE_BOOL=	RE2C_BUILD_LIBS BUILD_SHARED_LIBS
+RE2GO_CMAKE_BOOL=	RE2C_BUILD_RE2GO
 
 post-install-DOCS-on:
-	@${MKDIR} ${STAGEDIR}${DOCSDIR}/
-	(cd ${WRKSRC}/doc/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR}/)
+	${MKDIR} ${STAGEDIR}${DOCSDIR}
+	(cd ${WRKSRC}/doc/ && ${COPYTREE_SHARE} . ${STAGEDIR}${DOCSDIR})
 
 post-install-EXAMPLES-on:
-	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}/
-	(cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR}/)
+	${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	(cd ${WRKSRC}/examples/ && ${COPYTREE_SHARE} . ${STAGEDIR}${EXAMPLESDIR})
 
 .include <bsd.port.mk>
diff --git a/devel/re2c/distinfo b/devel/re2c/distinfo
index 64a28aebde73..7ef24fc20aff 100644
--- a/devel/re2c/distinfo
+++ b/devel/re2c/distinfo
@@ -1,2 +1,3 @@
-SHA256 (re2c-0.14.3.tar.gz) = 1c6806df599f3aef0804b576cfdf64bdba5ad590626dfca2d44e473460917e84
-SIZE (re2c-0.14.3.tar.gz) = 2576859
+TIMESTAMP = 1632787083
+SHA256 (re2c-2.2.tar.xz) = 0fc45e4130a8a555d68e230d1795de0216dfe99096b61b28e67c86dfd7d86bda
+SIZE (re2c-2.2.tar.xz) = 1460740
diff --git a/devel/re2c/pkg-descr b/devel/re2c/pkg-descr
index ef6bd2bbeacd..0c2f9fb93467 100644
--- a/devel/re2c/pkg-descr
+++ b/devel/re2c/pkg-descr
@@ -1,8 +1,12 @@
-re2c is a tool for generating C-based recognizers from regular
-expressions.  re2c-based scanners are efficient:  for programming
-languages, given similar specifications, an re2c-based scanner is
-typically almost twice as fast as a flex-based scanner with little or no
-increase in size (possibly a decrease on cisc architectures).  Indeed,
-re2c-based scanners are quite competitive with hand-crafted ones.
+Re2c is a free and open-source lexer generator for C, C++ and Go with a
+focus on generating fast code. It compiles regular expression
+specifications to deterministic finite automata and encodes them in the
+form of conditional jumps in the target language. This approach is
+generally faster than table-based lexers, and the generated code is easier
+to debug and understand. A flexible user interface allows one to adapt the
+generated lexer to a particular environment and input model, avoiding the
+overhead on unnecessary checks and buffers. Re2c is based on the lookahead
+TDFA algorithm that allows it to perform fast and lightweight submatch
+extraction.
 
-WWW: http://re2c.org/
+WWW: https://re2c.org/
diff --git a/devel/re2c/pkg-plist b/devel/re2c/pkg-plist
new file mode 100644
index 000000000000..cd73cd14cdb1
--- /dev/null
+++ b/devel/re2c/pkg-plist
@@ -0,0 +1,152 @@
+bin/re2c
+%%RE2GO%%bin/re2go
+%%LIBRE2C%%lib/libre2c.so
+%%PORTDOCS%%%%DOCSDIR%%/help.rst
+%%PORTDOCS%%%%DOCSDIR%%/help.rst.in
+%%PORTDOCS%%%%DOCSDIR%%/manpage.rst.in
+%%PORTDOCS%%%%DOCSDIR%%/manual/api/interface.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/conditions/conditions.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/configurations/configurations.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/directives/directives.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/dot/dot.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/encodings/encodings.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/eof/01_sentinel.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/eof/02_bounds_checking.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/eof/03_eof_rule.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/eof/04_generic_api.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/eof/eof.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/fill/01_fill.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/fill/02_fill.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/fill/fill.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/headers/headers.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/includes/includes.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/options/debug.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/options/internal.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/options/options.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/regexps/regular_expressions.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/reuse/reuse.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/skeleton/skeleton.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/state/state.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/submatch/submatch.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/submatch/submatch_example_mtags.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/submatch/submatch_example_posix.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/submatch/submatch_example_stags.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/submatch/submatch_example_stags_fill.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/syntax/api1.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/syntax/api2_c.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/syntax/api2_go.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/syntax/api3.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/syntax/syntax.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/warnings/warnings_general.rst_
+%%PORTDOCS%%%%DOCSDIR%%/manual/warnings/warnings_list.rst_
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/01_basic.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/01_basic.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/__run_all.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/conditions/parse_u32_blocks.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/conditions/parse_u32_blocks.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/conditions/parse_u32_conditions.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/conditions/parse_u32_conditions.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/encodings/unicode_identifier.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/encodings/unicode_identifier.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/01_sentinel.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/01_sentinel.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/02_bounds_checking.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/02_bounds_checking.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/03_eof_rule.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/03_eof_rule.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/04_generic_api_sentinel.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/04_generic_api_sentinel.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/05_generic_api_eof_rule.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/eof/05_generic_api_eof_rule.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/fill/01_fill.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/fill/01_fill.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/fill/02_fill.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/fill/02_fill.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/generic_api/ifstream.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/generic_api/ifstream.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/headers/header.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/headers/header.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/headers/src/lexer/lexer.h
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/includes/definitions.h
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/includes/extra_rules.re.inc
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/includes/include.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/includes/include.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/real_world/cxx98.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/real_world/cxx98.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/braille.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/braille.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/braille.ucs2.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/braille.utf16.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/braille.utf32.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/braille.utf8.txt
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/reuse.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/reuse.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/usedir.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/reuse/usedir.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/state/push.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/state/push.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/01_stags.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/01_stags.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/01_stags_fill.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/01_stags_fill.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/02_mtags.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/02_mtags.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/03_posix.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/03_posix.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/http_rfc7230.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/http_rfc7230.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/parse_etc_passwd.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/parse_etc_passwd.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/parse_options.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/parse_options.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/parse_records.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/parse_records.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/uri_rfc3986.c
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/c/submatch/uri_rfc3986.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/01_basic.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/01_basic.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/__run_all.sh
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/conditions/parse_u32_blocks.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/conditions/parse_u32_blocks.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/conditions/parse_u32_conditions.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/conditions/parse_u32_conditions.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/encodings/unicode_identifier.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/encodings/unicode_identifier.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/01_sentinel.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/01_sentinel.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/02_bounds_checking.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/02_bounds_checking.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/03_eof_rule.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/03_eof_rule.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/04_generic_api_sentinel.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/04_generic_api_sentinel.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/05_generic_api_eof_rule.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/eof/05_generic_api_eof_rule.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/fill/01_fill.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/fill/01_fill.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/fill/02_fill.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/fill/02_fill.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/headers/header.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/headers/header.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/headers/src/lexer/lexer.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/includes/definitions.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/includes/extra_rules.re.inc
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/includes/include.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/includes/include.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/reuse/reuse.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/reuse/reuse.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/reuse/usedir.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/reuse/usedir.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/state/push.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/state/push.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/01_stags.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/01_stags.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/01_stags_fill.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/01_stags_fill.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/02_mtags.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/02_mtags.re
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/03_posix.go
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/go/submatch/03_posix.re
+share/man/man1/re2c.1.gz
+%%RE2GO%%share/man/man1/re2go.1.gz
+%%DATADIR%%/stdlib/unicode_categories.re