pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

RE-flex: Fix documentation issues



Module Name:	pkgsrc-wip
Committed By:	Malte Dehling <mdehling%gmail.com@localhost>
Pushed By:	mdehling
Date:		Sun Mar 17 14:36:42 2024 -0700
Changeset:	cacbca88b4b603d3908481e55c5c44a63c09ae8a

Modified Files:
	RE-flex/Makefile
	RE-flex/distinfo
	RE-flex/patches/patch-src_reflex.cpp
Added Files:
	RE-flex/patches/patch-doc_index.md
	RE-flex/patches/patch-include_reflex_convert.h
	RE-flex/patches/patch-include_reflex_pattern.h
Removed Files:
	RE-flex/TODO

Log Message:
RE-flex: Fix documentation issues

Unbreak doxygen v1.10 documentation builds in a way that hopefully
doesn't break building with earlier versions.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=cacbca88b4b603d3908481e55c5c44a63c09ae8a

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 RE-flex/Makefile                               |    2 +-
 RE-flex/TODO                                   |    2 -
 RE-flex/distinfo                               |    5 +-
 RE-flex/patches/patch-doc_index.md             | 1084 ++++++++++++++++++++++++
 RE-flex/patches/patch-include_reflex_convert.h |   26 +
 RE-flex/patches/patch-include_reflex_pattern.h |   15 +
 RE-flex/patches/patch-src_reflex.cpp           |   34 +-
 7 files changed, 1162 insertions(+), 6 deletions(-)

diffs:
diff --git a/RE-flex/Makefile b/RE-flex/Makefile
index 125790c4c8..0300910c35 100644
--- a/RE-flex/Makefile
+++ b/RE-flex/Makefile
@@ -1,7 +1,7 @@
 # $NetBSD$
 
 DISTNAME=	RE-flex-4.1.1
-PKGREVISION=	1
+PKGREVISION=	2
 CATEGORIES=	devel
 MASTER_SITES=	${MASTER_SITE_GITHUB:=Genivia/}
 GITHUB_TAG=	v${PKGVERSION_NOREV}
diff --git a/RE-flex/TODO b/RE-flex/TODO
deleted file mode 100644
index 2bf97e3738..0000000000
--- a/RE-flex/TODO
+++ /dev/null
@@ -1,2 +0,0 @@
-- fix documentation (investigate doxygen issues)
-- add tests option?
diff --git a/RE-flex/distinfo b/RE-flex/distinfo
index 2b552f0ebd..849eadde06 100644
--- a/RE-flex/distinfo
+++ b/RE-flex/distinfo
@@ -3,12 +3,15 @@ $NetBSD$
 BLAKE2s (RE-flex-4.1.1.tar.gz) = 8a1ffaa6146926e1ba24587d55a29607023041ae36f851aec4c6151c297450c9
 SHA512 (RE-flex-4.1.1.tar.gz) = 277540226c251af2c190435e71b77a946ec5eaf256c0798982245179152cfe319f9686c563fa1dca6bd8dc5b8bd052bdb1f0ba8f3a2af96f9135e068bdc19626
 Size (RE-flex-4.1.1.tar.gz) = 6599405 bytes
+SHA1 (patch-doc_index.md) = 382df877d351eff1df7ccd2b919331db67c4ee21
 SHA1 (patch-examples_Make) = 2e7a07f62cf80ef502cb76b8cdb980c7a2d0773b
 SHA1 (patch-examples_gz.l) = 09e92adbd4f6aa0b8fa358d6c0fc4778a67209fd
 SHA1 (patch-examples_lua.hpp) = adbd495c9818d4feff9a9454ddc1402a2a6aa859
 SHA1 (patch-examples_minic.hpp) = bf914d2ca8b9e1bf22dfd339c4be2b5dde1f8852
+SHA1 (patch-include_reflex_convert.h) = ed9fbae2d615907a0b596ba5ee9080eb3129c9dc
+SHA1 (patch-include_reflex_pattern.h) = 3dee984028b48ecc7c34aa1e6b487bb4de89c079
 SHA1 (patch-lib_Makefile.in) = 88346027298afc3a8f92fca9d44e077297bd5b79
 SHA1 (patch-lib_convert.cpp) = cf5dc968fb89d04bdffbcc195b8c23523859c175
 SHA1 (patch-lib_pattern.cpp) = b76731e862a021d334bc6bb9fbbb696a82f5333d
 SHA1 (patch-src_Makefile.in) = 504f8e3d7532b5dd26ae7793662c309597015527
-SHA1 (patch-src_reflex.cpp) = 53ae6072b3bdda8334e6c6f1a621b8a5b7e45a17
+SHA1 (patch-src_reflex.cpp) = bea742ae06954a6666175d89585434ab7bc8db13
diff --git a/RE-flex/patches/patch-doc_index.md b/RE-flex/patches/patch-doc_index.md
new file mode 100644
index 0000000000..41e60b24c7
--- /dev/null
+++ b/RE-flex/patches/patch-doc_index.md
@@ -0,0 +1,1084 @@
+$NetBSD$
+
+- escape double quotes
+- fix TOC links
+
+--- doc/index.md.orig	2024-03-11 17:59:51.000000000 +0000
++++ doc/index.md
+@@ -112,7 +112,7 @@ The typographical conventions used by th
+ 
+ @warning Look out for warnings!
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Yet another scanner generator                                         {#intro1}
+@@ -301,7 +301,7 @@ API that can be used as a stand-alone li
+ and splitting input from strings, files and streams in regular C++ applications
+ (i.e. applications that are not necessarily tokenizers for compilers).
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ And a flexible regex library                                          {#intro2}
+@@ -1047,7 +1047,7 @@ In summary:
+ 
+ \ref regex section has more information about the RE/flex regex library.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ The RE/flex scanner generator                                         {#reflex}
+@@ -1127,7 +1127,7 @@ digraph execute {
+ The generated scanner executes actions (typically to produce tokens for a
+ parser).  The actions are triggered by matching patterns to the input.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ The reflex command line tool                                  {#reflex-command}
+@@ -1169,7 +1169,7 @@ with Lex/Flex by generating the global `
+ advanced input handling, which is more powerful than the traditional `FILE*`
+ type `yyin`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Options                                                       {#reflex-options}
+@@ -1240,7 +1240,7 @@ check and use RE/flex options.  For exam
+ option `−−lexer=NAME` or in the lexer specification with
+ <i>`%%option lexer=NAME`</i>.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Scanner options                                   {#reflex-options-scanner}
+ 
+@@ -1377,7 +1377,7 @@ or a tab character.  Actions in free spa
+ blocks and user code must be placed in <i>`%{ %}`</i> blocks.  Patterns ending
+ in an escape `\` continue on the next line.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Output files options                                {#reflex-options-files}
+ 
+@@ -1468,7 +1468,7 @@ should compile the generated table file 
+ `−−fast` eliminate the FSM construction overhead when the scanner is
+ initialized.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Output code options                                  {#reflex-options-code}
+ 
+@@ -1643,7 +1643,7 @@ default-constructed token type value is 
+ reached.  For `int` this is `int()`, which is zero.  By setting
+ `−−token-type=EOF` the value `EOF` is returned, for example.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Debugging options                                   {#reflex-options-debug}
+ 
+@@ -1691,7 +1691,7 @@ This displays a summary of scanner stati
+ 
+ This disables warnings.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Miscellaneous options                       {#reflex-options-miscellaneous}
+ 
+@@ -1707,7 +1707,7 @@ This displays the current <b>`reflex`</b
+ 
+ These options are enabled by default and have no effect.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Lexer specifications                                             {#reflex-spec}
+@@ -1799,7 +1799,7 @@ will not return until the entire input i
+ 
+ More details on these three lexer specification sections is presented next.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### The definitions section                                 {#reflex-spec-defs}
+ 
+@@ -2027,7 +2027,7 @@ for short) to declare inclusive states a
+ 
+ See \ref reflex-states for more information about states.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### The rules section                                      {#reflex-spec-rules}
+ 
+@@ -2344,7 +2344,7 @@ These functions take an extra last `yysc
+ generated with option `−−reentrant`.  This argument is a pointer to a lexer
+ object.  See \ref reflex-reentrant for more details.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### User code sections                                      {#reflex-spec-user}
+ 
+@@ -2407,7 +2407,7 @@ The above uses a `FILE` descriptor to re
+ of automatically decoding UTF-8/16/32 input.  Other permissible input sources
+ are `std::istream`, `std::string`, `std::wstring`, `char*`, and `wchar_t*`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Patterns                                                     {#reflex-patterns}
+@@ -2421,7 +2421,7 @@ handle (except when specifically indicat
+ ensures that the same pattern syntax can be used with any matcher engine
+ library that RE/flex currently supports.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Pattern syntax                                     {#reflex-pattern-syntax}
+ 
+@@ -2532,7 +2532,7 @@ patterns syntax.  These pattern should o
+ 
+ Note that the characters `.` (dot), `\`, `?`, `*`, `+`, `|`, `(`, `)`, `[`,
+ `]`, `{`, `}`, `^`, and `$` are meta-characters and should be escaped to match.
+-Lexer specifications also include the `"` and `/` as meta-characters and these
++Lexer specifications also include the \c \" and `/` as meta-characters and these
+ should be escaped to match.
+ 
+ Spaces and tabs cannot be matched in patterns in lexer specifications.  To
+@@ -2562,7 +2562,7 @@ problem does not apply to lexer specific
+ converts to regex strings.  Fortunately, most C++ compilers ignore trigraphs
+ unless in standard-conforming modes, such as `-ansi` and `-std=c++98`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Character classes                                   {#reflex-pattern-class}
+ 
+@@ -2666,7 +2666,7 @@ used as operands.  For example `{lower}{
+ as an operand should expand into a POSIX character class containing ASCII
+ characters only.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Character categories                                  {#reflex-pattern-cat}
+ 
+@@ -3155,7 +3155,7 @@ and Coptic letters and differs from the 
+ a specific Unicode block of Greek and Coptic characters only, which also
+ includes unassigned characters.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Anchors and boundaries                             {#reflex-pattern-anchor}
+ 
+@@ -3192,7 +3192,7 @@ underscore.
+   `φ\<`     | matches `φ` that ends as a non-word
+   `φ\>`     | matches `φ` that ends as a word
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Indent/nodent/dedent                                {#reflex-pattern-dents}
+ 
+@@ -3437,7 +3437,7 @@ matching `\j` until the variable is zero
+ See \ref reflex-states for more information about start condition states.  See
+ \ref reflex-pattern-negative for more information on negative patterns.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Negative patterns                                {#reflex-pattern-negative}
+ 
+@@ -3454,7 +3454,7 @@ As another example, say we are searching
+ occurrences of the word in quoted strings.  We can use the pattern
+ `word|(?^".*?")` for this, where `(?^".*?")` matches all quoted strings that we
+ want to ignore (to skip C/C++ quoted strings in source code input files, use
+-the longer pattern `(?^"(\\.|\\\r?\n|[^\\\n"])*")`).
++the longer pattern <code>(?^\"(\\\\.|\\\\\\r?\\n|[^\\\\\\n\"])*\")</code>).
+ 
+ A negative pattern can also be used to consume line continuations without
+ affecting the indentation stops defined by indent marker `\i`.  Negative
+@@ -3492,7 +3492,7 @@ matched in a negative pattern for the pa
+ are never executed, because negative pattern matches are never returned by the
+ matcher engine.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Lookahead                                       {#reflex-pattern-lookahead}
+ 
+@@ -3504,7 +3504,7 @@ Boost.Regex and PCRE2 matchers support l
+ supports lookahead at the end of a pattern, similar to \ref
+ reflex-pattern-trailing.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Lookbehind                                     {#reflex-pattern-lookbehind}
+ 
+@@ -3514,7 +3514,7 @@ A lookbehind pattern `φ(?<=ψ)` matches
+ The RE/flex matcher does not support lookbehind.  Lookbehind patterns should
+ not look too far behind, see \ref reflex-limitations.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Trailing context                                 {#reflex-pattern-trailing}
+ 
+@@ -3528,7 +3528,7 @@ important \ref reflex-limitations to con
+ to the construction of efficient FSMs for regular expressions.  The limitations
+ apply to trailing context and lookaheads that the RE/flex matcher implements.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Unicode mode                                      {#reflex-pattern-unicode}
+ 
+@@ -3557,7 +3557,7 @@ matcher converter flag `reflex::convert_
+ patterns for use with the 8-bit based RE/flex, Boost.Regex, PCRE2, and
+ std::regex regex libraries, see \ref regex-convert for more details.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Free space mode                                 {#reflex-pattern-freespace}
+ 
+@@ -3585,7 +3585,7 @@ locally disable free-space mode in `φ`.
+ conversion when the regex library does not support free-space mode modifiers,
+ see \ref regex-convert for more details.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Multi-line mode                                 {#reflex-pattern-multiline}
+ 
+@@ -3597,7 +3597,7 @@ Prepend `(?m)` to the regex to specify m
+ locally enable multi-line mode in the sub-pattern `φ`.  Use `(?-m:φ)` to
+ locally disable multi-line mode in `φ`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Dotall mode                                        {#reflex-pattern-dotall}
+ 
+@@ -3610,7 +3610,7 @@ dotall mode in `φ`.  The regex pattern 
+ library does not support dotall mode modifiers, see \ref regex-convert for more
+ details.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Case-insensitive mode                             {#reflex-pattern-anycase}
+ 
+@@ -3623,7 +3623,7 @@ locally disable case-insensitive mode in
+ conversion when the regex library does not support case-insensitive mode
+ modifiers, see \ref regex-convert for more details.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Multiple mode modifiers                         {#reflex-pattern-modifiers}
+ 
+@@ -3634,7 +3634,7 @@ modifiers may be applied to the same pat
+ inline modifier `(?imsux-imsux:φ)`, where the mode modifiers before the dash
+ are enabled and the mode modifiers after the dash are disabled.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Group captures                                   {#reflex-pattern-captures}
+ 
+@@ -3660,7 +3660,7 @@ as follows:
+ 
+ See also \ref reflex-posix-perl.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ The Lexer/yyFlexLexer class                                     {#reflex-lexer}
+@@ -3857,7 +3857,7 @@ option `−−class=NAME` to declare the
+ `−−yyclass=NAME` to also enable `−−flex` compatibility with the `yyFlexLexer`
+ class).  For details, see \ref reflex-inherit.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Inheriting Lexer/yyFlexLexer                                  {#reflex-inherit}
+@@ -3917,7 +3917,7 @@ For example:
+ The `int MyLexer::yylex()` method code is generated by <b>`reflex`</b> for this
+ lexer specification.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Combining multiple lexers                                    {#reflex-multiple}
+@@ -3945,7 +3945,7 @@ with `−−namespace=NAME`.  Or you can
+ `−−outfile=NAME` and also `−−header-file=NAME` and ``−−tables-file=NAME` when
+ header files and table files are used.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Switching input sources                                         {#reflex-input}
+@@ -4391,7 +4391,7 @@ To prevent the scanner from initializing
+ input with `LexerInput()`, use option `−−nostdinit`.
+ 
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Multiple input sources                                 {#reflex-multiple-input}
+@@ -4498,7 +4498,7 @@ C-based classic Flex example specificati
+ </div>
+ 
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Start condition states                                         {#reflex-states}
+@@ -4723,7 +4723,7 @@ reflex-code-blocks.  All indented lines 
+ <i>`%%option freespace`</i> allows patterns to be indented.  With this option
+ all action code blocks must be bracketed.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Initial code blocks                                       {#reflex-code-blocks}
+@@ -4803,7 +4803,7 @@ rules are matched.  For example:
+ ~~~
+ </div>
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Interfacing with Bison/Yacc                                     {#reflex-bison}
+@@ -4933,7 +4933,7 @@ The second option requires the generated
+ macro is used or defined by Flex to redeclare the `yylex()` function signature,
+ See \ref YYDECL for more information.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison and thread-safety                             {#reflex-bison-mt-safe}
+@@ -4993,7 +4993,7 @@ Additional parameters may be passed to `
+ <i>`%%option params="extra parameters"`</i> in the lexer specification.
+ See \ref YYDECL.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison-cc                                                 {#reflex-bison-cc}
+@@ -5073,7 +5073,7 @@ are `yy` and `parser` by default, respec
+ the form `NAME1::NAME2::NAME3` or by separating the names by a dot as in
+ `NAME1.NAME2.NAME3`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison-cc & locations                           {#reflex-bison-cc-locations}
+@@ -5152,7 +5152,7 @@ create a scanner and pass it to the `par
+ ~~~
+ </div>
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison-complete                                     {#reflex-bison-complete}
+@@ -5295,7 +5295,7 @@ Note that when the end of input is reach
+ `yy::parser::make_EOF()` upon matching `<<EOF>>`.  This rule is optional.
+ When omitted, the return value is `yy::parser::symbol_type(0)`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison-complete & locations               {#reflex-bison-complete-locations}
+@@ -5457,7 +5457,7 @@ Note that when the end of input is reach
+ `yy::parser::make_EOF()` upon matching `<<EOF>>`.  This rule is optional.
+ When omitted, the return value is `yy::parser::symbol_type(0, location())`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison-bridge                                         {#reflex-bison-bridge}
+@@ -5506,7 +5506,7 @@ should be used to create a new scanner a
+ ~~~
+ </div>
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison-locations                                   {#reflex-bison-locations}
+@@ -5571,7 +5571,7 @@ Note that with the `−−bison-location
+ `YYLTYPE` argument that a Bison parser provides.  You can set `YYLTYPE` as
+ an option <i>`%%option YYLTYPE=type`</i> in a lexer specification.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Bison-bridge & locations                   {#reflex-bison-bridge-locations}
+@@ -5657,7 +5657,7 @@ the scanner in your program:
+ ~~~
+ </div>
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### Reentrant scanners                                      {#reflex-reentrant}
+@@ -5757,7 +5757,7 @@ Because scanners are C++ classes, the `y
+ is the `this` pointer.  Outside the scope of lexer methods a pointer to your
+ `yyFlexLexer lexer` object should be used instead.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ ### YY_DECL alternatives                                              {#YYDECL}
+@@ -5793,7 +5793,7 @@ actions and the parser's semantic action
+ 
+ See also \ref reflex-lexer.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Searching versus scanning                                      {#reflex-search}
+@@ -5846,7 +5846,7 @@ This option only applies to the RE/flex 
+ options `-f` (or `−−full`) and `-F` (or `−−fast`) to further increase
+ performance.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ POSIX versus Perl matching                                 {#reflex-posix-perl}
+@@ -6031,7 +6031,7 @@ trailing context with the first rule as 
+     echo "0" | ./lexer
+     => 0
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Debugging and profiling                                         {#reflex-debug}
+@@ -6054,7 +6054,7 @@ performance given some input text to sca
+ 
+ - Option `-v` (or `−−verbose`) displays a summary of scanner statistics.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Debugging
+ 
+@@ -6066,7 +6066,7 @@ input.  The output displayed is of the f
+ where NNN is the line number of the pattern in the lexer specification and TEXT
+ is the matched text.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Profiling
+ 
+@@ -6153,7 +6153,7 @@ relatively speaking the most expensive p
+ are encountered on the input. We should focus our optimization effort there if
+ we want to improve the overall speed of our JSON parser.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Examples                                                     {#reflex-examples}
+@@ -6161,7 +6161,7 @@ Examples                                
+ 
+ Some lexer specification examples to generate scanners with RE/flex.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 1
+ 
+@@ -6204,7 +6204,7 @@ produces the global "yy" functions and v
+ RE/flex scanners with Bison (Yacc) and with any other C code, assuming
+ everything is compiled together with a C++ compiler.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 2
+ 
+@@ -6257,7 +6257,7 @@ because the wc utility counts words deli
+ (`iswspace`) whereas this program counts words made up from word characters
+ combined with punctuation.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 3
+ 
+@@ -6339,7 +6339,7 @@ We use `matcher().less(size() - 1)` to r
+ ignores it.  We could also have used a lookahead pattern `"</"{name}/">"` where
+ `X/Y` means look ahead for `Y` after `X`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 4
+ 
+@@ -6400,7 +6400,7 @@ characters into account.  To obtain the 
+ use `matcher().border()`.  The `matcher()` object associated with the Lexer
+ offers several other methods that Flex does not support.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 5
+ 
+@@ -6430,7 +6430,7 @@ be ignored silently instead of being ech
+ \ref reflex-search.  Option `%%fast` (`-F` or `−−fast`) generates an efficient
+ FSM in direct code.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Limitations                                               {#reflex-limitations}
+@@ -6490,7 +6490,7 @@ PCRE2 library limitations:
+   available when new input is shifted into the internal buffer.  Only input on
+   the current line from the start of the line to the match is guaranteed.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ The RE/flex regex library                                              {#regex}
+@@ -6525,7 +6525,7 @@ or `-lpcre2-8` if you use PCRE2 for matc
+ If `libreflex` was not installed then linking with `-lreflex` fails.  See
+ \ref link-errors on how to resolve this.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Boost matcher classes                                            {#regex-boost}
+@@ -6628,7 +6628,7 @@ See \ref regex-methods for more details 
+ 
+ See \ref regex-convert for more details on regex converters.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ PCRE2 matcher classes                                            {#regex-pcre2}
+@@ -6718,7 +6718,7 @@ See \ref regex-methods for more details 
+ 
+ See \ref regex-convert for more details on regex converters.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ std::regex matcher classes                                         {#regex-std}
+@@ -6797,7 +6797,7 @@ See \ref regex-methods for more details 
+ 
+ See \ref regex-convert for more details on regex converters.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ The reflex::Matcher class                                      {#regex-matcher}
+@@ -6859,7 +6859,7 @@ See \ref regex-methods for more details 
+ 
+ See \ref regex-convert for more details on regex converters.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ The reflex::Pattern class                                      {#regex-pattern}
+@@ -6994,7 +6994,7 @@ method and functors.  Reversing the alte
+ @note The `reflex::Pattern` regex forms support capturing groups at the
+ top-level only, i.e. among the top-level alternations.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Regex converters                                               {#regex-convert}
+@@ -7119,7 +7119,7 @@ example when the regex syntax is invalid
+     }
+ ~~~
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Methods and iterators                                          {#regex-methods}
+@@ -7149,7 +7149,7 @@ that apply filtering tokenization, and s
+   `scan.begin()`...`scan.end()`   | tokenizer | continuous matches
+   `split.begin()`...`split.end()` | splitter  | text between matches
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### matches                                            {#regex-methods-matches}
+ 
+@@ -7193,7 +7193,7 @@ selector.  For example:
+ 
+ See also \ref regex-methods-props.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### find                                                  {#regex-methods-find}
+ 
+@@ -7252,7 +7252,7 @@ selector.
+ 
+ See also \ref regex-methods-props.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### scan                                                  {#regex-methods-scan}
+ 
+@@ -7311,7 +7311,7 @@ reached, use the `at_end()` method, see 
+ 
+ See also \ref regex-methods-props.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### split                                                {#regex-methods-split}
+ 
+@@ -7369,7 +7369,7 @@ and is also used with any other RE/flex 
+ 
+ See also \ref regex-methods-props.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Properties of a match                                {#regex-methods-props}
+ 
+@@ -7545,7 +7545,7 @@ When executed this code prints:
+     accept: 1 text: brown size: 5 line: 1 column: 8 first: 8 last: 13
+     accept: 1 text: cow size: 3 line: 1 column: 14 first: 14 last: 17
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Public data members                                        {#regex-members}
+ 
+@@ -7565,7 +7565,7 @@ The functors provide `begin()` and `end(
+ hold the necessary state information for the iterators.  A functor invocation
+ essentially invokes the corresponding method listed in \ref regex-methods.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Pattern methods                                    {#regex-methods-pattern}
+ 
+@@ -7582,7 +7582,7 @@ the following methods:
+ The first method returns a reference to the matcher, so multiple method
+ invocations may be chained together.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Input methods                                        {#regex-methods-input}
+ 
+@@ -7672,7 +7672,7 @@ to immediately force reading the sources
+ 
+ For details of the `reflex::Input` class, see \ref regex-input.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ The Input class                                                  {#regex-input}
+@@ -7682,7 +7682,7 @@ A matcher may accept several types of in
+ source at a time.  Input to a matcher is represented by a single
+ `reflex::Input` class instance that the matcher uses internally.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Assigning input                                       {#regex-input-assign}
+ 
+@@ -7700,7 +7700,7 @@ override the file encoding when no UTF B
+ ISO-8859-1 through ISO-8859-15, CP 1250 through 1258, CP 437, CP 850, CP 858,
+ KOI8, MACROMAN, EBCDIC, and other encodings to UTF-8, see \ref regex-input-file.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Input strings                                        {#regex-input-strings}
+ 
+@@ -7735,7 +7735,7 @@ construction overheads.
+ (NUL) character and the first `\0` terminates matching.  To match strings
+ and binary input that contain `\0`, use `std::string` or `std::istringstream`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Input streams                                        {#regex-input-streams}
+ 
+@@ -7743,7 +7743,7 @@ An input object constructed from a `std:
+ passes the input text to the matcher engine.  The stream should contain ASCII
+ and may contain UTF-8.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### FILE encodings                                          {#regex-input-file}
+ 
+@@ -7854,7 +7854,7 @@ your code page to construct an input obj
+ This example translates all control characters and characters above 127 to
+ spaces before matching.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Input properties                                  {#regex-input-properties}
+ 
+@@ -7870,7 +7870,7 @@ To obtain the properties of an input sou
+   `file()`    | the current `FILE*` file descriptor or NULL
+   `istream()` | a `std::istream*` pointer to the current stream object or NULL
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Input streambuf                                    {#regex-input-streambuf}
+ 
+@@ -7917,7 +7917,7 @@ version may not be suitable for interact
+ 
+ See also \ref regex-input-dosstreambuf.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Windows CRLF pairs                              {#regex-input-dosstreambuf}
+ 
+@@ -7995,7 +7995,7 @@ version may not be suitable for interact
+ 
+ See also \ref regex-input-streambuf.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Examples                                                      {#regex-examples}
+@@ -8003,7 +8003,7 @@ Examples                                
+ 
+ This section includes several examples to demonstrate the concepts discussed.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 1
+ 
+@@ -8059,7 +8059,7 @@ When executed this code prints:
+     Circus Flying Monty Python's
+ 
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 2
+ 
+@@ -8126,7 +8126,7 @@ be used, since both support group captur
+ 
+ See also Example 8 below for a more powerful URL pattern matcher.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 3
+ 
+@@ -8154,7 +8154,7 @@ When executed this code prints:
+ 
+     Monty, Flying, Circus, 
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 4
+ 
+@@ -8176,7 +8176,7 @@ stream:
+     std::cout << lines << " " << words << " " << chars << std::endl;
+ ~~~
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 5
+ 
+@@ -8213,7 +8213,7 @@ When executed this code prints:
+     Token = 2: matched 'hotdogs' with '(\\w*dog\\w*)'
+     Token = 4: matched '!' with '(.)'
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 6
+ 
+@@ -8260,7 +8260,7 @@ When executed this code prints:
+     3: 601112345678901234
+     4: 38812345678901
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 7
+ 
+@@ -8298,7 +8298,7 @@ matches, but that feature appears to be 
+         << std::endl;
+ ~~~
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 8
+ 
+@@ -8398,7 +8398,7 @@ this code prints:
+     query key: name, value: reflex
+     query key: license, value: BSD-3
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ ### Example 9
+ 
+@@ -8493,13 +8493,13 @@ This sets the file encoding to ISO-8859-
+ in the file.  Files with a UTF BOM are always decoded as UTF, which cannot be
+ overruled.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Tips, tricks, and gotchas                                             {#tricks}
+ =========================
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Errors when declaring extern yyin, yytext, yylineno              {#extern-yyin}
+@@ -8567,7 +8567,7 @@ restricted to `FILE*` types and accepts 
+ 
+ See \ref reflex-input.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Compilation errors when using yy functions                      {#yy-functions}
+@@ -8612,7 +8612,7 @@ Note that the `yyinput()` macro expands 
+ to generate global `yy` variables and functions stored in the global
+ `YY_SCANNER` object.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Invalid UTF encodings and the dot pattern                        {#invalid-utf}
+@@ -8669,7 +8669,7 @@ character class by intersecting the clas
+ in classes that are within range U+0000 to U+10FFFF and excludes surrogate
+ halves.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Error reporting and recovery                                          {#errors}
+@@ -8965,7 +8965,7 @@ enabled with:
+ For more details on Bison error messaging, resolution, and LAC, please see the
+ Bison documentation.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ On using setlocale                                                 {#setlocale}
+@@ -9017,7 +9017,7 @@ not on all systems (I'm looking at you, 
+     ifs.close();
+ ~~~
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Scanning ISO-8859-1 (latin-1) files with a Unicode scanner        {#iso-8859-1}
+@@ -9043,7 +9043,7 @@ When a BOM is detected the scanner switc
+ 
+ See \ref regex-input-file to set file encodings.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Files with CRLF pairs                                                   {#crlf}
+@@ -9079,7 +9079,7 @@ Reading a file in the default "text mode
+ latest RE/flex releases automatically switch `FILE*` input to binary mode on
+ Windows systems when the file is encoded in UTF-16 or UTF-32, but not UTF-8.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Handling old Macintosh files containing CR newlines                       {#cr}
+@@ -9120,7 +9120,7 @@ normalizing to UTF-8:
+ Then use the `input` object to read `stdin` or any other `FILE*`.  See also
+ \ref regex-input-file.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Lazy repetitions                                                        {#lazy}
+@@ -9132,7 +9132,7 @@ useless when the regex pattern after the
+ For example, `.*?a?` only matches one `a` or nothing at all, because `a?`
+ permits an empty match.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Lazy optional patterns and trigraphs                               {#trigraphs}
+@@ -9154,7 +9154,7 @@ which the C/C++ compiler translates to `
+ 
+ Otherwise, lazy optional pattern constructs will appear broken.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Repeately switching to the same input                              {#switching}
+@@ -9187,7 +9187,7 @@ If you need to read a file or stream aga
+    which means that you cannot reliably move to an arbitrary location in the
+    file to start reading when the file is encoded in UTF-8, UTF-16, or UTF-32.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Where is FlexLexer.h?                                              {#flexlexer}
+@@ -9206,7 +9206,7 @@ The `FlexLexer` class defined in <i>`ref
+ of the generated `yyFlexLexer` class.  A name for the generated lexer class can
+ be specified with option `−−lexer=NAME`.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Interactive input with GNU readline                                 {#readline}
+@@ -9307,7 +9307,7 @@ example:
+ ~~~
+ </div>
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Registering a handler to support non-blocking reads                 {#nonblock}
+@@ -9397,7 +9397,7 @@ checking if an error conditions exist on
+ `ferror()`.  Errors are cleared with `clearerr()`.  Note that a non-blocking
+ read that returns zero always produces nonzero `ferror()` values.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Undefined symbols and link errors                                {#link-errors}
+@@ -9444,7 +9444,7 @@ RE/flex applications:
+   <i>`lex.yy.h`</i> with the lexer class to include in the source code of your
+   lexer application.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Minimized library and cross compiling                                {#linking}
+@@ -9471,7 +9471,7 @@ and ARM NEON/AArch64 are used to  speed 
+ in the library.  However, these optimizations are applicable to searching with
+ the `find()` method and are not applicable to scanners.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ How to minimize runtime memory usage                                {#memusage}
+@@ -9501,7 +9501,7 @@ input buffer:
+ 
+ @warning The value of `REFLEX_BUFSZ` should not be less than 8192.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ MSVC++ compiler bug                                                     {#msvc}
+@@ -9525,7 +9525,7 @@ Instead, we should write the following:
+       std::cout << match.text() << std::endl;
+ ~~~
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Bugs                                                                    {#bugs}
+@@ -9540,7 +9540,7 @@ old with new versions may cause problems
+ RE/flex header files are imported into your project but an old RE/flex library
+ version is still linked with your code, the library may likely misbehave.
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ Installing RE/flex                                                  {#download}
+@@ -9549,7 +9549,7 @@ Installing RE/flex                      
+ Download RE/flex from [SourceForge](https://sourceforge.net/projects/re-flex)
+ or visit the RE/flex GitHub [repository](https://github.com/Genivia/RE-flex).
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ 
+ License and copyright                                                {#license}
+@@ -9588,6 +9588,6 @@ includes the ability to reuse all or par
+ The Free Software Foundation maintains a
+ [BSD-3 License Wiki](http://directory.fsf.org/wiki/License:BSD_3Clause).
+ 
+-🔝 [Back to table of contents](#)
++🔝 [Back to table of contents](#mainpage)
+ 
+ Copyright (c) 2016-2020, Robert van Engelen, Genivia Inc. All rights reserved.
diff --git a/RE-flex/patches/patch-include_reflex_convert.h b/RE-flex/patches/patch-include_reflex_convert.h
new file mode 100644
index 0000000000..54f8f31f7a
--- /dev/null
+++ b/RE-flex/patches/patch-include_reflex_convert.h
@@ -0,0 +1,26 @@
+$NetBSD$
+
+fix doxygen errors
+
+--- include/reflex/convert.h.orig	2024-03-11 17:59:51.000000000 +0000
++++ include/reflex/convert.h
+@@ -122,8 +122,8 @@ namespace convert_flag {
+ /// - `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
+@@ -144,7 +144,7 @@ namespace convert_flag {
+ /// - '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}
diff --git a/RE-flex/patches/patch-include_reflex_pattern.h b/RE-flex/patches/patch-include_reflex_pattern.h
new file mode 100644
index 0000000000..e29d99b6c8
--- /dev/null
+++ b/RE-flex/patches/patch-include_reflex_pattern.h
@@ -0,0 +1,15 @@
+$NetBSD$
+
+fix doxygen errors
+
+--- include/reflex/pattern.h.orig	2024-03-17 18:07:40.405467527 +0000
++++ include/reflex/pattern.h
+@@ -501,7 +501,7 @@ class Pattern {
+     static const value_type NEGATE  = 1ULL << 51; ///< marks negative patterns
+     static const value_type TICKED  = 1ULL << 52; ///< marks lookahead ending ) in (?=X)
+     static const value_type RES4    = 1ULL << 53; ///< reserved
+-    static const value_type ANCHOR  = 1ULL << 54; ///< marks begin of word (\b,\<,\>) and buffer (\A,^) anchors
++    static const value_type ANCHOR  = 1ULL << 54; ///< marks begin of word (`\b`,`\<`,`\>`) and buffer (`\A`,`^`) anchors
+     static const value_type ACCEPT  = 1ULL << 55; ///< accept, not a regex position
+     Position()                   : k(NPOS) { }
+     Position(value_type k)       : k(k)    { }
diff --git a/RE-flex/patches/patch-src_reflex.cpp b/RE-flex/patches/patch-src_reflex.cpp
index f3773f55f0..cbdf2b09ef 100644
--- a/RE-flex/patches/patch-src_reflex.cpp
+++ b/RE-flex/patches/patch-src_reflex.cpp
@@ -1,9 +1,30 @@
 $NetBSD$
 
-cast chars to unsigned for ctype functions
+- cast chars to unsigned for ctype functions
+- fix doxygen errors
 
---- src/reflex.cpp.orig	2024-03-16 22:12:32.810243725 +0000
+--- src/reflex.cpp.orig	2024-03-11 17:59:51.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}
 @@ -274,10 +274,10 @@ static const Reflex::Library library_tab
  ////////////////////////////////////////////////////////////////////////////////
  
@@ -231,3 +252,12 @@ cast chars to unsigned for ctype functions
    {
      do
      {
+@@ -1915,7 +1915,7 @@ void Reflex::write_prelude()
+     *out << "\n// --perf-report option requires a timer:\n#include <reflex/timer.h>\n";
+ }
+ 
+-/// Write Flex-compatible #defines to lex.yy.cpp
++/// Write Flex-compatible \#defines to lex.yy.cpp
+ void Reflex::write_defines()
+ {
+   if (!out->good())



Home | Main Index | Thread Index | Old Index