diff --git a/README.md b/README.md index 834466fa6..a10d9ae55 100644 --- a/README.md +++ b/README.md @@ -6,16 +6,17 @@ The regex-centric, fast lexical analyzer generator for C++ with full Unicode support. Flex reimagined: fast, flexible, adds Boost 💪 -[RE/flex][reflex-url] is faster than Flex while providing a wealth of new -features. RE/flex is also much faster than regex libraries such as +[RE/flex][reflex-url] is as fast or faster than Flex while providing a wealth +of new features. RE/flex is also much faster than regex libraries such as Boost.Regex, C++11 std::regex, PCRE2 and RE2. For example, tokenizing a 2 KB -representative C source code file into 244 tokens takes only 10 microseconds: +representative C source code file into 244 tokens takes only 8 microseconds: - + + - + @@ -28,11 +29,17 @@ representative C source code file into 244 tokens takes only 10 microseconds:
Command / FunctionSoftwareTime (μs)
reflex --fastRE/flex 1.3.610
reflex --fast --noindentRE/flex 1.5.68
reflex --fastRE/flex 1.5.69
flex -+ --fullFlex 2.5.3517
reflex --fullRE/flex 1.3.619
reflex --fullRE/flex 1.5.618
boost::spirit::lex::lexertl::actor_lexer::iterator_typeBoost.Spirit.Lex 1.66.040
hs_compile_multi(), hs_scan()Hyperscan 5.1.0209
reflex -m=boost-perlBoost.Regex 1.66.0230
std::cregex_iterator()C++11 std::regex5979
-Note: *Best times of 10 tests with average time in microseconds over 100 runs -(using clang 9.0.0 with -O2, 2.9 GHz Intel Core i7, 16 GB 2133 MHz LPDDR3). -Hyperscan disqualifies as a potential scanner due to its "All matches reported" +Note: *Best times of 30 tests with average time in microseconds over 100 runs +using Mac OS X 10.12.6 clang 9.0.0 -O2, 2.9 GHz Intel Core i7, 16 GB 2133 MHz +LPDDR3. Hyperscan disqualifies as a scanner due to its "All matches reported" semantics resulting in 1915 matches for this test, and due to its event handler requirements.* [Download the tests](https://www.genivia.com/files/perfcomp.zip) +*Timings on other platforms may differ, though in the worst cases tested, +reflex ran equally fast than the best times of Flex.* + +The RE/flex matcher tracks line numbers, column numbers, and indentations, +whereas Flex does not (option noyylineno) and neither do the other regex +matchers compared. Tracking this information incurs some overhead. Features @@ -100,7 +107,7 @@ Step** in MSVC++ as follows: `$(VC_IncludePath);$(WindowsSDK_IncludePath);C:\Users\YourUserName\Documents\reflex\include` (this assumes the `reflex` source package is in your **Documents** folder). -3. enter `"C:\Users\YourUserName\Documents\reflex\bin\reflex.exe" --header-file +3. enter `"C:\Users\YourUserName\Documents\reflex\bin\win32\reflex.exe" --header-file "C:\Users\YourUserName\Documents\mylexer.l"` in the **Command Line** property under **Custom Build Step** (this assumes `mylexer.l` is in your **Documents** folder); @@ -330,7 +337,7 @@ Use C++11 range-based loops with RE/flex iterators: ```{.cpp} #include // reflex::StdMatcher, reflex::Input, std::regex -// use a StdMatcher with std::regex to to search for words in a sentence +// use a StdMatcher with std::regex to search for words in a sentence reflex::StdMatcher matcher("\\w+", "How now brown cow."); for (auto& match : matcher.find) std::cout << "Found " << match.text() << std::endl; @@ -473,7 +480,8 @@ Changelog - Nov 12, 2019: 1.5.2 fixed an internal buffer allocation issue that may cause a crash when input lines are longer than 16KB (regression bug that crept into in 1.5.0). - Nov 21, 2019: 1.5.3 added `lineno_end()` and `columno_end()` methods, updated `columns()` with clarifications in the updated documentation; expanded the documentation with additional error reporting and handling techniques with RE/flex and Bison bridge and complete configurations; FSM code generation improvements. - Nov 22, 2019: 1.5.4 added `flexexample11xx` example with Flex specification and Bison complete parser; minor improvements. -- Dec 23, 2019: 1.5.5 expanded the `skip(c)` methods with a `wchar_t` wide character parameter and a UTF-8 string parameter to to skip input; added new option `--token-eof`. +- Dec 23, 2019: 1.5.5 expanded the `skip(c)` methods with a `wchar_t` wide character parameter and a UTF-8 string parameter to skip input; added new option `--token-eof`. +- Dec 28, 2019: 1.5.6 added new option `--noindent` to speed up pattern matching and lexical analysis by disabling indentation tracking in the input (also disables anchors `\i`, `\j`, and `\k`); speed improvements. [logo-url]: https://www.genivia.com/images/reflex-logo.png [reflex-url]: https://www.genivia.com/reflex.html diff --git a/bin/win32/reflex.exe b/bin/win32/reflex.exe index 1e0586f94..c7e7df860 100755 Binary files a/bin/win32/reflex.exe and b/bin/win32/reflex.exe differ diff --git a/bin/win64/reflex.exe b/bin/win64/reflex.exe index 9a3fa502d..1a52ac439 100755 Binary files a/bin/win64/reflex.exe and b/bin/win64/reflex.exe differ diff --git a/build.sh b/build.sh index 1ea703604..05edd5057 100755 --- a/build.sh +++ b/build.sh @@ -1,7 +1,7 @@ #!/bin/sh echo echo "Building reflex" -cd lib; make -f Make; cd - -cd src; make -f Make; cd - +cd lib; make -f Make || exit 1; cd - +cd src; make -f Make || exit 1; cd - echo echo "OK" diff --git a/doc/html/abslexer_8h.html b/doc/html/abslexer_8h.html index 3de2e96d8..2012f97fd 100644 --- a/doc/html/abslexer_8h.html +++ b/doc/html/abslexer_8h.html @@ -21,7 +21,7 @@
abslexer.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -109,7 +109,7 @@ +Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/absmatcher_8h.html b/doc/html/absmatcher_8h.html index 074b39210..0059b61fd 100644 --- a/doc/html/absmatcher_8h.html +++ b/doc/html/absmatcher_8h.html @@ -21,7 +21,7 @@
absmatcher.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -269,7 +269,7 @@

Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/annotated.html b/doc/html/annotated.html index a4dd698ba..5dca72fbd 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -21,7 +21,7 @@
Class List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -109,7 +109,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/bits_8h.html b/doc/html/bits_8h.html index 530b66329..af3c9aece 100644 --- a/doc/html/bits_8h.html +++ b/doc/html/bits_8h.html @@ -21,7 +21,7 @@
bits.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -101,7 +101,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/boostmatcher_8h.html b/doc/html/boostmatcher_8h.html index 82a3c44c6..ec7f98388 100644 --- a/doc/html/boostmatcher_8h.html +++ b/doc/html/boostmatcher_8h.html @@ -21,7 +21,7 @@
boostmatcher.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -102,7 +102,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/class_reflex-members.html b/doc/html/class_reflex-members.html index f5747d2ab..a9e0bb095 100644 --- a/doc/html/class_reflex-members.html +++ b/doc/html/class_reflex-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -142,7 +142,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/class_reflex.html b/doc/html/class_reflex.html index e665f96e4..7f6b16f33 100644 --- a/doc/html/class_reflex.html +++ b/doc/html/class_reflex.html @@ -21,7 +21,7 @@
Reflex Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -2472,7 +2472,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classes.html b/doc/html/classes.html index ea32e586c..59e4bb8bc 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -21,7 +21,7 @@
Class Index

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -92,7 +92,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_lexer-members.html b/doc/html/classreflex_1_1_abstract_lexer-members.html index dc2b35fdb..40516a4bf 100644 --- a/doc/html/classreflex_1_1_abstract_lexer-members.html +++ b/doc/html/classreflex_1_1_abstract_lexer-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -113,7 +113,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_lexer.html b/doc/html/classreflex_1_1_abstract_lexer.html index 6b5c2456c..fd11eccf2 100644 --- a/doc/html/classreflex_1_1_abstract_lexer.html +++ b/doc/html/classreflex_1_1_abstract_lexer.html @@ -21,7 +21,7 @@
reflex::AbstractLexer< M > Class Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1842,7 +1842,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher-members.html b/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher-members.html index 0dadb37b0..44f578dcf 100644 --- a/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher-members.html +++ b/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -64,7 +64,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher.html b/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher.html index 6566027a3..40d9cf0a1 100644 --- a/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher.html +++ b/doc/html/classreflex_1_1_abstract_lexer_1_1_matcher.html @@ -21,7 +21,7 @@
reflex::AbstractLexer< M >::Matcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -295,7 +295,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_matcher-members.html b/doc/html/classreflex_1_1_abstract_matcher-members.html index 9d5c0c0ca..b1d9c1e4c 100644 --- a/doc/html/classreflex_1_1_abstract_matcher-members.html +++ b/doc/html/classreflex_1_1_abstract_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -170,7 +170,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_matcher.html b/doc/html/classreflex_1_1_abstract_matcher.html index 539f47982..4d966f097 100644 --- a/doc/html/classreflex_1_1_abstract_matcher.html +++ b/doc/html/classreflex_1_1_abstract_matcher.html @@ -21,7 +21,7 @@
reflex::AbstractMatcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -3416,7 +3416,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator-members.html b/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator-members.html index 9be4ecbaf..403e85635 100644 --- a/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator-members.html +++ b/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -74,7 +74,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator.html b/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator.html index 3663d64b6..b309ebd06 100644 --- a/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator.html +++ b/doc/html/classreflex_1_1_abstract_matcher_1_1_iterator.html @@ -21,7 +21,7 @@
reflex::AbstractMatcher::Iterator< T > Class Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -539,7 +539,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_matcher_1_1_operation-members.html b/doc/html/classreflex_1_1_abstract_matcher_1_1_operation-members.html index ffe1decad..011843e8f 100644 --- a/doc/html/classreflex_1_1_abstract_matcher_1_1_operation-members.html +++ b/doc/html/classreflex_1_1_abstract_matcher_1_1_operation-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -69,7 +69,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_abstract_matcher_1_1_operation.html b/doc/html/classreflex_1_1_abstract_matcher_1_1_operation.html index 90e06000a..94d39af86 100644 --- a/doc/html/classreflex_1_1_abstract_matcher_1_1_operation.html +++ b/doc/html/classreflex_1_1_abstract_matcher_1_1_operation.html @@ -21,7 +21,7 @@
reflex::AbstractMatcher::Operation Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -379,7 +379,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_bits-members.html b/doc/html/classreflex_1_1_bits-members.html index d24ab6af6..39bee05fe 100644 --- a/doc/html/classreflex_1_1_bits-members.html +++ b/doc/html/classreflex_1_1_bits-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -105,7 +105,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_bits.html b/doc/html/classreflex_1_1_bits.html index f4cda6e04..b2de3ee59 100644 --- a/doc/html/classreflex_1_1_bits.html +++ b/doc/html/classreflex_1_1_bits.html @@ -21,7 +21,7 @@
reflex::Bits Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1659,7 +1659,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_boost_matcher-members.html b/doc/html/classreflex_1_1_boost_matcher-members.html index 6a74004d1..99e46c1e6 100644 --- a/doc/html/classreflex_1_1_boost_matcher-members.html +++ b/doc/html/classreflex_1_1_boost_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -198,7 +198,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_boost_matcher.html b/doc/html/classreflex_1_1_boost_matcher.html index 9cf574b93..c6c35745e 100644 --- a/doc/html/classreflex_1_1_boost_matcher.html +++ b/doc/html/classreflex_1_1_boost_matcher.html @@ -21,7 +21,7 @@
reflex::BoostMatcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1183,7 +1183,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_boost_perl_matcher-members.html b/doc/html/classreflex_1_1_boost_perl_matcher-members.html index 8f738690e..8ceb89da7 100644 --- a/doc/html/classreflex_1_1_boost_perl_matcher-members.html +++ b/doc/html/classreflex_1_1_boost_perl_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -201,7 +201,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_boost_perl_matcher.html b/doc/html/classreflex_1_1_boost_perl_matcher.html index eb5cd0ead..dd95f3976 100644 --- a/doc/html/classreflex_1_1_boost_perl_matcher.html +++ b/doc/html/classreflex_1_1_boost_perl_matcher.html @@ -21,7 +21,7 @@
reflex::BoostPerlMatcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -692,7 +692,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_boost_posix_matcher-members.html b/doc/html/classreflex_1_1_boost_posix_matcher-members.html index a4041ee62..3afc8913f 100644 --- a/doc/html/classreflex_1_1_boost_posix_matcher-members.html +++ b/doc/html/classreflex_1_1_boost_posix_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -201,7 +201,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_boost_posix_matcher.html b/doc/html/classreflex_1_1_boost_posix_matcher.html index bc95fe46c..00e3ff51d 100644 --- a/doc/html/classreflex_1_1_boost_posix_matcher.html +++ b/doc/html/classreflex_1_1_boost_posix_matcher.html @@ -21,7 +21,7 @@
reflex::BoostPosixMatcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -739,7 +739,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_buffered_input-members.html b/doc/html/classreflex_1_1_buffered_input-members.html index 83b2ff7b8..f46e90c6a 100644 --- a/doc/html/classreflex_1_1_buffered_input-members.html +++ b/doc/html/classreflex_1_1_buffered_input-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -120,7 +120,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_buffered_input.html b/doc/html/classreflex_1_1_buffered_input.html index 4914bd665..8df9588ff 100644 --- a/doc/html/classreflex_1_1_buffered_input.html +++ b/doc/html/classreflex_1_1_buffered_input.html @@ -21,7 +21,7 @@
reflex::BufferedInput Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -712,7 +712,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf-members.html b/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf-members.html index d897d2d71..4e90acc4e 100644 --- a/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf-members.html +++ b/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -70,7 +70,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf.html b/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf.html index 09e45e7dd..c6fbee225 100644 --- a/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf.html +++ b/doc/html/classreflex_1_1_buffered_input_1_1dos__streambuf.html @@ -21,7 +21,7 @@
reflex::BufferedInput::dos_streambuf Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -357,7 +357,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_buffered_input_1_1streambuf-members.html b/doc/html/classreflex_1_1_buffered_input_1_1streambuf-members.html index 84c7049c4..d50c8f805 100644 --- a/doc/html/classreflex_1_1_buffered_input_1_1streambuf-members.html +++ b/doc/html/classreflex_1_1_buffered_input_1_1streambuf-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -67,7 +67,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_buffered_input_1_1streambuf.html b/doc/html/classreflex_1_1_buffered_input_1_1streambuf.html index e839eb76d..faaaec438 100644 --- a/doc/html/classreflex_1_1_buffered_input_1_1streambuf.html +++ b/doc/html/classreflex_1_1_buffered_input_1_1streambuf.html @@ -21,7 +21,7 @@
reflex::BufferedInput::streambuf Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -288,7 +288,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_flex_lexer-members.html b/doc/html/classreflex_1_1_flex_lexer-members.html index 1a7e36b0f..ff3f66c5b 100644 --- a/doc/html/classreflex_1_1_flex_lexer-members.html +++ b/doc/html/classreflex_1_1_flex_lexer-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -126,7 +126,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_flex_lexer.html b/doc/html/classreflex_1_1_flex_lexer.html index c0eaf14b1..43660e790 100644 --- a/doc/html/classreflex_1_1_flex_lexer.html +++ b/doc/html/classreflex_1_1_flex_lexer.html @@ -21,7 +21,7 @@
reflex::FlexLexer< M > Class Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -767,7 +767,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_flex_lexer_1_1_matcher-members.html b/doc/html/classreflex_1_1_flex_lexer_1_1_matcher-members.html index 17af96cff..2b59de914 100644 --- a/doc/html/classreflex_1_1_flex_lexer_1_1_matcher-members.html +++ b/doc/html/classreflex_1_1_flex_lexer_1_1_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -67,7 +67,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_flex_lexer_1_1_matcher.html b/doc/html/classreflex_1_1_flex_lexer_1_1_matcher.html index cba7748d1..8cc69997d 100644 --- a/doc/html/classreflex_1_1_flex_lexer_1_1_matcher.html +++ b/doc/html/classreflex_1_1_flex_lexer_1_1_matcher.html @@ -21,7 +21,7 @@
reflex::FlexLexer< M >::Matcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -319,7 +319,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_input-members.html b/doc/html/classreflex_1_1_input-members.html index 0dc832531..da9392423 100644 --- a/doc/html/classreflex_1_1_input-members.html +++ b/doc/html/classreflex_1_1_input-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -108,7 +108,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_input.html b/doc/html/classreflex_1_1_input.html index e183f5a88..5bea8fdc9 100644 --- a/doc/html/classreflex_1_1_input.html +++ b/doc/html/classreflex_1_1_input.html @@ -21,7 +21,7 @@
reflex::Input Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1590,7 +1590,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_input_1_1dos__streambuf-members.html b/doc/html/classreflex_1_1_input_1_1dos__streambuf-members.html index 7f0e50e67..a032b6c82 100644 --- a/doc/html/classreflex_1_1_input_1_1dos__streambuf-members.html +++ b/doc/html/classreflex_1_1_input_1_1dos__streambuf-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -69,7 +69,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_input_1_1dos__streambuf.html b/doc/html/classreflex_1_1_input_1_1dos__streambuf.html index f3679e6df..22c19944c 100644 --- a/doc/html/classreflex_1_1_input_1_1dos__streambuf.html +++ b/doc/html/classreflex_1_1_input_1_1dos__streambuf.html @@ -21,7 +21,7 @@
reflex::Input::dos_streambuf Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -330,7 +330,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_input_1_1streambuf-members.html b/doc/html/classreflex_1_1_input_1_1streambuf-members.html index 02f91dc57..a5f0aa9ac 100644 --- a/doc/html/classreflex_1_1_input_1_1streambuf-members.html +++ b/doc/html/classreflex_1_1_input_1_1streambuf-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -67,7 +67,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_input_1_1streambuf.html b/doc/html/classreflex_1_1_input_1_1streambuf.html index 28fd61db8..76b375109 100644 --- a/doc/html/classreflex_1_1_input_1_1streambuf.html +++ b/doc/html/classreflex_1_1_input_1_1streambuf.html @@ -21,7 +21,7 @@
reflex::Input::streambuf Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -283,7 +283,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_matcher-members.html b/doc/html/classreflex_1_1_matcher-members.html index 4ea29eeae..15e25a77a 100644 --- a/doc/html/classreflex_1_1_matcher-members.html +++ b/doc/html/classreflex_1_1_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -73,7 +73,7 @@ bol()reflex::AbstractMatcherinline bol_reflex::AbstractMatcherprotected border()reflex::AbstractMatcherinline - boyer_moore_init(const char *pat, size_t len)reflex::Matcherinlineprotected + boyer_moore_init(const char *pat, size_t len)reflex::Matcherprotected buf_reflex::AbstractMatcherprotected buffer(size_t blk=0)reflex::AbstractMatcherinline buffer(char *base, size_t size)reflex::AbstractMatcherinline @@ -155,7 +155,7 @@ lno_reflex::AbstractMatcherprotected lpb_reflex::AbstractMatcherprotected mat_reflex::AbstractMatcherprotected - match(Method method)reflex::Matcherprotectedvirtual + match(Method method)reflex::Matcherinlineprotectedvirtual Matcher()reflex::Matcherinline Matcher(const P *pattern, const Input &input=Input(), const char *opt=NULL)reflex::Matcherinline Matcher(const P &pattern, const Input &input=Input(), const char *opt=NULL)reflex::Matcherinline @@ -203,8 +203,6 @@ peek_more()reflex::AbstractMatcherinlineprotected pop_stops()reflex::Matcherinline pos_reflex::AbstractMatcherprotected - predict_match(const Pattern::Pred pmh[], const char *s, size_t n)reflex::Matcherinlineprotectedstatic - predict_match(const Pattern::Pred pma[], const char *s)reflex::Matcherinlineprotectedstatic push_stops()reflex::Matcherinline reset(const char *opt=NULL)reflex::Matcherinlinevirtual reset_text()reflex::AbstractMatcherinlineprotected @@ -222,8 +220,8 @@ span()reflex::AbstractMatcherinline splitreflex::AbstractMatcher stk_reflex::Matcherprotected - stops()reflex::Matcherinline - Stops typedefreflex::Matcherprotected + Stops typedefreflex::Matcherprotected + stops()reflex::Matcherinline str() const reflex::AbstractMatcherinline tab_reflex::Matcherprotected tabs(char n)reflex::AbstractMatcherinline @@ -244,7 +242,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_matcher.html b/doc/html/classreflex_1_1_matcher.html index 353640ad7..937c83207 100644 --- a/doc/html/classreflex_1_1_matcher.html +++ b/doc/html/classreflex_1_1_matcher.html @@ -21,7 +21,7 @@
reflex::Matcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -56,7 +56,6 @@ Static Public Member Functions | Protected Types | Protected Member Functions | -Static Protected Member Functions | Protected Attributes | List of all members
@@ -557,15 +556,6 @@  Update the newline count, column count, and character count when shifting the buffer. More...
  - - - - - - - -

-Static Protected Member Functions

static bool predict_match (const Pattern::Pred pmh[], const char *s, size_t n)
 Returns true when match is predicted, based on s[0..3..e-1] (e >= s + 4). More...
 
static size_t predict_match (const Pattern::Pred pma[], const char *s)
 Returns zero when match is predicted or nonzero shift value, based on s[0..3]. More...
 
@@ -945,7 +935,7 @@

Member Function Documentation

Protected Attributes

size_t ded_
-inlineprotected +protected
@@ -1900,7 +1890,7 @@

Member Function Documentation

-protectedvirtual +inlineprotectedvirtual
@@ -2027,84 +2017,6 @@

Member Function Documentation

Pop indent stops.

-
- - -
-
- - - - - -
- - - - - - - - - - - - - - - - - - - - - - - - -
static bool reflex::Matcher::predict_match (const Pattern::Pred pmh[],
const char * s,
size_t n 
)
-
-inlinestaticprotected
-
- -

Returns true when match is predicted, based on s[0..3..e-1] (e >= s + 4).

- -
-
- -
-
- - - - - -
- - - - - - - - - - - - - - - - - - -
static size_t reflex::Matcher::predict_match (const Pattern::Pred pma[],
const char * s 
)
-
-inlinestaticprotected
-
- -

Returns zero when match is predicted or nonzero shift value, based on s[0..3].

-
@@ -2413,7 +2325,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_o_ranges-members.html b/doc/html/classreflex_1_1_o_ranges-members.html index 492f48701..8a023fa4d 100644 --- a/doc/html/classreflex_1_1_o_ranges-members.html +++ b/doc/html/classreflex_1_1_o_ranges-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -103,7 +103,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_o_ranges.html b/doc/html/classreflex_1_1_o_ranges.html index 11b0d8218..4941ea6be 100644 --- a/doc/html/classreflex_1_1_o_ranges.html +++ b/doc/html/classreflex_1_1_o_ranges.html @@ -21,7 +21,7 @@
reflex::ORanges< T > Class Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1051,7 +1051,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_pattern-members.html b/doc/html/classreflex_1_1_pattern-members.html index 32d5b9ce6..5f78c4d8c 100644 --- a/doc/html/classreflex_1_1_pattern-members.html +++ b/doc/html/classreflex_1_1_pattern-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -186,6 +186,8 @@ posix(size_t index, Chars &chars) const reflex::Patternprivate pre_reflex::Patternprivate Pred typedefreflex::Pattern + predict_match(const Pattern::Pred pmh[], const char *s, size_t n)reflex::Patterninlinestatic + predict_match(const Pattern::Pred pma[], const char *s)reflex::Patterninlinestatic predict_match_dfa(State &start)reflex::Patternprivate reachable(Index choice) const reflex::Patterninline reversecase(Char c)reflex::Patterninlineprivatestatic @@ -208,7 +210,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_pattern.html b/doc/html/classreflex_1_1_pattern.html index 08bec512c..b4736ec68 100644 --- a/doc/html/classreflex_1_1_pattern.html +++ b/doc/html/classreflex_1_1_pattern.html @@ -21,7 +21,7 @@
reflex::Pattern Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -54,6 +54,7 @@ Classes | Public Types | Public Member Functions | +Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | @@ -220,6 +221,15 @@  Get elapsed code words assembly time. More...
  + + + + + + + +

+Static Public Member Functions

static bool predict_match (const Pattern::Pred pmh[], const char *s, size_t n)
 Returns true when match is predicted, based on s[0..3..e-1] (e >= s + 4). More...
 
static size_t predict_match (const Pattern::Pred pma[], const char *s)
 Returns zero when match is predicted or nonzero shift value, based on s[0..3]. More...
 
@@ -3588,6 +3598,84 @@

Member Function Documentation

Protected Member Functions

virtual void error (regex_error_type code, size_t pos=0) const
+
+ + +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static bool reflex::Pattern::predict_match (const Pattern::Pred pmh[],
const char * s,
size_t n 
)
+
+inlinestatic
+
+ +

Returns true when match is predicted, based on s[0..3..e-1] (e >= s + 4).

+ +
+
+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static size_t reflex::Pattern::predict_match (const Pattern::Pred pma[],
const char * s 
)
+
+inlinestatic
+
+ +

Returns zero when match is predicted or nonzero shift value, based on s[0..3].

+
@@ -4374,7 +4462,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_pattern_matcher-members.html b/doc/html/classreflex_1_1_pattern_matcher-members.html index 0bb7194dc..9ad35b4de 100644 --- a/doc/html/classreflex_1_1_pattern_matcher-members.html +++ b/doc/html/classreflex_1_1_pattern_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -187,7 +187,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_pattern_matcher.html b/doc/html/classreflex_1_1_pattern_matcher.html index 93faa5fe4..fb636faca 100644 --- a/doc/html/classreflex_1_1_pattern_matcher.html +++ b/doc/html/classreflex_1_1_pattern_matcher.html @@ -21,7 +21,7 @@
reflex::PatternMatcher< P > Class Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1145,7 +1145,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_posix_1_1_tables-members.html b/doc/html/classreflex_1_1_posix_1_1_tables-members.html index 753dbc89a..e9fa61233 100644 --- a/doc/html/classreflex_1_1_posix_1_1_tables-members.html +++ b/doc/html/classreflex_1_1_posix_1_1_tables-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -63,7 +63,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_posix_1_1_tables.html b/doc/html/classreflex_1_1_posix_1_1_tables.html index bb0be8f25..d791d656d 100644 --- a/doc/html/classreflex_1_1_posix_1_1_tables.html +++ b/doc/html/classreflex_1_1_posix_1_1_tables.html @@ -21,7 +21,7 @@
reflex::Posix::Tables Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -144,7 +144,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_ranges-members.html b/doc/html/classreflex_1_1_ranges-members.html index af5bc4c73..8c78c21e2 100644 --- a/doc/html/classreflex_1_1_ranges-members.html +++ b/doc/html/classreflex_1_1_ranges-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -89,7 +89,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_ranges.html b/doc/html/classreflex_1_1_ranges.html index c6541db55..d4942e448 100644 --- a/doc/html/classreflex_1_1_ranges.html +++ b/doc/html/classreflex_1_1_ranges.html @@ -21,7 +21,7 @@
reflex::Ranges< T > Class Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1104,7 +1104,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_std_ecma_matcher-members.html b/doc/html/classreflex_1_1_std_ecma_matcher-members.html index 10a41f6ac..4f72d3794 100644 --- a/doc/html/classreflex_1_1_std_ecma_matcher-members.html +++ b/doc/html/classreflex_1_1_std_ecma_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -204,7 +204,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_std_ecma_matcher.html b/doc/html/classreflex_1_1_std_ecma_matcher.html index 32a4d6462..2567d0bfb 100644 --- a/doc/html/classreflex_1_1_std_ecma_matcher.html +++ b/doc/html/classreflex_1_1_std_ecma_matcher.html @@ -21,7 +21,7 @@
reflex::StdEcmaMatcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -880,7 +880,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_std_matcher-members.html b/doc/html/classreflex_1_1_std_matcher-members.html index 5156c296a..d2f4ab773 100644 --- a/doc/html/classreflex_1_1_std_matcher-members.html +++ b/doc/html/classreflex_1_1_std_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -200,7 +200,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_std_matcher.html b/doc/html/classreflex_1_1_std_matcher.html index 193465eb3..edae26abc 100644 --- a/doc/html/classreflex_1_1_std_matcher.html +++ b/doc/html/classreflex_1_1_std_matcher.html @@ -21,7 +21,7 @@
reflex::StdMatcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1183,7 +1183,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_std_posix_matcher-members.html b/doc/html/classreflex_1_1_std_posix_matcher-members.html index c4deb61d7..67616db14 100644 --- a/doc/html/classreflex_1_1_std_posix_matcher-members.html +++ b/doc/html/classreflex_1_1_std_posix_matcher-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -204,7 +204,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_std_posix_matcher.html b/doc/html/classreflex_1_1_std_posix_matcher.html index 16ae641e4..564c862c1 100644 --- a/doc/html/classreflex_1_1_std_posix_matcher.html +++ b/doc/html/classreflex_1_1_std_posix_matcher.html @@ -21,7 +21,7 @@
reflex::StdPosixMatcher Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -926,7 +926,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_unicode_1_1_tables-members.html b/doc/html/classreflex_1_1_unicode_1_1_tables-members.html index 6bf7d28bb..c777cd6de 100644 --- a/doc/html/classreflex_1_1_unicode_1_1_tables-members.html +++ b/doc/html/classreflex_1_1_unicode_1_1_tables-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -66,7 +66,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_unicode_1_1_tables.html b/doc/html/classreflex_1_1_unicode_1_1_tables.html index 2c80aef45..60381c6de 100644 --- a/doc/html/classreflex_1_1_unicode_1_1_tables.html +++ b/doc/html/classreflex_1_1_unicode_1_1_tables.html @@ -21,7 +21,7 @@
reflex::Unicode::Tables Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -198,7 +198,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1regex__error-members.html b/doc/html/classreflex_1_1regex__error-members.html index ba83b1b44..f90548ffc 100644 --- a/doc/html/classreflex_1_1regex__error-members.html +++ b/doc/html/classreflex_1_1regex__error-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -85,7 +85,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1regex__error.html b/doc/html/classreflex_1_1regex__error.html index a1544346b..d1418d84b 100644 --- a/doc/html/classreflex_1_1regex__error.html +++ b/doc/html/classreflex_1_1regex__error.html @@ -21,7 +21,7 @@
reflex::regex_error Class Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -787,7 +787,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/convert_8h.html b/doc/html/convert_8h.html index eb7562386..f00b59d5f 100644 --- a/doc/html/convert_8h.html +++ b/doc/html/convert_8h.html @@ -21,7 +21,7 @@
convert.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -151,7 +151,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/debug_8h.html b/doc/html/debug_8h.html index 34c7d0344..f5440a187 100644 --- a/doc/html/debug_8h.html +++ b/doc/html/debug_8h.html @@ -21,7 +21,7 @@
debug.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -225,7 +225,7 @@

Example

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/dir_000002_000000.html b/doc/html/dir_000002_000000.html index 231903452..1ec8d7f93 100644 --- a/doc/html/dir_000002_000000.html +++ b/doc/html/dir_000002_000000.html @@ -21,7 +21,7 @@
src -> include Relation

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -46,7 +46,7 @@

src → include Relation

File in srcIncludes file in include
reflex.hreflex / convert.h
reflex.hreflex / error.h
reflex.hreflex / input.h
reflex.hreflex / pattern.h
reflex.hreflex / utf8.h
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html index c9216eac9..8754fab1b 100644 --- a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -21,7 +21,7 @@
src Directory Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -76,7 +76,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html b/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html index 6775f6f34..8f962fd85 100644 --- a/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html +++ b/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html @@ -21,7 +21,7 @@
reflex Directory Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -117,7 +117,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html index fd40774a2..57fa7ad8d 100644 --- a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -21,7 +21,7 @@
include Directory Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -62,7 +62,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/error_8h.html b/doc/html/error_8h.html index 618f0bd5b..3f60d4813 100644 --- a/doc/html/error_8h.html +++ b/doc/html/error_8h.html @@ -21,7 +21,7 @@
error.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -111,7 +111,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/files.html b/doc/html/files.html index 651cf4d12..6a79bc2ae 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -21,7 +21,7 @@
File List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -77,7 +77,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/flexlexer_8h.html b/doc/html/flexlexer_8h.html index e653ae762..83b51b912 100644 --- a/doc/html/flexlexer_8h.html +++ b/doc/html/flexlexer_8h.html @@ -21,7 +21,7 @@
flexlexer.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -1054,7 +1054,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/functions.html b/doc/html/functions.html index 6f90ef676..c9b94d3c9 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -175,7 +175,7 @@

- a -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_0x7e.html b/doc/html/functions_0x7e.html index e4d72efa2..323d48802 100644 --- a/doc/html/functions_0x7e.html +++ b/doc/html/functions_0x7e.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -109,7 +109,7 @@

- ~ -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_b.html b/doc/html/functions_b.html index 96e9848f9..3e0c96d52 100644 --- a/doc/html/functions_b.html +++ b/doc/html/functions_b.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -173,7 +173,7 @@

- b -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_c.html b/doc/html/functions_c.html index fcd10c9bf..8cd169539 100644 --- a/doc/html/functions_c.html +++ b/doc/html/functions_c.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -276,7 +276,7 @@

- c -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_d.html b/doc/html/functions_d.html index 6bb2225fa..144cf7172 100644 --- a/doc/html/functions_d.html +++ b/doc/html/functions_d.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -128,7 +128,7 @@

- d -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_e.html b/doc/html/functions_e.html index 8872f43fa..4dc3bf9b1 100644 --- a/doc/html/functions_e.html +++ b/doc/html/functions_e.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -186,7 +186,7 @@

- e -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_enum.html b/doc/html/functions_enum.html index b2eee88cf..688b5e25b 100644 --- a/doc/html/functions_enum.html +++ b/doc/html/functions_enum.html @@ -21,7 +21,7 @@
Class Members - Enumerations

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -65,7 +65,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_eval.html b/doc/html/functions_eval.html index 7a25c642a..267de74f8 100644 --- a/doc/html/functions_eval.html +++ b/doc/html/functions_eval.html @@ -21,7 +21,7 @@
Class Members - Enumerator

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -107,7 +107,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_f.html b/doc/html/functions_f.html index 6011534a4..5611c01a7 100644 --- a/doc/html/functions_f.html +++ b/doc/html/functions_f.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -243,7 +243,7 @@

- f -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html index 03e5abc3c..3b7221486 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -153,7 +153,7 @@

- a -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_0x7e.html b/doc/html/functions_func_0x7e.html index 61a5575e8..7edf0451b 100644 --- a/doc/html/functions_func_0x7e.html +++ b/doc/html/functions_func_0x7e.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -106,7 +106,7 @@

- ~ -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_b.html b/doc/html/functions_func_b.html index 99e73d684..9999981e9 100644 --- a/doc/html/functions_func_b.html +++ b/doc/html/functions_func_b.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -134,7 +134,7 @@

- b -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_c.html b/doc/html/functions_func_c.html index 0502006f4..2de23b8e1 100644 --- a/doc/html/functions_func_c.html +++ b/doc/html/functions_func_c.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -168,7 +168,7 @@

- c -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_d.html b/doc/html/functions_func_d.html index 20482a2b4..f2b6bd3eb 100644 --- a/doc/html/functions_func_d.html +++ b/doc/html/functions_func_d.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -113,7 +113,7 @@

- d -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_e.html b/doc/html/functions_func_e.html index 9b978be88..d66fd5f8f 100644 --- a/doc/html/functions_func_e.html +++ b/doc/html/functions_func_e.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -145,7 +145,7 @@

- e -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_f.html b/doc/html/functions_func_f.html index 8376befab..e50833536 100644 --- a/doc/html/functions_func_f.html +++ b/doc/html/functions_func_f.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -209,7 +209,7 @@

- f -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_g.html b/doc/html/functions_func_g.html index 82354d81e..233973be7 100644 --- a/doc/html/functions_func_g.html +++ b/doc/html/functions_func_g.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -152,7 +152,7 @@

- g -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_h.html b/doc/html/functions_func_h.html index 4f43f6924..afb71cc17 100644 --- a/doc/html/functions_func_h.html +++ b/doc/html/functions_func_h.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -109,7 +109,7 @@

- h -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_i.html b/doc/html/functions_func_i.html index fbae71daa..1ed19602c 100644 --- a/doc/html/functions_func_i.html +++ b/doc/html/functions_func_i.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -191,7 +191,7 @@

- i -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_l.html b/doc/html/functions_func_l.html index 0c916bc14..29b6642a6 100644 --- a/doc/html/functions_func_l.html +++ b/doc/html/functions_func_l.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -152,7 +152,7 @@

- l -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_m.html b/doc/html/functions_func_m.html index 27490849a..b9bab6b32 100644 --- a/doc/html/functions_func_m.html +++ b/doc/html/functions_func_m.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -117,7 +117,7 @@

- m -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_n.html b/doc/html/functions_func_n.html index 143ffe908..04532b363 100644 --- a/doc/html/functions_func_n.html +++ b/doc/html/functions_func_n.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -117,7 +117,7 @@

- n -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_o.html b/doc/html/functions_func_o.html index 5a713b075..fd9c6b1ff 100644 --- a/doc/html/functions_func_o.html +++ b/doc/html/functions_func_o.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -277,7 +277,7 @@

- o -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_p.html b/doc/html/functions_func_p.html index 82d3f8047..f30ff3c1a 100644 --- a/doc/html/functions_func_p.html +++ b/doc/html/functions_func_p.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -166,7 +166,7 @@

- p -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_r.html b/doc/html/functions_func_r.html index 8268c540d..dfdb2c3b8 100644 --- a/doc/html/functions_func_r.html +++ b/doc/html/functions_func_r.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -124,7 +124,7 @@

- r -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_s.html b/doc/html/functions_func_s.html index 563b34a93..880d3e106 100644 --- a/doc/html/functions_func_s.html +++ b/doc/html/functions_func_s.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -179,7 +179,7 @@

- s -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_t.html b/doc/html/functions_func_t.html index 2cf9f836a..56979400a 100644 --- a/doc/html/functions_func_t.html +++ b/doc/html/functions_func_t.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -114,7 +114,7 @@

- t -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_u.html b/doc/html/functions_func_u.html index 8c7255e41..dbbb5b57f 100644 --- a/doc/html/functions_func_u.html +++ b/doc/html/functions_func_u.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -119,7 +119,7 @@

- u -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_v.html b/doc/html/functions_func_v.html index 63fc74423..71513b744 100644 --- a/doc/html/functions_func_v.html +++ b/doc/html/functions_func_v.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -94,7 +94,7 @@

- v -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_w.html b/doc/html/functions_func_w.html index 42224fc7d..90f4ddb7c 100644 --- a/doc/html/functions_func_w.html +++ b/doc/html/functions_func_w.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -195,7 +195,7 @@

- w -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_x.html b/doc/html/functions_func_x.html index 103565aff..5bf78e8a5 100644 --- a/doc/html/functions_func_x.html +++ b/doc/html/functions_func_x.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -97,7 +97,7 @@

- x -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_y.html b/doc/html/functions_func_y.html index c37b4decf..e4ce3f453 100644 --- a/doc/html/functions_func_y.html +++ b/doc/html/functions_func_y.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -103,7 +103,7 @@

- y -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_g.html b/doc/html/functions_g.html index 9f568351f..d9f3be879 100644 --- a/doc/html/functions_g.html +++ b/doc/html/functions_g.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -164,7 +164,7 @@

- g -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_h.html b/doc/html/functions_h.html index 9ee346ef3..ec9bcdb14 100644 --- a/doc/html/functions_h.html +++ b/doc/html/functions_h.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -124,7 +124,7 @@

- h -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_i.html b/doc/html/functions_i.html index 85f11af6d..365fe872b 100644 --- a/doc/html/functions_i.html +++ b/doc/html/functions_i.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -290,7 +290,7 @@

- i -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_k.html b/doc/html/functions_k.html index 3c046d006..5d3f4156d 100644 --- a/doc/html/functions_k.html +++ b/doc/html/functions_k.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -101,7 +101,7 @@

- k -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_l.html b/doc/html/functions_l.html index be6dfe433..a26b18388 100644 --- a/doc/html/functions_l.html +++ b/doc/html/functions_l.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -210,7 +210,7 @@

- l -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_m.html b/doc/html/functions_m.html index bd15f0045..bdf2e71fc 100644 --- a/doc/html/functions_m.html +++ b/doc/html/functions_m.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -226,7 +226,7 @@

- m -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_n.html b/doc/html/functions_n.html index 2164d333f..f128bb7e7 100644 --- a/doc/html/functions_n.html +++ b/doc/html/functions_n.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -152,7 +152,7 @@

- n -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_o.html b/doc/html/functions_o.html index 3d10a7a80..654ef6a72 100644 --- a/doc/html/functions_o.html +++ b/doc/html/functions_o.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -304,7 +304,7 @@

- o -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_p.html b/doc/html/functions_p.html index 854982d40..7812db7a6 100644 --- a/doc/html/functions_p.html +++ b/doc/html/functions_p.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -215,7 +215,7 @@

- p -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_q.html b/doc/html/functions_q.html index b00cd44bc..7fed0ad85 100644 --- a/doc/html/functions_q.html +++ b/doc/html/functions_q.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -97,7 +97,7 @@

- q -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_r.html b/doc/html/functions_r.html index 1d180566c..2758ab7b8 100644 --- a/doc/html/functions_r.html +++ b/doc/html/functions_r.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -157,7 +157,7 @@

- r -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_rela.html b/doc/html/functions_rela.html index 1d5bb1dd9..790c66290 100644 --- a/doc/html/functions_rela.html +++ b/doc/html/functions_rela.html @@ -21,7 +21,7 @@
Class Members - Related Functions

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -74,7 +74,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_s.html b/doc/html/functions_s.html index 1665ed6f7..c5a6cb43e 100644 --- a/doc/html/functions_s.html +++ b/doc/html/functions_s.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -268,7 +268,7 @@

- s -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_t.html b/doc/html/functions_t.html index 29fd2342f..abb6bd0c4 100644 --- a/doc/html/functions_t.html +++ b/doc/html/functions_t.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -136,7 +136,7 @@

- t -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_type.html b/doc/html/functions_type.html index 48c9e2ab6..a53ef6660 100644 --- a/doc/html/functions_type.html +++ b/doc/html/functions_type.html @@ -21,7 +21,7 @@
Class Members - Typedefs

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -295,7 +295,7 @@

- v -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_u.html b/doc/html/functions_u.html index 68396d94b..00f792751 100644 --- a/doc/html/functions_u.html +++ b/doc/html/functions_u.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -152,7 +152,7 @@

- u -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_v.html b/doc/html/functions_v.html index 7d9e23b11..6843b8ecf 100644 --- a/doc/html/functions_v.html +++ b/doc/html/functions_v.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -115,7 +115,7 @@

- v -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html index f0bb5aaaf..1b415c76d 100644 --- a/doc/html/functions_vars.html +++ b/doc/html/functions_vars.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -107,7 +107,7 @@

- a -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_b.html b/doc/html/functions_vars_b.html index 267457f66..c605a78c5 100644 --- a/doc/html/functions_vars_b.html +++ b/doc/html/functions_vars_b.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -126,7 +126,7 @@

- b -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_c.html b/doc/html/functions_vars_c.html index ae2540aa0..d928a18cf 100644 --- a/doc/html/functions_vars_c.html +++ b/doc/html/functions_vars_c.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -172,7 +172,7 @@

- c -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_d.html b/doc/html/functions_vars_d.html index 7828d1a7c..d0a969315 100644 --- a/doc/html/functions_vars_d.html +++ b/doc/html/functions_vars_d.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -101,7 +101,7 @@

- d -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_e.html b/doc/html/functions_vars_e.html index 0d45bfbf0..97a4bc207 100644 --- a/doc/html/functions_vars_e.html +++ b/doc/html/functions_vars_e.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -129,7 +129,7 @@

- e -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_f.html b/doc/html/functions_vars_f.html index df8f89295..ee493d18d 100644 --- a/doc/html/functions_vars_f.html +++ b/doc/html/functions_vars_f.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -120,7 +120,7 @@

- f -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_g.html b/doc/html/functions_vars_g.html index bcc4dc6b4..8a8069f6a 100644 --- a/doc/html/functions_vars_g.html +++ b/doc/html/functions_vars_g.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -98,7 +98,7 @@

- g -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_h.html b/doc/html/functions_vars_h.html index 5a66ba501..a84a73abe 100644 --- a/doc/html/functions_vars_h.html +++ b/doc/html/functions_vars_h.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -98,7 +98,7 @@

- h -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_i.html b/doc/html/functions_vars_i.html index 7357f5007..34eae6b71 100644 --- a/doc/html/functions_vars_i.html +++ b/doc/html/functions_vars_i.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -176,7 +176,7 @@

- i -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_k.html b/doc/html/functions_vars_k.html index e37df6ddb..4ecc8d1fe 100644 --- a/doc/html/functions_vars_k.html +++ b/doc/html/functions_vars_k.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -95,7 +95,7 @@

- k -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_l.html b/doc/html/functions_vars_l.html index 03b7a7077..0252fe139 100644 --- a/doc/html/functions_vars_l.html +++ b/doc/html/functions_vars_l.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -142,7 +142,7 @@

- l -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_m.html b/doc/html/functions_vars_m.html index e20ef2383..aa812d079 100644 --- a/doc/html/functions_vars_m.html +++ b/doc/html/functions_vars_m.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -135,7 +135,7 @@

- m -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_n.html b/doc/html/functions_vars_n.html index 5fc1f0eb2..a169db547 100644 --- a/doc/html/functions_vars_n.html +++ b/doc/html/functions_vars_n.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -122,7 +122,7 @@

- n -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_o.html b/doc/html/functions_vars_o.html index 7a11a2831..f0f289fd4 100644 --- a/doc/html/functions_vars_o.html +++ b/doc/html/functions_vars_o.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -115,7 +115,7 @@

- o -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_p.html b/doc/html/functions_vars_p.html index abdd01d96..afaca9024 100644 --- a/doc/html/functions_vars_p.html +++ b/doc/html/functions_vars_p.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -128,7 +128,7 @@

- p -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_q.html b/doc/html/functions_vars_q.html index 6fc1603c7..d883cd72e 100644 --- a/doc/html/functions_vars_q.html +++ b/doc/html/functions_vars_q.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -95,7 +95,7 @@

- q -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_r.html b/doc/html/functions_vars_r.html index cf9b03a16..6a614e992 100644 --- a/doc/html/functions_vars_r.html +++ b/doc/html/functions_vars_r.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -113,7 +113,7 @@

- r -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_s.html b/doc/html/functions_vars_s.html index dba7ff568..6cc93a928 100644 --- a/doc/html/functions_vars_s.html +++ b/doc/html/functions_vars_s.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -158,7 +158,7 @@

- s -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_t.html b/doc/html/functions_vars_t.html index 5868c1051..cdd8b3d9f 100644 --- a/doc/html/functions_vars_t.html +++ b/doc/html/functions_vars_t.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -107,7 +107,7 @@

- t -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_u.html b/doc/html/functions_vars_u.html index d86e99f8c..328c4692f 100644 --- a/doc/html/functions_vars_u.html +++ b/doc/html/functions_vars_u.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -122,7 +122,7 @@

- u -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_v.html b/doc/html/functions_vars_v.html index e5d28c4c6..6350d0c6d 100644 --- a/doc/html/functions_vars_v.html +++ b/doc/html/functions_vars_v.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -101,7 +101,7 @@

- v -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_w.html b/doc/html/functions_vars_w.html index b60c66129..5884f6626 100644 --- a/doc/html/functions_vars_w.html +++ b/doc/html/functions_vars_w.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -101,7 +101,7 @@

- w -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_x.html b/doc/html/functions_vars_x.html index 71b0b5939..f27b23c34 100644 --- a/doc/html/functions_vars_x.html +++ b/doc/html/functions_vars_x.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -95,7 +95,7 @@

- x -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_z.html b/doc/html/functions_vars_z.html index d6426222c..c7e623b2a 100644 --- a/doc/html/functions_vars_z.html +++ b/doc/html/functions_vars_z.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -95,7 +95,7 @@

- z -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_w.html b/doc/html/functions_w.html index 259e6428b..a2fee0c33 100644 --- a/doc/html/functions_w.html +++ b/doc/html/functions_w.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -207,7 +207,7 @@

- w -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_x.html b/doc/html/functions_x.html index a355fa934..ecabed18c 100644 --- a/doc/html/functions_x.html +++ b/doc/html/functions_x.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -103,7 +103,7 @@

- x -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_y.html b/doc/html/functions_y.html index 8b43d0954..61b555841 100644 --- a/doc/html/functions_y.html +++ b/doc/html/functions_y.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -106,7 +106,7 @@

- y -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/functions_z.html b/doc/html/functions_z.html index fb6181f70..c4b6d46a6 100644 --- a/doc/html/functions_z.html +++ b/doc/html/functions_z.html @@ -21,7 +21,7 @@
Class Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -97,7 +97,7 @@

- z -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/globals.html b/doc/html/globals.html index 88ca9e826..28b02fec7 100644 --- a/doc/html/globals.html +++ b/doc/html/globals.html @@ -21,7 +21,7 @@
File Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -338,7 +338,7 @@

- y -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html index a613850de..fce7cc6fe 100644 --- a/doc/html/globals_defs.html +++ b/doc/html/globals_defs.html @@ -21,7 +21,7 @@
File Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -286,7 +286,7 @@

- y -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html index 6d242c598..1a729683a 100644 --- a/doc/html/globals_func.html +++ b/doc/html/globals_func.html @@ -21,7 +21,7 @@
File Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -76,7 +76,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/globals_vars.html b/doc/html/globals_vars.html index f833c5b7e..1737f8d12 100644 --- a/doc/html/globals_vars.html +++ b/doc/html/globals_vars.html @@ -21,7 +21,7 @@
File Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -67,7 +67,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/graph_legend.html b/doc/html/graph_legend.html index 4c84b6961..3c6a7fb6e 100644 --- a/doc/html/graph_legend.html +++ b/doc/html/graph_legend.html @@ -21,7 +21,7 @@
Graph Legend

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -75,7 +75,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html index 5bd3fe390..81f29d747 100644 --- a/doc/html/hierarchy.html +++ b/doc/html/hierarchy.html @@ -21,7 +21,7 @@
Class Hierarchy

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -117,7 +117,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/index.html b/doc/html/index.html index e021d6f52..2b7185b96 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -21,7 +21,7 @@
RE/flex user guide

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -156,12 +156,12 @@ the essential features or qualities of something else." – Oxford Dictionary

What is RE/flex?

-

RE/flex is the regex-centric, fast lexical analyzer generator with full Unicode support, indent/nodent/dedent anchors, lazy quantifiers, word boundaries, and many other modern features. RE/flex also includes a fast regex engine written in C++ with options to generate finite state machine tables or direct code to match input more efficiently. RE/flex includes a smart input class to normalize input from files, streams, strings, and memory. RE/flex is compatible with Bison/Yacc and accepts Flex lexer specifications.

+

RE/flex is the regex-centric, fast lexical analyzer generator with full Unicode support, indentation anchors, lazy quantifiers, word boundaries, and many other modern features. RE/flex also includes a fast regex engine written in C++ with options to generate finite state machine tables or direct code to match input more efficiently. RE/flex includes a smart input class to normalize input from files, streams, strings, and memory. RE/flex is compatible with Bison/Yacc and accepts Flex lexer specifications.

Features:

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/index_8md.html b/doc/html/index_8md.html index 3710b973b..0166f1199 100644 --- a/doc/html/index_8md.html +++ b/doc/html/index_8md.html @@ -21,7 +21,7 @@
index.md File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -52,7 +52,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/inherits.html b/doc/html/inherits.html index 506c19f36..a6457623f 100644 --- a/doc/html/inherits.html +++ b/doc/html/inherits.html @@ -21,7 +21,7 @@
Class Hierarchy

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -240,7 +240,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/input_8h.html b/doc/html/input_8h.html index 4e7d407b8..42055edde 100644 --- a/doc/html/input_8h.html +++ b/doc/html/input_8h.html @@ -21,7 +21,7 @@
input.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -127,7 +127,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/matcher_8h.html b/doc/html/matcher_8h.html index 5c5b7b8a6..4f306b2dd 100644 --- a/doc/html/matcher_8h.html +++ b/doc/html/matcher_8h.html @@ -21,7 +21,7 @@
matcher.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -104,7 +104,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html index 5fff57491..9d66aebda 100644 --- a/doc/html/namespacemembers.html +++ b/doc/html/namespacemembers.html @@ -21,7 +21,7 @@
Namespace Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -209,7 +209,7 @@

- w -

+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html index e2bf54041..37450ac1c 100644 --- a/doc/html/namespacemembers_func.html +++ b/doc/html/namespacemembers_func.html @@ -21,7 +21,7 @@
Namespace Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -98,7 +98,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/namespacemembers_type.html b/doc/html/namespacemembers_type.html index 6c074d7bc..bf3046b4e 100644 --- a/doc/html/namespacemembers_type.html +++ b/doc/html/namespacemembers_type.html @@ -21,7 +21,7 @@
Namespace Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -67,7 +67,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/namespacemembers_vars.html b/doc/html/namespacemembers_vars.html index 489974217..a6a42a04d 100644 --- a/doc/html/namespacemembers_vars.html +++ b/doc/html/namespacemembers_vars.html @@ -21,7 +21,7 @@
Namespace Members

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -88,7 +88,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/namespacereflex.html b/doc/html/namespacereflex.html index 05e71088f..96a89c68d 100644 --- a/doc/html/namespacereflex.html +++ b/doc/html/namespacereflex.html @@ -21,7 +21,7 @@
reflex Namespace Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -934,7 +934,7 @@

Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/namespacereflex_1_1_posix.html b/doc/html/namespacereflex_1_1_posix.html index f13df283f..6f0950132 100644 --- a/doc/html/namespacereflex_1_1_posix.html +++ b/doc/html/namespacereflex_1_1_posix.html @@ -21,7 +21,7 @@
reflex::Posix Namespace Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -87,7 +87,7 @@

Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/namespacereflex_1_1_unicode.html b/doc/html/namespacereflex_1_1_unicode.html index 9b3577c2e..126a1fae4 100644 --- a/doc/html/namespacereflex_1_1_unicode.html +++ b/doc/html/namespacereflex_1_1_unicode.html @@ -21,7 +21,7 @@
reflex::Unicode Namespace Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -87,7 +87,7 @@

Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/namespacereflex_1_1convert__flag.html b/doc/html/namespacereflex_1_1convert__flag.html index 29eb724fc..35ec933b9 100644 --- a/doc/html/namespacereflex_1_1convert__flag.html +++ b/doc/html/namespacereflex_1_1convert__flag.html @@ -21,7 +21,7 @@
reflex::convert_flag Namespace Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -233,7 +233,7 @@

Variable Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html index 6dc958ac4..75aa1ae0a 100644 --- a/doc/html/namespaces.html +++ b/doc/html/namespaces.html @@ -21,7 +21,7 @@
Namespace List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -60,7 +60,7 @@
+Converted on Sat Dec 28 2019 16:37:56 by Doxygen 1.8.11
diff --git a/doc/html/pattern_8h.html b/doc/html/pattern_8h.html index 0cb9845c4..1c7d83ecb 100644 --- a/doc/html/pattern_8h.html +++ b/doc/html/pattern_8h.html @@ -21,7 +21,7 @@
pattern.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -130,7 +130,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/posix_8h.html b/doc/html/posix_8h.html index 28dd6f3fa..fee54d741 100644 --- a/doc/html/posix_8h.html +++ b/doc/html/posix_8h.html @@ -21,7 +21,7 @@
posix.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -104,7 +104,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/ranges_8h.html b/doc/html/ranges_8h.html index b3da52fc1..fcf65eb99 100644 --- a/doc/html/ranges_8h.html +++ b/doc/html/ranges_8h.html @@ -21,7 +21,7 @@
ranges.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -104,7 +104,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/reflex_8cpp.html b/doc/html/reflex_8cpp.html index 466dad5e5..f9125807a 100644 --- a/doc/html/reflex_8cpp.html +++ b/doc/html/reflex_8cpp.html @@ -21,7 +21,7 @@
reflex.cpp File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -399,7 +399,7 @@

Variable Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/reflex_8h.html b/doc/html/reflex_8h.html index baab3d005..9098fff90 100644 --- a/doc/html/reflex_8h.html +++ b/doc/html/reflex_8h.html @@ -21,7 +21,7 @@
reflex.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -118,7 +118,7 @@ Macros #define PLATFORM   ""   -#define REFLEX_VERSION   "1.5.5" +#define REFLEX_VERSION   "1.5.6"  

Detailed Description

@@ -145,7 +145,7 @@
- +
#define REFLEX_VERSION   "1.5.5"#define REFLEX_VERSION   "1.5.6"
@@ -155,7 +155,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/setop_8h.html b/doc/html/setop_8h.html index e2de1fcfe..2ddca30f4 100644 --- a/doc/html/setop_8h.html +++ b/doc/html/setop_8h.html @@ -21,7 +21,7 @@
setop.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -134,7 +134,7 @@

Example

std::set<int> s1;
s1.insert(1);
assert(reflex::is_in_set(1, s1) == true);
std::set<int> s2;
s2.insert(1);
s2.insert(2);
assert(reflex::is_disjoint(s1, s2) == false);
assert(reflex::is_subset(s1, s2) == true);
reflex::lazy_union< std::set<int>,std::set<int> > U(s1, s2);
for (reflex::lazy_union< std::set<int>,std::set<int> >::iterator i = U.begin(); i != U.end(); ++i)
std::cout << *i << std::endl; // prints 1 and 2
reflex::lazy_intersection< std::set<int>,std::set<int> > I(s1, s2);
for (reflex::lazy_intersection< std::set<int>,std::set<int> >::iterator i = I.begin(); i != I.end(); ++i)
std::cout << *i << std::endl; // prints 1
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/stdmatcher_8h.html b/doc/html/stdmatcher_8h.html index d2948bf79..158d5915d 100644 --- a/doc/html/stdmatcher_8h.html +++ b/doc/html/stdmatcher_8h.html @@ -21,7 +21,7 @@
stdmatcher.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -102,7 +102,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/struct_reflex_1_1_code-members.html b/doc/html/struct_reflex_1_1_code-members.html index 688033e9d..50f0fe814 100644 --- a/doc/html/struct_reflex_1_1_code-members.html +++ b/doc/html/struct_reflex_1_1_code-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -64,7 +64,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/struct_reflex_1_1_code.html b/doc/html/struct_reflex_1_1_code.html index 0ee437200..1eca93040 100644 --- a/doc/html/struct_reflex_1_1_code.html +++ b/doc/html/struct_reflex_1_1_code.html @@ -21,7 +21,7 @@
Reflex::Code Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -173,7 +173,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/struct_reflex_1_1_library-members.html b/doc/html/struct_reflex_1_1_library-members.html index 75c2fb5d7..a8f2daeb0 100644 --- a/doc/html/struct_reflex_1_1_library-members.html +++ b/doc/html/struct_reflex_1_1_library-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -65,7 +65,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/struct_reflex_1_1_library.html b/doc/html/struct_reflex_1_1_library.html index e86e133ca..d46a5031d 100644 --- a/doc/html/struct_reflex_1_1_library.html +++ b/doc/html/struct_reflex_1_1_library.html @@ -21,7 +21,7 @@
Reflex::Library Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -160,7 +160,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/struct_reflex_1_1_rule-members.html b/doc/html/struct_reflex_1_1_rule-members.html index b4f8dad7b..02e1cd335 100644 --- a/doc/html/struct_reflex_1_1_rule-members.html +++ b/doc/html/struct_reflex_1_1_rule-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -63,7 +63,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/struct_reflex_1_1_rule.html b/doc/html/struct_reflex_1_1_rule.html index 3333873fa..89a22b4e6 100644 --- a/doc/html/struct_reflex_1_1_rule.html +++ b/doc/html/struct_reflex_1_1_rule.html @@ -21,7 +21,7 @@
Reflex::Rule Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -154,7 +154,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_abstract_matcher_1_1_const-members.html b/doc/html/structreflex_1_1_abstract_matcher_1_1_const-members.html index 40e8087f5..d939315e8 100644 --- a/doc/html/structreflex_1_1_abstract_matcher_1_1_const-members.html +++ b/doc/html/structreflex_1_1_abstract_matcher_1_1_const-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -70,7 +70,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_abstract_matcher_1_1_const.html b/doc/html/structreflex_1_1_abstract_matcher_1_1_const.html index 44cb92f16..9fc6b8f9c 100644 --- a/doc/html/structreflex_1_1_abstract_matcher_1_1_const.html +++ b/doc/html/structreflex_1_1_abstract_matcher_1_1_const.html @@ -21,7 +21,7 @@
reflex::AbstractMatcher::Const Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -325,7 +325,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_abstract_matcher_1_1_option-members.html b/doc/html/structreflex_1_1_abstract_matcher_1_1_option-members.html index 848966776..33194525a 100644 --- a/doc/html/structreflex_1_1_abstract_matcher_1_1_option-members.html +++ b/doc/html/structreflex_1_1_abstract_matcher_1_1_option-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -64,7 +64,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_abstract_matcher_1_1_option.html b/doc/html/structreflex_1_1_abstract_matcher_1_1_option.html index 9f60e67d7..fd4b8f7fd 100644 --- a/doc/html/structreflex_1_1_abstract_matcher_1_1_option.html +++ b/doc/html/structreflex_1_1_abstract_matcher_1_1_option.html @@ -21,7 +21,7 @@
reflex::AbstractMatcher::Option Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -156,7 +156,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_bits_1_1_bitref-members.html b/doc/html/structreflex_1_1_bits_1_1_bitref-members.html index 702c010ec..ab0835409 100644 --- a/doc/html/structreflex_1_1_bits_1_1_bitref-members.html +++ b/doc/html/structreflex_1_1_bits_1_1_bitref-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -68,7 +68,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_bits_1_1_bitref.html b/doc/html/structreflex_1_1_bits_1_1_bitref.html index 92a33c818..623afb740 100644 --- a/doc/html/structreflex_1_1_bits_1_1_bitref.html +++ b/doc/html/structreflex_1_1_bits_1_1_bitref.html @@ -21,7 +21,7 @@
reflex::Bits::Bitref Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -329,7 +329,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_input_1_1file__encoding-members.html b/doc/html/structreflex_1_1_input_1_1file__encoding-members.html index 3140b3474..aa8bbd1a1 100644 --- a/doc/html/structreflex_1_1_input_1_1file__encoding-members.html +++ b/doc/html/structreflex_1_1_input_1_1file__encoding-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -81,7 +81,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_input_1_1file__encoding.html b/doc/html/structreflex_1_1_input_1_1file__encoding.html index 937dd32cd..51f421f49 100644 --- a/doc/html/structreflex_1_1_input_1_1file__encoding.html +++ b/doc/html/structreflex_1_1_input_1_1file__encoding.html @@ -21,7 +21,7 @@
reflex::Input::file_encoding Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -600,7 +600,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_matcher_1_1_f_s_m-members.html b/doc/html/structreflex_1_1_matcher_1_1_f_s_m-members.html index 361fe3ada..37290fa8d 100644 --- a/doc/html/structreflex_1_1_matcher_1_1_f_s_m-members.html +++ b/doc/html/structreflex_1_1_matcher_1_1_f_s_m-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -64,7 +64,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_matcher_1_1_f_s_m.html b/doc/html/structreflex_1_1_matcher_1_1_f_s_m.html index 86366df2e..20c82bf58 100644 --- a/doc/html/structreflex_1_1_matcher_1_1_f_s_m.html +++ b/doc/html/structreflex_1_1_matcher_1_1_f_s_m.html @@ -21,7 +21,7 @@
reflex::Matcher::FSM Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -147,7 +147,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_const-members.html b/doc/html/structreflex_1_1_pattern_1_1_const-members.html index be17f57d4..7aabb8e79 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_const-members.html +++ b/doc/html/structreflex_1_1_pattern_1_1_const-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -62,7 +62,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_const.html b/doc/html/structreflex_1_1_pattern_1_1_const.html index 37529ee86..9c2b0a3a5 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_const.html +++ b/doc/html/structreflex_1_1_pattern_1_1_const.html @@ -21,7 +21,7 @@
reflex::Pattern::Const Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -125,7 +125,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_option-members.html b/doc/html/structreflex_1_1_pattern_1_1_option-members.html index cf6d4551e..56ca7fcb5 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_option-members.html +++ b/doc/html/structreflex_1_1_pattern_1_1_option-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -76,7 +76,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_option.html b/doc/html/structreflex_1_1_pattern_1_1_option.html index b5e8a8777..2f56d9e82 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_option.html +++ b/doc/html/structreflex_1_1_pattern_1_1_option.html @@ -21,7 +21,7 @@
reflex::Pattern::Option Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -367,7 +367,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_position-members.html b/doc/html/structreflex_1_1_pattern_1_1_position-members.html index e772158de..a4a52f524 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_position-members.html +++ b/doc/html/structreflex_1_1_pattern_1_1_position-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -87,7 +87,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_position.html b/doc/html/structreflex_1_1_pattern_1_1_position.html index ce4347a4b..f8b51f298 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_position.html +++ b/doc/html/structreflex_1_1_pattern_1_1_position.html @@ -21,7 +21,7 @@
reflex::Pattern::Position Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -735,7 +735,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_state-members.html b/doc/html/structreflex_1_1_pattern_1_1_state-members.html index 26c0554c2..9b762542c 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_state-members.html +++ b/doc/html/structreflex_1_1_pattern_1_1_state-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -71,7 +71,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_pattern_1_1_state.html b/doc/html/structreflex_1_1_pattern_1_1_state.html index b10f17cf9..702e2d7fb 100644 --- a/doc/html/structreflex_1_1_pattern_1_1_state.html +++ b/doc/html/structreflex_1_1_pattern_1_1_state.html @@ -21,7 +21,7 @@
reflex::Pattern::State Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -292,7 +292,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt-members.html b/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt-members.html index 2d9b377b1..d44391dbe 100644 --- a/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt-members.html +++ b/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -61,7 +61,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt.html b/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt.html index 789fe7792..2330af07e 100644 --- a/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt.html +++ b/doc/html/structreflex_1_1_posix_1_1_tables_1_1lt.html @@ -21,7 +21,7 @@
reflex::Posix::Tables::lt Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -106,7 +106,7 @@

Member Function Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_type_op-members.html b/doc/html/structreflex_1_1_type_op-members.html index 352c8ed06..abb54ee51 100644 --- a/doc/html/structreflex_1_1_type_op-members.html +++ b/doc/html/structreflex_1_1_type_op-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -63,7 +63,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_type_op.html b/doc/html/structreflex_1_1_type_op.html index 3ee326561..9614c1a05 100644 --- a/doc/html/structreflex_1_1_type_op.html +++ b/doc/html/structreflex_1_1_type_op.html @@ -21,7 +21,7 @@
reflex::TypeOp< T > Struct Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -141,7 +141,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4-members.html b/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4-members.html index c59a55842..41b1db749 100644 --- a/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4-members.html +++ b/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -63,7 +63,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4.html b/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4.html index eab17acd7..d441bd2bd 100644 --- a/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4.html +++ b/doc/html/structreflex_1_1_type_op_3_01const_01_t_01_4.html @@ -21,7 +21,7 @@
reflex::TypeOp< const T > Struct Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -126,7 +126,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__intersection-members.html b/doc/html/structreflex_1_1lazy__intersection-members.html index cc7587ad4..0b273c2e5 100644 --- a/doc/html/structreflex_1_1lazy__intersection-members.html +++ b/doc/html/structreflex_1_1lazy__intersection-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -66,7 +66,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__intersection.html b/doc/html/structreflex_1_1lazy__intersection.html index 82e79fd15..ab7e44712 100644 --- a/doc/html/structreflex_1_1lazy__intersection.html +++ b/doc/html/structreflex_1_1lazy__intersection.html @@ -21,7 +21,7 @@
reflex::lazy_intersection< S1, S2 > Struct Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -238,7 +238,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__intersection_1_1iterator-members.html b/doc/html/structreflex_1_1lazy__intersection_1_1iterator-members.html index 2850269f8..a9b4a4bd3 100644 --- a/doc/html/structreflex_1_1lazy__intersection_1_1iterator-members.html +++ b/doc/html/structreflex_1_1lazy__intersection_1_1iterator-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -74,7 +74,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__intersection_1_1iterator.html b/doc/html/structreflex_1_1lazy__intersection_1_1iterator.html index 7d6921979..0d89d51d2 100644 --- a/doc/html/structreflex_1_1lazy__intersection_1_1iterator.html +++ b/doc/html/structreflex_1_1lazy__intersection_1_1iterator.html @@ -21,7 +21,7 @@
reflex::lazy_intersection< S1, S2 >::iterator Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -434,7 +434,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__union-members.html b/doc/html/structreflex_1_1lazy__union-members.html index ea47cf064..a103cd582 100644 --- a/doc/html/structreflex_1_1lazy__union-members.html +++ b/doc/html/structreflex_1_1lazy__union-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -66,7 +66,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__union.html b/doc/html/structreflex_1_1lazy__union.html index 7391cd963..ed4ed876e 100644 --- a/doc/html/structreflex_1_1lazy__union.html +++ b/doc/html/structreflex_1_1lazy__union.html @@ -21,7 +21,7 @@
reflex::lazy_union< S1, S2 > Struct Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -238,7 +238,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__union_1_1iterator-members.html b/doc/html/structreflex_1_1lazy__union_1_1iterator-members.html index 5145d2d0f..a120a857a 100644 --- a/doc/html/structreflex_1_1lazy__union_1_1iterator-members.html +++ b/doc/html/structreflex_1_1lazy__union_1_1iterator-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -75,7 +75,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1lazy__union_1_1iterator.html b/doc/html/structreflex_1_1lazy__union_1_1iterator.html index 8de1b1eb8..b97c1bda6 100644 --- a/doc/html/structreflex_1_1lazy__union_1_1iterator.html +++ b/doc/html/structreflex_1_1lazy__union_1_1iterator.html @@ -21,7 +21,7 @@
reflex::lazy_union< S1, S2 >::iterator Struct Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -450,7 +450,7 @@

Member Data Documentation

+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1range__compare-members.html b/doc/html/structreflex_1_1range__compare-members.html index bef89a2f2..3cd320567 100644 --- a/doc/html/structreflex_1_1range__compare-members.html +++ b/doc/html/structreflex_1_1range__compare-members.html @@ -21,7 +21,7 @@
Member List

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -61,7 +61,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/structreflex_1_1range__compare.html b/doc/html/structreflex_1_1range__compare.html index 368538357..fad071c62 100644 --- a/doc/html/structreflex_1_1range__compare.html +++ b/doc/html/structreflex_1_1range__compare.html @@ -21,7 +21,7 @@
reflex::range_compare< T > Struct Template Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -127,7 +127,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/timer_8h.html b/doc/html/timer_8h.html index 43d8083f7..48fc31b1b 100644 --- a/doc/html/timer_8h.html +++ b/doc/html/timer_8h.html @@ -21,7 +21,7 @@
timer.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -96,7 +96,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/traits_8h.html b/doc/html/traits_8h.html index de48c730d..3ece849a9 100644 --- a/doc/html/traits_8h.html +++ b/doc/html/traits_8h.html @@ -21,7 +21,7 @@
traits.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -96,7 +96,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/unicode_8h.html b/doc/html/unicode_8h.html index 558dd053d..833832239 100644 --- a/doc/html/unicode_8h.html +++ b/doc/html/unicode_8h.html @@ -21,7 +21,7 @@
unicode.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -96,7 +96,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/html/utf8_8h.html b/doc/html/utf8_8h.html index fc6e2cbd5..461519ca8 100644 --- a/doc/html/utf8_8h.html +++ b/doc/html/utf8_8h.html @@ -21,7 +21,7 @@
utf8.h File Reference

-
updated Mon Dec 23 2019 by Robert van Engelen
+
updated Sat Dec 28 2019 by Robert van Engelen
  @@ -155,7 +155,7 @@
+Converted on Sat Dec 28 2019 16:37:50 by Doxygen 1.8.11
diff --git a/doc/index.md b/doc/index.md index 23c9d5e4b..94152f3b8 100644 --- a/doc/index.md +++ b/doc/index.md @@ -16,18 +16,18 @@ What is RE/flex? {#intro} ================ RE/flex is the regex-centric, fast lexical analyzer generator with full Unicode -support, indent/nodent/dedent anchors, lazy quantifiers, word boundaries, and -many other modern features. RE/flex also includes a fast regex engine written -in C++ with options to generate finite state machine tables or direct code to -match input more efficiently. RE/flex includes a smart input class to -normalize input from files, streams, strings, and memory. RE/flex is -compatible with Bison/Yacc and accepts Flex lexer specifications. +support, indentation anchors, lazy quantifiers, word boundaries, and many other +modern features. RE/flex also includes a fast regex engine written in C++ with +options to generate finite state machine tables or direct code to match input +more efficiently. RE/flex includes a smart input class to normalize input from +files, streams, strings, and memory. RE/flex is compatible with Bison/Yacc and +accepts Flex lexer specifications. Features: - includes a flexible library of regex classes that is extensible; -- the scanner generator is compatible with Flex/Lex lexer specifications; -- works with Bison, supports reentrant, C++, bison-bridge and bison-locations; +- the scanner generator accepts Flex/Lex lexer specifications; +- works with Bison, supports reentrant, C++, bridge and locations; - generates source code that is easy to understand; - generates scanners that are thread-safe by default; - generates search engines for optimal searching large files (new option `-S`); @@ -153,7 +153,8 @@ Lex and Flex have remained relatively stable (inert) tools while the demand has increased for tokenizing Unicode texts encoded in common wide character formats such as UTF-8, UCS/UTF-16, and UTF-32. Flex/Lex still use 8-bit character sets for regex patterns. Regex pattern syntax in Flex/Lex is also limited. No lazy -repetitions. No word boundary anchors. No indent and dedent matching. +repetitions. No word boundary anchors. No indentation matching with indent or +dedent anchors in patterns. It is possible, but not trivial to implement scanners with Flex/Lex to tokenize the source code of more modern programming languages with Unicode-based lexical @@ -225,7 +226,7 @@ scan over C/C++ source code input to match multiline comments that start with a Another argument to use this code with Flex is that the internal Flex buffer is limited to 16KB. By contrast, RE/flex buffers are dynamically resized and will -never run out to accept long matches. +never run out of buffer space to accept long matches. Workarounds such as these are not necessary with RE/flex. The RE/flex scanners use regex libraries with expressive pattern syntax. We can use lazy repetition @@ -1222,6 +1223,13 @@ This option generates an interactive scanner and permits console input by sacrificing speed. By contrast, the default buffered input strategy is more efficient. +#### `−−indent` and `−−noindent` + +This option enables or disables support for indentation matching with anchors +`\i`, `\j`, and `\k`. Indentation matching is enabled by default. Matching +speed may be improved by disabling indentation matching, but should only be +disabled when none of the indentation anchors is used in any of the patterns. + #### `-m reflex`, `−−matcher=reflex` This option generates a scanner that uses the RE/flex `reflex::Matcher` class @@ -1428,7 +1436,7 @@ generates `lex.NAME.h` with option `−−header-file`. This option initializes input to `std::cin` instead of using `stdin`. Automatic UTF decoding is not supported. Use `stdin` for automatic UTF BOM -detection and UTF decoding. +detection and UTF decoding of standard input streams, not `std::cin`. #### `−−bison` @@ -1491,11 +1499,12 @@ and also \ref reflex-bison. #### `−−yywrap` and `−−noyywrap` Option `−−yywrap` generates a scanner that calls the global `int yywrap()` -function when EOF is reached. Only applicable when `−−flex` is used for -compatibility and when `−−flex` and `−−bison` are used together. Use -`−−noyywrap` to disable the dependence on this global function. This option -has no effect for C++ lexer classes, which have a virtual `int wrap()` (or -`yywrap()` with option `−−flex`) method that may be overridden. +function when EOF is reached. This option is only applicable when `−−flex` is +used for compatibility and when `−−flex` and `−−bison` are used together. +Wrapping is enabled by default. Use `−−noyywrap` to disable the dependence on +this global function. This option has no effect for C++ lexer classes, which +have a virtual `int wrap()` (or `yywrap()` with option `−−flex`) method that +may be overridden. #### `−−exception=VALUE` diff --git a/doc/man/reflex.1 b/doc/man/reflex.1 index c826bb829..12506f8bd 100644 --- a/doc/man/reflex.1 +++ b/doc/man/reflex.1 @@ -1,4 +1,4 @@ -.TH REFLEX "1" "December 23, 2019" "reflex 1.5.5" "User Commands" +.TH REFLEX "1" "December 28, 2019" "reflex 1.5.6" "User Commands" .SH NAME reflex \- the regex\-centric fast and flexible lexical analyzer generator .SH SYNOPSIS diff --git a/include/reflex/matcher.h b/include/reflex/matcher.h index f848addcf..9eb01e5eb 100644 --- a/include/reflex/matcher.h +++ b/include/reflex/matcher.h @@ -275,6 +275,7 @@ class Matcher : public PatternMatcher { { cur_ = txt_ - buf_ + pos; } +#if !defined(WITH_NO_INDENT) /// FSM code META DED. inline bool FSM_META_DED() { @@ -293,6 +294,7 @@ class Matcher : public PatternMatcher { ded_ = 0; return mrk; } +#endif /// FSM code META EOB. inline bool FSM_META_EOB(int c1) { @@ -355,11 +357,431 @@ class Matcher : public PatternMatcher { /// Returns true if input matched the pattern using method Const::SCAN, Const::FIND, Const::SPLIT, or Const::MATCH. virtual size_t match(Method method) ///< Const::SCAN, Const::FIND, Const::SPLIT, or Const::MATCH /// @returns nonzero if input matched the pattern - ; + { + DBGLOG("BEGIN Matcher::match()"); + reset_text(); + len_ = 0; // split text length starts with 0 +scan: + txt_ = buf_ + cur_; +#if !defined(WITH_NO_INDENT) + mrk_ = false; + ind_ = pos_; // ind scans input in buf[] in newline() up to pos - 1 + col_ = 0; // count columns for indent matching + if (ded_ == 0 && hit_end() && tab_.empty()) + { + if (method == Const::SPLIT && !at_bob() && cap_ != 0 && cap_ != Const::EMPTY) + { + cap_ = Const::EMPTY; + DBGLOG("Split empty at end, cap = %zu", cap_); + DBGLOG("END Matcher::match()"); + return cap_; + } + cap_ = 0; + DBGLOG("END Matcher::match()"); + return 0; + } +#endif +find: + int c1 = got_; + bool bol = at_bol(); + if (pat_->fsm_) + fsm_.c1 = c1; +#if !defined(WITH_NO_INDENT) +redo: +#endif + lap_.resize(0); + cap_ = 0; + bool nul = method == Const::MATCH; + if (pat_->fsm_) + { + DBGLOG("FSM code %p", pat_->fsm_); + fsm_.bol = bol; + fsm_.nul = nul; + pat_->fsm_(*this); + nul = fsm_.nul; + c1 = fsm_.c1; + } + else if (pat_->opc_) + { + const Pattern::Opcode *pc = pat_->opc_; + while (true) + { + Pattern::Opcode opcode = *pc; + DBGLOG("Fetch: code[%zu] = 0x%08X", pc - pat_->opc_, opcode); + Pattern::Index index; + if (Pattern::is_opcode_halt(opcode)) + break; + if (Pattern::is_opcode_meta(opcode)) + { + switch (opcode >> 16) + { + case 0xFF00: // TAKE + cap_ = Pattern::index_of(opcode); + DBGLOG("Take: cap = %zu", cap_); + cur_ = pos_; + ++pc; + continue; + case 0xFF7E: // TAIL + index = Pattern::index_of(opcode); + DBGLOG("Tail: %u", index); + if (lap_.size() > index && lap_[index] >= 0) + cur_ = txt_ - buf_ + static_cast(lap_[index]); // mind the (new) gap + ++pc; + continue; + case 0xFF7F: // HEAD + index = Pattern::index_of(opcode); + DBGLOG("Head: lookahead[%u] = %zu", index, pos_ - (txt_ - buf_)); + if (lap_.size() <= index) + lap_.resize(index + 1, -1); + lap_[index] = static_cast(pos_ - (txt_ - buf_)); // mind the gap + ++pc; + continue; +#if !defined(WITH_NO_INDENT) + case 0xFF00 | Pattern::META_DED: + if (ded_ > 0) + { + index = Pattern::index_of(opcode); + DBGLOG("Dedent ded = %zu", ded_); // unconditional dedent matching \j + nul = true; + pc = pat_->opc_ + index; + continue; + } +#endif + } + if (c1 == EOF) + break; + int c0 = c1; + c1 = get(); + DBGLOG("Get: c1 = %d", c1); + Pattern::Index back = Pattern::Const::IMAX; // where to jump back to (backtrack on meta transitions) + Pattern::Index la; + index = Pattern::Const::IMAX; + while (true) + { + if (Pattern::is_opcode_meta(opcode) && (index == Pattern::Const::IMAX || back == Pattern::Const::IMAX)) + { + // we no longer have to pass through all if index and back are set + switch (opcode >> 16) + { + case 0xFF00: // TAKE + cap_ = Pattern::index_of(opcode); + DBGLOG("Take: cap = %zu", cap_); + cur_ = pos_; + if (c1 != EOF) + --cur_; // must unget one char + opcode = *++pc; + continue; + case 0xFF7E: // TAIL + la = Pattern::index_of(opcode); + DBGLOG("Tail: %u", la); + if (lap_.size() > la && lap_[la] >= 0) + cur_ = txt_ - buf_ + static_cast(lap_[la]); // mind the (new) gap + opcode = *++pc; + continue; + case 0xFF7F: // HEAD + opcode = *++pc; + continue; +#if !defined(WITH_NO_INDENT) + case 0xFF00 | Pattern::META_DED: + DBGLOG("DED? %d", c1); + if (index == Pattern::Const::IMAX && back == Pattern::Const::IMAX && bol && dedent()) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_IND: + DBGLOG("IND? %d", c1); + if (index == Pattern::Const::IMAX && back == Pattern::Const::IMAX && bol && indent()) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_UND: + DBGLOG("UND"); + if (mrk_) + index = Pattern::index_of(opcode); + mrk_ = false; + ded_ = 0; + opcode = *++pc; + continue; +#endif + case 0xFF00 | Pattern::META_EOB: + DBGLOG("EOB? %d", c1); + if (index == Pattern::Const::IMAX && c1 == EOF) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_BOB: + DBGLOG("BOB? %d", at_bob()); + if (index == Pattern::Const::IMAX && at_bob()) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_EOL: + DBGLOG("EOL? %d", c1); + if (index == Pattern::Const::IMAX && (c1 == EOF || c1 == '\n')) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_BOL: + DBGLOG("BOL? %d", bol); + if (index == Pattern::Const::IMAX && bol) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_EWE: + DBGLOG("EWE? %d %d %d", c0, c1, isword(c0) && !isword(c1)); + if (index == Pattern::Const::IMAX && isword(c0) && !isword(c1)) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_BWE: + DBGLOG("BWE? %d %d %d", c0, c1, !isword(c0) && isword(c1)); + if (index == Pattern::Const::IMAX && !isword(c0) && isword(c1)) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_EWB: + DBGLOG("EWB? %d", at_eow()); + if (index == Pattern::Const::IMAX && at_eow()) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_BWB: + DBGLOG("BWB? %d", at_bow()); + if (index == Pattern::Const::IMAX && at_bow()) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_NWE: + DBGLOG("NWE? %d %d %d", c0, c1, isword(c0) == isword(c1)); + if (index == Pattern::Const::IMAX && isword(c0) == isword(c1)) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + case 0xFF00 | Pattern::META_NWB: + DBGLOG("NWB? %d %d", at_bow(), at_eow()); + if (index == Pattern::Const::IMAX && !at_bow() && !at_eow()) + index = Pattern::index_of(opcode); + opcode = *++pc; + continue; + } + } + if (index == Pattern::Const::IMAX) + { + if (back != Pattern::Const::IMAX) + { + pc = pat_->opc_ + back; + opcode = *pc; + } + break; + } + DBGLOG("Backtrack: pc = %u", index); + if (back == Pattern::Const::IMAX) + back = static_cast(pc - pat_->opc_); + pc = pat_->opc_ + index; + opcode = *pc; + index = Pattern::Const::IMAX; + } + if (c1 == EOF) + break; + } + else + { + if (c1 == EOF) + break; + c1 = get(); + DBGLOG("Get: c1 = %d", c1); + if (c1 == EOF) + break; + } + Pattern::Opcode lo = c1 << 24; + Pattern::Opcode hi = lo | 0x00FFFFFF; +unrolled: + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + if (hi < opcode || lo > (opcode << 8)) + { + opcode = *++pc; + goto unrolled; + } + } + } + } + } + } + } + } + index = Pattern::index_of(opcode); + if (index == Pattern::Const::IMAX) + break; + if (index == 0 && cap_ == 0) // failed to match so far, set cur_ to move forward from cur_ + 1 with FIND advance() + cur_ = pos_; + pc = pat_->opc_ + index; + } + } +#if !defined(WITH_NO_INDENT) + if (mrk_ && cap_ != Const::EMPTY) + { + if (col_ > 0 && (tab_.empty() || tab_.back() < col_)) + { + DBGLOG("Set new stop: tab_[%zu] = %zu", tab_.size(), col_); + tab_.push_back(col_); + } + else if (!tab_.empty() && tab_.back() > col_) + { + size_t n; + for (n = tab_.size() - 1; n > 0; --n) + if (tab_.at(n - 1) <= col_) + break; + ded_ += tab_.size() - n; + DBGLOG("Dedents: ded = %zu tab_ = %zu", ded_, tab_.size()); + tab_.resize(n); + if (n > 0) + tab_.back() = col_; // adjust stop when indents are not aligned (Python would give an error) + } + } + if (ded_ > 0) + { + DBGLOG("Dedents: ded = %zu", ded_); + if (col_ == 0 && bol) + { + ded_ += tab_.size(); + tab_.resize(0); + DBGLOG("Rescan for pending dedents: ded = %zu", ded_); + pos_ = ind_; + bol = false; // avoid looping, match \j exactly + goto redo; + } + --ded_; + } +#endif + if (method == Const::SPLIT) + { + DBGLOG("Split: len = %zu cap = %zu cur = %zu pos = %zu end = %zu txt-buf = %zu eob = %d got = %d", len_, cap_, cur_, pos_, end_, txt_-buf_, (int)eof_, got_); + if (cap_ == 0 || (cur_ == static_cast(txt_ - buf_) && !at_bob())) + { + if (!hit_end() && (txt_ + len_ < buf_ + end_ || peek() != EOF)) + { + ++len_; + DBGLOG("Split continue: len = %zu", len_); + set_current(++cur_); + goto find; + } + if (got_ != Const::EOB) + { + cap_ = Const::EMPTY; + set_current(pos_); + got_ = Const::EOB; + } + DBGLOG("Split at eof: cap = %zu txt = '%s' len = %zu", cap_, std::string(txt_, len_).c_str(), len_); + DBGLOG("END Matcher::match()"); + return cap_; + } + if (cur_ == 0 && at_bob() && at_end()) + cap_ = Const::EMPTY; + set_current(cur_); + DBGLOG("Split: txt = '%s' len = %zu", std::string(txt_, len_).c_str(), len_); + DBGLOG("END Matcher::match()"); + return cap_; + } + if (cap_ == 0) + { + if (method == Const::FIND && !at_end()) + { + if (pos_ == cur_ + 1) // early fail after one non-matching char, i.e. no META executed + { + if (advance()) + { + txt_ = buf_ + cur_; + goto find; + } + } + else if (pos_ > cur_) // we didn't fail on META alone + { + if (advance()) + goto scan; + } + txt_ = buf_ + cur_; + } + else + { + cur_ = txt_ - buf_; // no match: backup to begin of unmatched text + } + } + len_ = cur_ - (txt_ - buf_); + if (len_ == 0 && !nul) + { + DBGLOG("Empty or no match cur = %zu pos = %zu end = %zu", cur_, pos_, end_); + pos_ = cur_; + if (at_end()) + { + set_current(cur_); + DBGLOG("Reject empty match at EOF"); + cap_ = 0; + } + else if (method == Const::FIND) + { + DBGLOG("Reject empty match and continue?"); + set_current(++cur_); // skip one char to keep searching + if (cap_ == 0 || !opt_.N || (!bol && c1 == '\n')) // allow FIND with "N" to match an empty line, with ^$ etc. + goto scan; + DBGLOG("Accept empty match"); + } + else + { + set_current(cur_); + DBGLOG("Reject empty match"); + cap_ = 0; + } + } + else if (len_ == 0 && cur_ == end_) + { + DBGLOG("Hit end: got = %d", got_); + if (cap_ == Const::EMPTY && !opt_.A) + cap_ = 0; + } + else + { + set_current(cur_); + if (len_ > 0) + { + if (cap_ == Const::EMPTY && !opt_.A) + { + DBGLOG("Ignore accept and continue: len = %zu", len_); + len_ = 0; + if (method != Const::MATCH) + goto scan; + cap_ = 0; + } + } + } + DBGLOG("Return: cap = %zu txt = '%s' len = %zu pos = %zu got = %d", cap_, std::string(txt_, len_).c_str(), len_, pos_, got_); + DBGLOG("END match()"); + return cap_; + } /// Returns true if able to advance to next possible match bool advance() /// @returns true if possible match found ; +#if !defined(WITH_NO_INDENT) /// Update indentation column counter for indent() and dedent(). inline void newline() { @@ -382,88 +804,12 @@ class Matcher : public PatternMatcher { newline(); return !tab_.empty() && tab_.back() > col_; } +#endif /// Boyer-Moore preprocessing of the given pattern pat of length len, generates bmd_ > 0 and bms_[] shifts. void boyer_moore_init( const char *pat, ///< pattern string size_t len) ///< nonzero length of the pattern string, should be less than 256 - { - // Relative frquency table of English letters, source code, and UTF-8 bytes - static unsigned char freq[256] = "\0\0\0\0\0\0\0\0\0\73\4\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\73\70\70\1\1\2\2\70\70\70\2\2\70\70\70\2\3\3\3\3\3\3\3\3\3\3\70\70\70\70\70\70\2\35\14\24\26\37\20\17\30\33\11\12\25\22\32\34\15\7\27\31\36\23\13\21\10\16\6\70\1\70\2\70\1\67\46\56\60\72\52\51\62\65\43\44\57\54\64\66\47\41\61\63\71\55\45\53\42\50\40\70\2\70\2\0\47\47\47\47\47\47\47\47\47\47\47\47\47\47\47\47\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\44\44\44\44\44\44\44\44\44\44\44\44\44\44\44\44\0\0\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\46\56\56\56\56\56\56\56\56\56\56\56\56\46\56\56\73\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; - size_t i; - for (i = 0; i < 256; ++i) - bms_[i] = static_cast(len); - size_t sum = 0; - lcp_ = 0; - for (i = 0; i < len; ++i) - { - uint8_t pch = static_cast(pat[i]); - bms_[pch] = static_cast(len - i - 1); - sum += bms_[pch]; - if (freq[static_cast(pat[lcp_])] > freq[pch]) - lcp_ = i; - } - size_t j; - for (i = len - 1, j = i; j > 0; --j) - if (pat[j - 1] == pat[i]) - break; - bmd_ = i - j + 1; - sum /= len; - uint8_t fch = freq[static_cast(pat[lcp_])]; - if (sum > 1 && fch > 35 && (sum > 3 || fch > 48) && fch + sum > 48) - lcp_ = 0xffff; - } - /// Returns true when match is predicted, based on s[0..3..e-1] (e >= s + 4). - static inline bool predict_match(const Pattern::Pred pmh[], const char *s, size_t n) - { - Pattern::Hash h = static_cast(*s); - if (pmh[h] & 1) - return false; - h = Pattern::hash(h, static_cast(*++s)); - if (pmh[h] & 2) - return false; - h = Pattern::hash(h, static_cast(*++s)); - if (pmh[h] & 4) - return false; - h = Pattern::hash(h, static_cast(*++s)); - if (pmh[h] & 8) - return false; - Pattern::Pred m = 16; - const char *e = s + n - 3; - while (++s < e) - { - h = Pattern::hash(h, static_cast(*s)); - if (pmh[h] & m) - return false; - m <<= 1; - } - return true; - } - /// Returns zero when match is predicted or nonzero shift value, based on s[0..3]. - static inline size_t predict_match(const Pattern::Pred pma[], const char *s) - { - uint8_t b0 = s[0]; - uint8_t b1 = s[1]; - uint8_t b2 = s[2]; - uint8_t b3 = s[3]; - Pattern::Hash h1 = Pattern::hash(b0, b1); - Pattern::Hash h2 = Pattern::hash(h1, b2); - Pattern::Hash h3 = Pattern::hash(h2, b3); - Pattern::Pred a0 = pma[b0]; - Pattern::Pred a1 = pma[h1]; - Pattern::Pred a2 = pma[h2]; - Pattern::Pred a3 = pma[h3]; - Pattern::Pred p = (a0 & 0xc0) | (a1 & 0x30) | (a2 & 0x0c) | (a3 & 0x03); - Pattern::Pred m = (p >> 5) | (p >> 3) | (p >> 1) | p; - if (m != 0xff) - return 0; - if ((pma[b1] & 0xc0) != 0xc0) - return 1; - if ((pma[b2] & 0xc0) != 0xc0) - return 2; - if ((pma[b3] & 0xc0) != 0xc0) - return 3; - return 4; - } + ; size_t ded_; ///< dedent count size_t col_; ///< column counter for indent matching, updated by newline(), indent(), and dedent() Stops tab_; ///< tab stops set by detecting indent margins diff --git a/include/reflex/pattern.h b/include/reflex/pattern.h index ac80b9466..be69c6b0e 100644 --- a/include/reflex/pattern.h +++ b/include/reflex/pattern.h @@ -319,6 +319,58 @@ class Pattern { { return wms_; } + /// Returns true when match is predicted, based on s[0..3..e-1] (e >= s + 4). + static inline bool predict_match(const Pattern::Pred pmh[], const char *s, size_t n) + { + Pattern::Hash h = static_cast(*s); + if (pmh[h] & 1) + return false; + h = Pattern::hash(h, static_cast(*++s)); + if (pmh[h] & 2) + return false; + h = Pattern::hash(h, static_cast(*++s)); + if (pmh[h] & 4) + return false; + h = Pattern::hash(h, static_cast(*++s)); + if (pmh[h] & 8) + return false; + Pattern::Pred m = 16; + const char *e = s + n - 3; + while (++s < e) + { + h = Pattern::hash(h, static_cast(*s)); + if (pmh[h] & m) + return false; + m <<= 1; + } + return true; + } + /// Returns zero when match is predicted or nonzero shift value, based on s[0..3]. + static inline size_t predict_match(const Pattern::Pred pma[], const char *s) + { + uint8_t b0 = s[0]; + uint8_t b1 = s[1]; + uint8_t b2 = s[2]; + uint8_t b3 = s[3]; + Pattern::Hash h1 = Pattern::hash(b0, b1); + Pattern::Hash h2 = Pattern::hash(h1, b2); + Pattern::Hash h3 = Pattern::hash(h2, b3); + Pattern::Pred a0 = pma[b0]; + Pattern::Pred a1 = pma[h1]; + Pattern::Pred a2 = pma[h2]; + Pattern::Pred a3 = pma[h3]; + Pattern::Pred p = (a0 & 0xc0) | (a1 & 0x30) | (a2 & 0x0c) | (a3 & 0x03); + Pattern::Pred m = (p >> 5) | (p >> 3) | (p >> 1) | p; + if (m != 0xff) + return 0; + if ((pma[b1] & 0xc0) != 0xc0) + return 1; + if ((pma[b2] & 0xc0) != 0xc0) + return 2; + if ((pma[b3] & 0xc0) != 0xc0) + return 3; + return 4; + } protected: /// Throw an error. virtual void error( diff --git a/lib/matcher.cpp b/lib/matcher.cpp index cb38c93e2..6aba48f59 100644 --- a/lib/matcher.cpp +++ b/lib/matcher.cpp @@ -36,434 +36,35 @@ #include -// minimal anchor support for greater speed, disables \i, \j, \k -// #define WITH_MINIMAL - -// minimal length of the prefix pattern for Boyer-Moore search -#define BOYER_MOORE_MIN_LENGTH 9 - namespace reflex { -size_t Matcher::match(Method method) +/// Boyer-Moore preprocessing of the given pattern pat of length len, generates bmd_ > 0 and bms_[] shifts. +void Matcher::boyer_moore_init(const char *pat, size_t len) { - DBGLOG("BEGIN Matcher::match()"); - reset_text(); - len_ = 0; // split text length starts with 0 -scan: - txt_ = buf_ + cur_; -#if !defined(WITH_MINIMAL) - mrk_ = false; - ind_ = pos_; // ind scans input in buf[] in newline() up to pos - 1 - col_ = 0; // count columns for indent matching - if (ded_ == 0 && hit_end() && tab_.empty()) - { - if (method == Const::SPLIT && !at_bob() && cap_ != 0 && cap_ != Const::EMPTY) - { - cap_ = Const::EMPTY; - DBGLOG("Split empty at end, cap = %zu", cap_); - DBGLOG("END Matcher::match()"); - return cap_; - } - cap_ = 0; - DBGLOG("END Matcher::match()"); - return 0; - } -#endif -find: - int c1 = got_; - bool bol = at_bol(); - if (pat_->fsm_) - fsm_.c1 = c1; -redo: - lap_.resize(0); - cap_ = 0; - bool nul = method == Const::MATCH; - if (pat_->fsm_) - { - DBGLOG("FSM code %p", pat_->fsm_); - fsm_.bol = bol; - fsm_.nul = nul; - pat_->fsm_(*this); - nul = fsm_.nul; - c1 = fsm_.c1; - } - else if (pat_->opc_) - { - const Pattern::Opcode *pc = pat_->opc_; - while (true) - { - Pattern::Opcode opcode = *pc; - DBGLOG("Fetch: code[%zu] = 0x%08X", pc - pat_->opc_, opcode); - Pattern::Index index; - if (Pattern::is_opcode_halt(opcode)) - break; - if (Pattern::is_opcode_meta(opcode)) - { - switch (opcode >> 16) - { - case 0xFF00: // TAKE - cap_ = Pattern::index_of(opcode); - DBGLOG("Take: cap = %zu", cap_); - cur_ = pos_; - ++pc; - continue; - case 0xFF7E: // TAIL - index = Pattern::index_of(opcode); - DBGLOG("Tail: %u", index); - if (lap_.size() > index && lap_[index] >= 0) - cur_ = txt_ - buf_ + static_cast(lap_[index]); // mind the (new) gap - ++pc; - continue; - case 0xFF7F: // HEAD - index = Pattern::index_of(opcode); - DBGLOG("Head: lookahead[%u] = %zu", index, pos_ - (txt_ - buf_)); - if (lap_.size() <= index) - lap_.resize(index + 1, -1); - lap_[index] = static_cast(pos_ - (txt_ - buf_)); // mind the gap - ++pc; - continue; -#if !defined(WITH_MINIMAL) - case 0xFF00 | Pattern::META_DED: - if (ded_ > 0) - { - index = Pattern::index_of(opcode); - DBGLOG("Dedent ded = %zu", ded_); // unconditional dedent matching \j - nul = true; - pc = pat_->opc_ + index; - continue; - } -#endif - } - if (c1 == EOF) - break; - int c0 = c1; - c1 = get(); - DBGLOG("Get: c1 = %d", c1); - Pattern::Index back = Pattern::Const::IMAX; // where to jump back to (backtrack on meta transitions) - Pattern::Index la; - index = Pattern::Const::IMAX; - while (true) - { - if (Pattern::is_opcode_meta(opcode) && (index == Pattern::Const::IMAX || back == Pattern::Const::IMAX)) - { - // we no longer have to pass through all if index and back are set - switch (opcode >> 16) - { - case 0xFF00: // TAKE - cap_ = Pattern::index_of(opcode); - DBGLOG("Take: cap = %zu", cap_); - cur_ = pos_; - if (c1 != EOF) - --cur_; // must unget one char - opcode = *++pc; - continue; - case 0xFF7E: // TAIL - la = Pattern::index_of(opcode); - DBGLOG("Tail: %u", la); - if (lap_.size() > la && lap_[la] >= 0) - cur_ = txt_ - buf_ + static_cast(lap_[la]); // mind the (new) gap - opcode = *++pc; - continue; - case 0xFF7F: // HEAD - opcode = *++pc; - continue; -#if !defined(WITH_MINIMAL) - case 0xFF00 | Pattern::META_DED: - DBGLOG("DED? %d", c1); - if (index == Pattern::Const::IMAX && back == Pattern::Const::IMAX && bol && dedent()) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_IND: - DBGLOG("IND? %d", c1); - if (index == Pattern::Const::IMAX && back == Pattern::Const::IMAX && bol && indent()) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_UND: - DBGLOG("UND"); - if (mrk_) - index = Pattern::index_of(opcode); - mrk_ = false; - ded_ = 0; - opcode = *++pc; - continue; -#endif - case 0xFF00 | Pattern::META_EOB: - DBGLOG("EOB? %d", c1); - if (index == Pattern::Const::IMAX && c1 == EOF) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_BOB: - DBGLOG("BOB? %d", at_bob()); - if (index == Pattern::Const::IMAX && at_bob()) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_EOL: - DBGLOG("EOL? %d", c1); - if (index == Pattern::Const::IMAX && (c1 == EOF || c1 == '\n')) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_BOL: - DBGLOG("BOL? %d", bol); - if (index == Pattern::Const::IMAX && bol) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; -#if !defined(WITH_MINIMAL) - case 0xFF00 | Pattern::META_EWE: - DBGLOG("EWE? %d %d %d", c0, c1, isword(c0) && !isword(c1)); - if (index == Pattern::Const::IMAX && isword(c0) && !isword(c1)) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_BWE: - DBGLOG("BWE? %d %d %d", c0, c1, !isword(c0) && isword(c1)); - if (index == Pattern::Const::IMAX && !isword(c0) && isword(c1)) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_EWB: - DBGLOG("EWB? %d", at_eow()); - if (index == Pattern::Const::IMAX && at_eow()) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_BWB: - DBGLOG("BWB? %d", at_bow()); - if (index == Pattern::Const::IMAX && at_bow()) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_NWE: - DBGLOG("NWE? %d %d %d", c0, c1, isword(c0) == isword(c1)); - if (index == Pattern::Const::IMAX && isword(c0) == isword(c1)) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; - case 0xFF00 | Pattern::META_NWB: - DBGLOG("NWB? %d %d", at_bow(), at_eow()); - if (index == Pattern::Const::IMAX && !at_bow() && !at_eow()) - index = Pattern::index_of(opcode); - opcode = *++pc; - continue; -#endif - } - } - if (index == Pattern::Const::IMAX) - { - if (back != Pattern::Const::IMAX) - { - pc = pat_->opc_ + back; - opcode = *pc; - } - break; - } - DBGLOG("Backtrack: pc = %u", index); - if (back == Pattern::Const::IMAX) - back = static_cast(pc - pat_->opc_); - pc = pat_->opc_ + index; - opcode = *pc; - index = Pattern::Const::IMAX; - } - if (c1 == EOF) - break; - } - else - { - if (c1 == EOF) - break; - c1 = get(); - DBGLOG("Get: c1 = %d", c1); - if (c1 == EOF) - break; - } - Pattern::Opcode lo = c1 << 24; - Pattern::Opcode hi = lo | 0x00FFFFFF; -unrolled: - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - if (hi < opcode || lo > (opcode << 8)) - { - opcode = *++pc; - goto unrolled; - } - } - } - } - } - } - } - } - index = Pattern::index_of(opcode); - if (index == Pattern::Const::IMAX) - break; - if (index == 0 && cap_ == 0) // failed to match so far, set cur_ to move forward from cur_ + 1 with FIND advance() - cur_ = pos_; - pc = pat_->opc_ + index; - } - } -#if !defined(WITH_MINIMAL) - if (mrk_ && cap_ != Const::EMPTY) - { - if (col_ > 0 && (tab_.empty() || tab_.back() < col_)) - { - DBGLOG("Set new stop: tab_[%zu] = %zu", tab_.size(), col_); - tab_.push_back(col_); - } - else if (!tab_.empty() && tab_.back() > col_) - { - size_t n; - for (n = tab_.size() - 1; n > 0; --n) - if (tab_.at(n - 1) <= col_) - break; - ded_ += tab_.size() - n; - DBGLOG("Dedents: ded = %zu tab_ = %zu", ded_, tab_.size()); - tab_.resize(n); - if (n > 0) - tab_.back() = col_; // adjust stop when indents are not aligned (Python would give an error) - } - } - if (ded_ > 0) - { - DBGLOG("Dedents: ded = %zu", ded_); - if (col_ == 0 && bol) - { - ded_ += tab_.size(); - tab_.resize(0); - DBGLOG("Rescan for pending dedents: ded = %zu", ded_); - pos_ = ind_; - bol = false; // avoid looping, match \j exactly - goto redo; - } - --ded_; - } -#endif - if (method == Const::SPLIT) - { - DBGLOG("Split: len = %zu cap = %zu cur = %zu pos = %zu end = %zu txt-buf = %zu eob = %d got = %d", len_, cap_, cur_, pos_, end_, txt_-buf_, (int)eof_, got_); - if (cap_ == 0 || (cur_ == static_cast(txt_ - buf_) && !at_bob())) - { - if (!hit_end() && (txt_ + len_ < buf_ + end_ || peek() != EOF)) - { - ++len_; - DBGLOG("Split continue: len = %zu", len_); - set_current(++cur_); - goto find; - } - if (got_ != Const::EOB) - { - cap_ = Const::EMPTY; - set_current(pos_); - got_ = Const::EOB; - } - DBGLOG("Split at eof: cap = %zu txt = '%s' len = %zu", cap_, std::string(txt_, len_).c_str(), len_); - DBGLOG("END Matcher::match()"); - return cap_; - } - if (cur_ == 0 && at_bob() && at_end()) - cap_ = Const::EMPTY; - set_current(cur_); - DBGLOG("Split: txt = '%s' len = %zu", std::string(txt_, len_).c_str(), len_); - DBGLOG("END Matcher::match()"); - return cap_; - } - if (cap_ == 0) - { - if (method == Const::FIND && !at_end()) - { - if (pos_ == cur_ + 1) // early fail after one non-matching char, i.e. no META executed - { - if (advance()) - { - txt_ = buf_ + cur_; - goto find; - } - } - else if (pos_ > cur_) // we didn't fail on META alone - { - if (advance()) - goto scan; - } - txt_ = buf_ + cur_; - } - else - { - cur_ = txt_ - buf_; // no match: backup to begin of unmatched text - } - } - len_ = cur_ - (txt_ - buf_); - if (len_ == 0 && !nul) + // Relative frquency table of English letters, source code, and UTF-8 bytes + static unsigned char freq[256] = "\0\0\0\0\0\0\0\0\0\73\4\0\0\4\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\73\70\70\1\1\2\2\70\70\70\2\2\70\70\70\2\3\3\3\3\3\3\3\3\3\3\70\70\70\70\70\70\2\35\14\24\26\37\20\17\30\33\11\12\25\22\32\34\15\7\27\31\36\23\13\21\10\16\6\70\1\70\2\70\1\67\46\56\60\72\52\51\62\65\43\44\57\54\64\66\47\41\61\63\71\55\45\53\42\50\40\70\2\70\2\0\47\47\47\47\47\47\47\47\47\47\47\47\47\47\47\47\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\45\44\44\44\44\44\44\44\44\44\44\44\44\44\44\44\44\0\0\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\5\46\56\56\56\56\56\56\56\56\56\56\56\56\46\56\56\73\0\0\0\0\0\0\0\0\0\0\0\0\0\0"; + size_t i; + for (i = 0; i < 256; ++i) + bms_[i] = static_cast(len); + size_t sum = 0; + lcp_ = 0; + for (i = 0; i < len; ++i) { - DBGLOG("Empty or no match cur = %zu pos = %zu end = %zu", cur_, pos_, end_); - pos_ = cur_; - if (at_end()) - { - set_current(cur_); - DBGLOG("Reject empty match at EOF"); - cap_ = 0; - } - else if (method == Const::FIND) - { - DBGLOG("Reject empty match and continue?"); - set_current(++cur_); // skip one char to keep searching - if (cap_ == 0 || !opt_.N || (!bol && c1 == '\n')) // allow FIND with "N" to match an empty line, with ^$ etc. - goto scan; - DBGLOG("Accept empty match"); - } - else - { - set_current(cur_); - DBGLOG("Reject empty match"); - cap_ = 0; - } - } - else if (len_ == 0 && cur_ == end_) - { - DBGLOG("Hit end: got = %d", got_); - if (cap_ == Const::EMPTY && !opt_.A) - cap_ = 0; - } - else - { - set_current(cur_); - if (len_ > 0) - { - if (cap_ == Const::EMPTY && !opt_.A) - { - DBGLOG("Ignore accept and continue: len = %zu", len_); - len_ = 0; - if (method != Const::MATCH) - goto scan; - cap_ = 0; - } - } + uint8_t pch = static_cast(pat[i]); + bms_[pch] = static_cast(len - i - 1); + sum += bms_[pch]; + if (freq[static_cast(pat[lcp_])] > freq[pch]) + lcp_ = i; } - DBGLOG("Return: cap = %zu txt = '%s' len = %zu pos = %zu got = %d", cap_, std::string(txt_, len_).c_str(), len_, pos_, got_); - DBGLOG("END match()"); - return cap_; + size_t j; + for (i = len - 1, j = i; j > 0; --j) + if (pat[j - 1] == pat[i]) + break; + bmd_ = i - j + 1; + sum /= len; + uint8_t fch = freq[static_cast(pat[lcp_])]; + if (sum > 1 && fch > 35 && (sum > 3 || fch > 48) && fch + sum > 48) + lcp_ = 0xffff; } // advance input cursor after mismatch to align input for next match @@ -506,7 +107,7 @@ bool Matcher::advance() { s -= min - 1; loc = s - buf_; - if (predict_match(pat_->pmh_, s, min)) + if (Pattern::predict_match(pat_->pmh_, s, min)) { set_current(loc); return true; @@ -547,7 +148,7 @@ bool Matcher::advance() { s -= 2; loc = s - buf_; - if (s + 4 > e || predict_match(pma, s) == 0) + if (s + 4 > e || Pattern::predict_match(pma, s) == 0) { set_current(loc); return true; @@ -587,7 +188,7 @@ bool Matcher::advance() { s -= 1; loc = s - buf_; - if (s + 4 > e || predict_match(pma, s) == 0) + if (s + 4 > e || Pattern::predict_match(pma, s) == 0) { set_current(loc); return true; @@ -622,7 +223,7 @@ bool Matcher::advance() set_current(loc); return true; } - size_t k = predict_match(pma, s); + size_t k = Pattern::predict_match(pma, s); if (k == 0) { set_current(loc); @@ -685,12 +286,12 @@ bool Matcher::advance() return true; if (min >= 4) { - if (predict_match(pat_->pmh_, &buf_[loc + len], min)) + if (Pattern::predict_match(pat_->pmh_, &buf_[loc + len], min)) return true; } else { - if (predict_match(pat_->pma_, &buf_[loc + len]) == 0) + if (Pattern::predict_match(pat_->pma_, &buf_[loc + len]) == 0) return true; } } @@ -735,12 +336,12 @@ bool Matcher::advance() return true; if (min >= 4) { - if (predict_match(pat_->pmh_, &buf_[loc + len], min)) + if (Pattern::predict_match(pat_->pmh_, &buf_[loc + len], min)) return true; } else { - if (predict_match(pat_->pma_, &buf_[loc + len]) == 0) + if (Pattern::predict_match(pat_->pma_, &buf_[loc + len]) == 0) return true; } } diff --git a/lib/pattern.cpp b/lib/pattern.cpp index 1cb9c34ac..9d34fb4cf 100644 --- a/lib/pattern.cpp +++ b/lib/pattern.cpp @@ -2665,7 +2665,7 @@ void Pattern::predict_match_dfa(State& start) { if (pmh_[i] != 0xFF) { - if (isprint(i)) + if (isprint(pmh_[i])) DBGLOGN("pmh['%c'] = %2x\n", i, pmh_[i]); else DBGLOGN("pmh[%3d] = %2x\n", i, pmh_[i]); @@ -2675,7 +2675,7 @@ void Pattern::predict_match_dfa(State& start) { if (pma_[i] != 0xFF) { - if (isprint(i)) + if (isprint(pma_[i])) DBGLOGN("pma['%c'] = %2x\n", i, pma_[i]); else DBGLOGN("pma[%3d] = %2x\n", i, pma_[i]); @@ -2860,5 +2860,4 @@ void Pattern::write_namespace_close(FILE *file) const ::fprintf(file, "} // namespace %s\n\n", s.substr(i).c_str()); } - } // namespace reflex diff --git a/src/reflex.cpp b/src/reflex.cpp index c68768866..07af649fd 100644 --- a/src/reflex.cpp +++ b/src/reflex.cpp @@ -79,6 +79,7 @@ static const char *options_table[] = { "graphs_file", "header_file", "include", + "indent", "input", "interactive", "lex", @@ -94,6 +95,7 @@ static const char *options_table[] = { "nodefault", "nodotall", "nofreespace", + "noindent", "noinput", "noline", "nomain", @@ -1860,6 +1862,8 @@ void Reflex::write_class() if (!out->good()) return; write_banner("REGEX MATCHER"); + if (!options["noindent"].empty()) + *out << "#define WITH_NO_INDENT\n"; *out << "#include <" << library->file << ">" << std::endl; const char *matcher = library->matcher; std::string lex = options["lex"]; diff --git a/src/reflex.h b/src/reflex.h index e3e559481..eb11b3b9e 100644 --- a/src/reflex.h +++ b/src/reflex.h @@ -66,7 +66,7 @@ #endif // DO NOT ALTER THIS LINE: the makemake.sh script updates the version -#define REFLEX_VERSION "1.5.5" +#define REFLEX_VERSION "1.5.6" /// RE/flex scanner generator class, a variation of the classic "lex" tool to generate scanners. /**