head 1.1; access; symbols pkgsrc-2026Q1:1.1.0.18 pkgsrc-2026Q1-base:1.1 pkgsrc-2025Q4:1.1.0.16 pkgsrc-2025Q4-base:1.1 pkgsrc-2025Q3:1.1.0.14 pkgsrc-2025Q3-base:1.1 pkgsrc-2025Q2:1.1.0.12 pkgsrc-2025Q2-base:1.1 pkgsrc-2025Q1:1.1.0.10 pkgsrc-2025Q1-base:1.1 pkgsrc-2024Q4:1.1.0.8 pkgsrc-2024Q4-base:1.1 pkgsrc-2024Q3:1.1.0.6 pkgsrc-2024Q3-base:1.1 pkgsrc-2024Q2:1.1.0.4 pkgsrc-2024Q2-base:1.1 pkgsrc-2024Q1:1.1.0.2 pkgsrc-2024Q1-base:1.1; locks; strict; comment @// @; 1.1 date 2024.03.21.20.44.40; author wiz; state Exp; branches; next ; commitid V5xA0rDXhaMnl43F; desc @@ 1.1 log @devel/RE-flex: Update to v4.1.2 Prepared by Malte Dehling in wip. pkgsrc change: turn off cpu-optimization option by default. Dec 10, 2021: 3.1.0 improved buffering mechanism with reduced buffer sizes; faster columno() for long lines; fix CP-1251 table typo. Feb 20, 2022: 3.2.0 new %option ctorinit; faster compilation of regular expressions to tables and direct code DFAs; refactored SIMD source code to enable AVX2 and AVX512BW optimizations in multi-version matcher code; updated Windows binary file opening. Feb 23, 2022: 3.2.1 regression bug in 3.2.0 fix. Mar 13, 2022: 3.2.2 minor improvements. Apr 2, 2022: 3.2.3 fixed C++17 compliance and dso build. Apr 29, 2022: 3.2.4 new %begin directive; new --batch=SIZE option argument. Apr 30, 2022: 3.2.5 minor correction. May 6, 2022: 3.2.6 improved fuzzy matcher. May 10, 2022: 3.2.7 improved fuzzy matcher, see also https://github.com/Genivia/FuzzyMatcher. Jul 6, 2022: 3.2.8 minor update to correct a lexer file parsing issue in the reflex code generator tool. Aug 12, 2022: 3.2.9 add cmake rules for Windows builds. Aug 21, 2022: 3.2.10 bug fix in regular expression converter. Aug 29, 2022: 3.2.11 new lua2lisp transpiler example with Bison complete symbols and locations. Jan 6, 2023: 3.2.12 regression bug fix in trailing context pattern matching, e.g. xy and x/x patterns collided when they should not; updated yaml parser example. Jan 24, 2023: 3.3.0 overall update; corrected a problem with Unicode characters in regex patterns adjacent to curly braces; permit cxx extension in FSM filename output. Mar 6, 2023: 3.3.1 for consistency include NAME in default header file name, tables file name, and graphs file name when option --prefix is specified. Mar 17, 2023: 3.3.2 fix a performance issue with case-insensitive pattern construction. May 28, 2023: 3.3.3 fix yyrestart dropping the first character; faster Matcher::find(). May 31, 2023: 3.3.4 fix Matcher::find() initialization issue in 3.3.3. Jun 12, 2023: 3.3.5 improve source code output of lexer class definitions. Jul 11, 2023: 3.3.6 faster Matcher::find(); improved --stdout to include tables. Jul 17, 2023: 3.3.7 faster Matcher::find(). Aug 4, 2023: 3.3.8 minor update to sync up the code base with the ugrep project. Aug 16, 2023: 3.3.9 fix avx512bw compilation error; new LineMatcher matching engine. Sep 16, 2023: 3.4.0 fix FuzzyMatcher::DEL flag when this is the only flag selected; fix FuzzyMatcher::matches() bug that incorrectly matched an extra character before the end of the input; optimize find(); updated saving the FSM pred[] hashes to a file, which has changed; increase default buffer size REFLEX_BUFSZ to 128K for best throughput performance. Sep 25, 2023: 3.4.1 make word boundaries \b, \B, \< and \> applicable anywhere in a pattern. Oct 7, 2023: 3.5.0 updated to Unicode 15.1; clarify . (dot) with %unicode enabled, which is a catch-all pattern; update \X to match only valid Unicode characters. Nov 5, 2023: 3.5.1 minor improvements. Feb 17, 2024: 4.0.0 faster Matcher::find() with a new DFA cut algorithm to optimize match prediction speed and accuracy, see also ugrep 5.0; apply Unicode pattern canonicalization with reflex::convert(..., reflex::convert_flag::unicode). Feb 23, 2024: 4.0.1 new rawk example to demonstrate awk-like fast search in C++; enable <> rules for option find to generate a fast search engine. Mar 5, 2024: 4.1.0 improved lazy quantifiers for POSIX regex lazy matching in linear time using an advanced DFA transformation algorithm introduced in RE/flex in 2016. Mar 11, 2024: 4.1.1 minor update to correct a DFA construction problem for POSIX regex lazy quantifiers matching too much in some cases. Mar 17, 2024: 4.1.2 updated configure scripts; cast negative ctype function arguments (problem detected on NetBSD 10). @ text @$NetBSD$ fix doxygen errors --- src/reflex.cpp.orig 2024-03-17 20:54:34.000000000 +0000 +++ src/reflex.cpp @@@@ -194,8 +194,8 @@@@ static const char *options_table[] = { /// - `x` for `\xXX` 8-bit character encoding in hexadecimal /// - `y` for `\y` word boundary /// - `z` for `\z` end of input anchor -/// - ``` for `\`` begin of input anchor -/// - `'` for `\'` end of input anchor +/// - \c \` for \c \\\` begin of input anchor +/// - \c ' for \c \\' end of input anchor /// - `<` for `\<` left word boundary /// - `>` for `\>` right word boundary /// - `A` for `\A` begin of input anchor @@@@ -216,7 +216,7 @@@@ static const char *options_table[] = { /// - '1' to '9' for backreferences (not applicable to lexer specifications) /// /// Note that 'p' is a special case to support Unicode-based matchers that -/// natively support UTF8 patterns and Unicode classes \p{C}, \P{C}, \w, \W, +/// natively support UTF8 patterns and Unicode classes \\p{C}, \P{C}, \w, \W, /// \d, \D, \l, \L, \u, \U, \N, and \x{X}. Basically, 'p' prevents conversion /// of Unicode patterns to UTF8. This special case does not support {NAME} /// expansions in bracket lists such as [a-z||{upper}] and {lower}{+}{upper} @@@@ -1915,7 +1915,7 @@@@ void Reflex::write_prelude() *out << "\n// --perf-report option requires a timer:\n#include \n"; } -/// Write Flex-compatible #defines to lex.yy.cpp +/// Write Flex-compatible \#defines to lex.yy.cpp void Reflex::write_defines() { if (!out->good()) @