diff --git a/devel/re2c/Makefile b/devel/re2c/Makefile index f587679d9210..4b0af9125e9c 100644 --- a/devel/re2c/Makefile +++ b/devel/re2c/Makefile @@ -1,32 +1,44 @@ # Created by: Eivind Eklund 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= cpe cmake 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 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