diff --git a/README.md b/README.md index ed4c927ad..32b9ebce7 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,8 @@ Features - Compatible with Flex to eliminate a learning curve, making a transition to RE/flex frustration-free. -- Works with Bison and supports reentrant, bison-bridge and bison-locations. +- Works with Bison and supports reentrant, bison-bridge, bison-locations and + Bison 3.0 C++ interface `%skeleton "lalr1.cc"`. - Extensive documentation in the online [User Guide][manual-url]. - Adds Unicode support with Unicode property matching `\p{C}` and C++11, Java, C#, and Python Unicode properties for identifier name matching. @@ -408,6 +409,7 @@ Changelog - Mar 7, 2018: 1.0.3 fixed `--namespace` and `%option namespace` - Apr 22, 2018: 1.0.4 updated to Unicode 10, cleaned up code to remove tool warnings - Jun 29, 2018: 1.0.5 updated `--namespace` for options `--fast` and `--full` to support the generation of multiple optimized lexers placed in namespaces. +- Jul 9, 2018: 1.0.6 added `--bison-cc` option to generate scanners for Bison 3.0 `%skeleton "lalr1.cc"` C++ parsers, included two examples `flexexample9` and `reflexexample9` to demo this feature. [logo-url]: https://www.genivia.com/images/reflex-logo.png [reflex-url]: https://www.genivia.com/reflex.html diff --git a/bin/reflex.exe b/bin/reflex.exe index 8e3a3f5b7..95e77c216 100755 Binary files a/bin/reflex.exe and b/bin/reflex.exe differ diff --git a/doc/html/abslexer_8h.html b/doc/html/abslexer_8h.html index 39d034a1a..0cfe5387b 100644 --- a/doc/html/abslexer_8h.html +++ b/doc/html/abslexer_8h.html @@ -21,7 +21,7 @@
abslexer.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -102,7 +102,7 @@ +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/absmatcher_8h.html b/doc/html/absmatcher_8h.html index e964912bb..0a055b6c5 100644 --- a/doc/html/absmatcher_8h.html +++ b/doc/html/absmatcher_8h.html @@ -21,7 +21,7 @@
absmatcher.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -250,7 +250,7 @@

Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/annotated.html b/doc/html/annotated.html index 913fce130..7adc799db 100644 --- a/doc/html/annotated.html +++ b/doc/html/annotated.html @@ -21,7 +21,7 @@
Class List

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -103,7 +103,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/bits_8h.html b/doc/html/bits_8h.html index a8e653872..6990cae95 100644 --- a/doc/html/bits_8h.html +++ b/doc/html/bits_8h.html @@ -21,7 +21,7 @@
bits.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -101,7 +101,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/boostmatcher_8h.html b/doc/html/boostmatcher_8h.html index deebb1e81..008a65654 100644 --- a/doc/html/boostmatcher_8h.html +++ b/doc/html/boostmatcher_8h.html @@ -21,7 +21,7 @@
boostmatcher.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -102,7 +102,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/class_reflex-members.html b/doc/html/class_reflex-members.html index 010dac0a4..fcbe92b4f 100644 --- a/doc/html/class_reflex-members.html +++ b/doc/html/class_reflex-members.html @@ -21,7 +21,7 @@
Member List

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -140,7 +140,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/class_reflex.html b/doc/html/class_reflex.html index 9bd344b7d..510d43d1b 100644 --- a/doc/html/class_reflex.html +++ b/doc/html/class_reflex.html @@ -21,7 +21,7 @@
Reflex Class Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -2392,7 +2392,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/classes.html b/doc/html/classes.html index f15f80c92..4a461b777 100644 --- a/doc/html/classes.html +++ b/doc/html/classes.html @@ -21,7 +21,7 @@
Class Index

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -90,7 +90,7 @@
+Converted on Mon Jul 9 2018 15:13:47 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 135553da8..b0d7c52c6 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -102,7 +102,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 406416e85..0f976b2dc 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1459,7 +1459,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 38fe98af2..f17f7fa9d 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -64,7 +64,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 49d289354..2a762a06c 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -295,7 +295,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 3cdefa8df..6de7aceb9 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -146,7 +146,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 03f665cd0..d0e31d43f 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -2656,7 +2656,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 ed4afc4ce..5a590ef0d 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -74,7 +74,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 e914c62bd..c93c80593 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -539,7 +539,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 c9ddb71c4..f2a796d1f 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -69,7 +69,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 7bd3417d2..04e34b948 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -367,7 +367,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 90cb8d002..98b9a49a7 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -105,7 +105,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_bits.html b/doc/html/classreflex_1_1_bits.html index e26e28b63..99c8725d3 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1659,7 +1659,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 1dbfd4b54..7def1fc63 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -169,7 +169,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 d89a8e2bf..eae005cc4 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1003,7 +1003,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 202e98d60..1e40c4b61 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -172,7 +172,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 677385ad0..7a756e10b 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -599,7 +599,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 4b8665a5c..9b88975de 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -172,7 +172,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 355918dc8..6d2f9d8db 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -646,7 +646,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 63196ae32..ef3063007 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -118,7 +118,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 43b56fb9f..6fae59c29 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -849,7 +849,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 af4f010d6..6901b7a14 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -67,7 +67,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 936149d7f..4b5de8529 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -319,7 +319,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 4b781646a..7b72689ff 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -104,7 +104,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_input.html b/doc/html/classreflex_1_1_input.html index 13a0ddd9c..976ba3cf8 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1491,7 +1491,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 3c5f18f4f..e94db4143 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -204,7 +204,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_matcher.html b/doc/html/classreflex_1_1_matcher.html index 6a72c3e14..91ae980e5 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1906,7 +1906,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 51740f9e6..ab5bddeac 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -103,7 +103,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 5fb94f4cc..6ee49ce9b 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1049,7 +1049,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 6d943407a..ae69fed21 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -176,7 +176,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_pattern.html b/doc/html/classreflex_1_1_pattern.html index d78ef5933..5389d8966 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -3335,7 +3335,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 902064844..f3d8271d7 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -160,7 +160,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 97052849b..7d60d417e 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1024,7 +1024,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 814634b1d..a75aa0659 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -63,7 +63,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 8761e3758..987973332 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -144,7 +144,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 6403ac9cd..55aac0263 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -89,7 +89,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1_ranges.html b/doc/html/classreflex_1_1_ranges.html index e30e3ccdc..9193d9282 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1104,7 +1104,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 071d60c21..df1a82fdc 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -175,7 +175,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 759ee07bb..ed54924d2 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -787,7 +787,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 5207e4574..8b4a30886 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -171,7 +171,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 75d82b994..97abc2815 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1009,7 +1009,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 8992737c3..b9c278a50 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -175,7 +175,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 d8c9f68b2..c9f71b6b8 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -833,7 +833,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 1408de051..350c11896 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -66,7 +66,7 @@
+Converted on Mon Jul 9 2018 15:13:41 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 3c9da3daa..cd389475e 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -198,7 +198,7 @@

Member Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 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 7d40c0a70..a9b73bf70 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -82,7 +82,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/classreflex_1_1regex__error.html b/doc/html/classreflex_1_1regex__error.html index 9bedf3073..bd22c6dce 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 Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -685,7 +685,7 @@

Member Data Documentation

+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/convert_8h.html b/doc/html/convert_8h.html index 27623a2c5..df666f059 100644 --- a/doc/html/convert_8h.html +++ b/doc/html/convert_8h.html @@ -21,7 +21,7 @@
convert.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -146,7 +146,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/debug_8h.html b/doc/html/debug_8h.html index dde2fabfe..5583a00eb 100644 --- a/doc/html/debug_8h.html +++ b/doc/html/debug_8h.html @@ -21,7 +21,7 @@
debug.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -223,7 +223,7 @@

Example

+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/dir_000002_000000.html b/doc/html/dir_000002_000000.html index 8166db38e..c04b0e593 100644 --- a/doc/html/dir_000002_000000.html +++ b/doc/html/dir_000002_000000.html @@ -21,7 +21,7 @@
src -> include Relation

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 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 / pattern.h
reflex.hreflex / utf8.h
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html index 86c5790e4..f4b6db60b 100644 --- a/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html +++ b/doc/html/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -21,7 +21,7 @@
src Directory Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -76,7 +76,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html b/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html index ed3a10273..ee2c4d25f 100644 --- a/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html +++ b/doc/html/dir_bb8a7beb94a1b7afd52842cbf47ddd3e.html @@ -21,7 +21,7 @@
reflex Directory Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -117,7 +117,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html index 971427035..1913a6048 100644 --- a/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html +++ b/doc/html/dir_d44c64559bbebec7f509842c48db8b23.html @@ -21,7 +21,7 @@
include Directory Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -62,7 +62,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/error_8h.html b/doc/html/error_8h.html index 237eb2d5b..48c3434f3 100644 --- a/doc/html/error_8h.html +++ b/doc/html/error_8h.html @@ -21,7 +21,7 @@
error.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -109,7 +109,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/files.html b/doc/html/files.html index e803afec4..ffcae5e23 100644 --- a/doc/html/files.html +++ b/doc/html/files.html @@ -21,7 +21,7 @@
File List

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -77,7 +77,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/flexlexer_8h.html b/doc/html/flexlexer_8h.html index e24cbbce0..d47cb9b01 100644 --- a/doc/html/flexlexer_8h.html +++ b/doc/html/flexlexer_8h.html @@ -21,7 +21,7 @@
flexlexer.h File Reference

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -1062,7 +1062,7 @@

Function Documentation

+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/functions.html b/doc/html/functions.html index fd46866ce..39d67fe01 100644 --- a/doc/html/functions.html +++ b/doc/html/functions.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -164,7 +164,7 @@

- a -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_0x7e.html b/doc/html/functions_0x7e.html index 71d0a793e..452c83519 100644 --- a/doc/html/functions_0x7e.html +++ b/doc/html/functions_0x7e.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -106,7 +106,7 @@

- ~ -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_b.html b/doc/html/functions_b.html index 8a1dc63fc..7c63a85c6 100644 --- a/doc/html/functions_b.html +++ b/doc/html/functions_b.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -152,7 +152,7 @@

- b -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_c.html b/doc/html/functions_c.html index ae332728d..48ced4721 100644 --- a/doc/html/functions_c.html +++ b/doc/html/functions_c.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -250,7 +250,7 @@

- c -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_d.html b/doc/html/functions_d.html index f641702b8..6a36220bf 100644 --- a/doc/html/functions_d.html +++ b/doc/html/functions_d.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -124,7 +124,7 @@

- d -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_e.html b/doc/html/functions_e.html index d72822bc4..963020b73 100644 --- a/doc/html/functions_e.html +++ b/doc/html/functions_e.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -182,7 +182,7 @@

- e -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_enum.html b/doc/html/functions_enum.html index 1b72acac2..869b6ee23 100644 --- a/doc/html/functions_enum.html +++ b/doc/html/functions_enum.html @@ -21,7 +21,7 @@
Class Members - Enumerations

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -68,7 +68,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_eval.html b/doc/html/functions_eval.html index 413af293f..a5a148534 100644 --- a/doc/html/functions_eval.html +++ b/doc/html/functions_eval.html @@ -21,7 +21,7 @@
Class Members - Enumerator

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -107,7 +107,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_f.html b/doc/html/functions_f.html index a245fd2e8..1c4ac2e2d 100644 --- a/doc/html/functions_f.html +++ b/doc/html/functions_f.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -239,7 +239,7 @@

- f -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func.html b/doc/html/functions_func.html index 65f0c7cc3..02980ceee 100644 --- a/doc/html/functions_func.html +++ b/doc/html/functions_func.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -140,7 +140,7 @@

- a -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_0x7e.html b/doc/html/functions_func_0x7e.html index b37d20257..fa9d49201 100644 --- a/doc/html/functions_func_0x7e.html +++ b/doc/html/functions_func_0x7e.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -102,7 +102,7 @@

- ~ -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_b.html b/doc/html/functions_func_b.html index 6e2b051f0..4aa9abded 100644 --- a/doc/html/functions_func_b.html +++ b/doc/html/functions_func_b.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -120,7 +120,7 @@

- b -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_c.html b/doc/html/functions_func_c.html index d1f73ebbf..d6efc1504 100644 --- a/doc/html/functions_func_c.html +++ b/doc/html/functions_func_c.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -149,7 +149,7 @@

- c -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_d.html b/doc/html/functions_func_d.html index 3482b210c..fe643545f 100644 --- a/doc/html/functions_func_d.html +++ b/doc/html/functions_func_d.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -108,7 +108,7 @@

- d -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_e.html b/doc/html/functions_func_e.html index 530e69661..0b7ef1936 100644 --- a/doc/html/functions_func_e.html +++ b/doc/html/functions_func_e.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -137,7 +137,7 @@

- e -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_f.html b/doc/html/functions_func_f.html index 2f4cfdda7..dfb497f3c 100644 --- a/doc/html/functions_func_f.html +++ b/doc/html/functions_func_f.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -205,7 +205,7 @@

- f -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_g.html b/doc/html/functions_func_g.html index 54540d77e..a6a61bb28 100644 --- a/doc/html/functions_func_g.html +++ b/doc/html/functions_func_g.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -141,7 +141,7 @@

- g -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_h.html b/doc/html/functions_func_h.html index 05aea7759..726ac08a8 100644 --- a/doc/html/functions_func_h.html +++ b/doc/html/functions_func_h.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -105,7 +105,7 @@

- h -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_i.html b/doc/html/functions_func_i.html index 001d6b8d7..f25b2cf84 100644 --- a/doc/html/functions_func_i.html +++ b/doc/html/functions_func_i.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -186,7 +186,7 @@

- i -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_l.html b/doc/html/functions_func_l.html index f4a0fc421..0ea1b6d2e 100644 --- a/doc/html/functions_func_l.html +++ b/doc/html/functions_func_l.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -134,7 +134,7 @@

- l -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_m.html b/doc/html/functions_func_m.html index 799cce6f2..1e3da9465 100644 --- a/doc/html/functions_func_m.html +++ b/doc/html/functions_func_m.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -116,7 +116,7 @@

- m -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_n.html b/doc/html/functions_func_n.html index 233030928..05657f365 100644 --- a/doc/html/functions_func_n.html +++ b/doc/html/functions_func_n.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -116,7 +116,7 @@

- n -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_o.html b/doc/html/functions_func_o.html index 7202e1c2f..253b72dc8 100644 --- a/doc/html/functions_func_o.html +++ b/doc/html/functions_func_o.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -263,7 +263,7 @@

- o -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_p.html b/doc/html/functions_func_p.html index afa05baf6..c9d7849d9 100644 --- a/doc/html/functions_func_p.html +++ b/doc/html/functions_func_p.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -179,7 +179,7 @@

- p -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_r.html b/doc/html/functions_func_r.html index 401b885a9..76359fedc 100644 --- a/doc/html/functions_func_r.html +++ b/doc/html/functions_func_r.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -120,7 +120,7 @@

- r -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_s.html b/doc/html/functions_func_s.html index 8a54afac2..8f816b8c7 100644 --- a/doc/html/functions_func_s.html +++ b/doc/html/functions_func_s.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -152,7 +152,7 @@

- s -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_t.html b/doc/html/functions_func_t.html index 2527467da..d0fa88bfc 100644 --- a/doc/html/functions_func_t.html +++ b/doc/html/functions_func_t.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -110,7 +110,7 @@

- t -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_u.html b/doc/html/functions_func_u.html index 7b3c0fd7a..9d45e8c80 100644 --- a/doc/html/functions_func_u.html +++ b/doc/html/functions_func_u.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -97,7 +97,7 @@

- u -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_v.html b/doc/html/functions_func_v.html index 0b3931512..5d306a45b 100644 --- a/doc/html/functions_func_v.html +++ b/doc/html/functions_func_v.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -93,7 +93,7 @@

- v -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_w.html b/doc/html/functions_func_w.html index 495c7265a..5deee6813 100644 --- a/doc/html/functions_func_w.html +++ b/doc/html/functions_func_w.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -185,7 +185,7 @@

- w -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_func_y.html b/doc/html/functions_func_y.html index a77aededd..97c497e1b 100644 --- a/doc/html/functions_func_y.html +++ b/doc/html/functions_func_y.html @@ -21,7 +21,7 @@
Class Members - Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -111,7 +111,7 @@

- y -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_g.html b/doc/html/functions_g.html index 33937bf1d..a7903fe6a 100644 --- a/doc/html/functions_g.html +++ b/doc/html/functions_g.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -154,7 +154,7 @@

- g -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_h.html b/doc/html/functions_h.html index 7aa1413fc..39cd6783a 100644 --- a/doc/html/functions_h.html +++ b/doc/html/functions_h.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -112,7 +112,7 @@

- h -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_i.html b/doc/html/functions_i.html index 03f7b9155..3846da2f3 100644 --- a/doc/html/functions_i.html +++ b/doc/html/functions_i.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -274,7 +274,7 @@

- i -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_k.html b/doc/html/functions_k.html index 874fa7dd6..8cc771541 100644 --- a/doc/html/functions_k.html +++ b/doc/html/functions_k.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -101,7 +101,7 @@

- k -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_l.html b/doc/html/functions_l.html index aa0e14ea9..bb29baee7 100644 --- a/doc/html/functions_l.html +++ b/doc/html/functions_l.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -185,7 +185,7 @@

- l -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_m.html b/doc/html/functions_m.html index 0814a2445..80137ca9f 100644 --- a/doc/html/functions_m.html +++ b/doc/html/functions_m.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -217,7 +217,7 @@

- m -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_n.html b/doc/html/functions_n.html index ce9ba9970..6256463dd 100644 --- a/doc/html/functions_n.html +++ b/doc/html/functions_n.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -152,7 +152,7 @@

- n -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_o.html b/doc/html/functions_o.html index 1ef15f630..0cd37f9be 100644 --- a/doc/html/functions_o.html +++ b/doc/html/functions_o.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -290,7 +290,7 @@

- o -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_p.html b/doc/html/functions_p.html index d0cb8dbf1..09fbebf6c 100644 --- a/doc/html/functions_p.html +++ b/doc/html/functions_p.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -215,7 +215,7 @@

- p -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_q.html b/doc/html/functions_q.html index 46c7b2624..64fb211b2 100644 --- a/doc/html/functions_q.html +++ b/doc/html/functions_q.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -97,7 +97,7 @@

- q -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_r.html b/doc/html/functions_r.html index cd16ebecd..b28b619c2 100644 --- a/doc/html/functions_r.html +++ b/doc/html/functions_r.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -155,7 +155,7 @@

- r -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_rela.html b/doc/html/functions_rela.html index 6bdddab85..ff3d14571 100644 --- a/doc/html/functions_rela.html +++ b/doc/html/functions_rela.html @@ -21,7 +21,7 @@
Class Members - Related Functions

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -75,7 +75,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_s.html b/doc/html/functions_s.html index efdca9231..9bbe6b0b6 100644 --- a/doc/html/functions_s.html +++ b/doc/html/functions_s.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -236,7 +236,7 @@

- s -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_t.html b/doc/html/functions_t.html index 0fd78f67a..429eda5f0 100644 --- a/doc/html/functions_t.html +++ b/doc/html/functions_t.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -133,7 +133,7 @@

- t -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_type.html b/doc/html/functions_type.html index 2a90e99e4..cecf4d50f 100644 --- a/doc/html/functions_type.html +++ b/doc/html/functions_type.html @@ -21,7 +21,7 @@
Class Members - Typedefs

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -281,7 +281,7 @@

- v -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_u.html b/doc/html/functions_u.html index a8206d88a..bdc16ee86 100644 --- a/doc/html/functions_u.html +++ b/doc/html/functions_u.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -131,7 +131,7 @@

- u -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_v.html b/doc/html/functions_v.html index b99c153a1..06241b8d4 100644 --- a/doc/html/functions_v.html +++ b/doc/html/functions_v.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -115,7 +115,7 @@

- v -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars.html b/doc/html/functions_vars.html index d58b52e62..2d83b01ea 100644 --- a/doc/html/functions_vars.html +++ b/doc/html/functions_vars.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -107,7 +107,7 @@

- a -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_b.html b/doc/html/functions_vars_b.html index f9670de81..e79b06453 100644 --- a/doc/html/functions_vars_b.html +++ b/doc/html/functions_vars_b.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -116,7 +116,7 @@

- b -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_c.html b/doc/html/functions_vars_c.html index fa9a653f8..fa72c8883 100644 --- a/doc/html/functions_vars_c.html +++ b/doc/html/functions_vars_c.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -161,7 +161,7 @@

- c -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_d.html b/doc/html/functions_vars_d.html index cd096408d..7a24efe73 100644 --- a/doc/html/functions_vars_d.html +++ b/doc/html/functions_vars_d.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -101,7 +101,7 @@

- d -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_e.html b/doc/html/functions_vars_e.html index f2815e7f5..84ec75c01 100644 --- a/doc/html/functions_vars_e.html +++ b/doc/html/functions_vars_e.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -132,7 +132,7 @@

- e -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_f.html b/doc/html/functions_vars_f.html index 05f1a9081..b9c8bba32 100644 --- a/doc/html/functions_vars_f.html +++ b/doc/html/functions_vars_f.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -120,7 +120,7 @@

- f -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_g.html b/doc/html/functions_vars_g.html index 0dac081ad..2eecfdaa2 100644 --- a/doc/html/functions_vars_g.html +++ b/doc/html/functions_vars_g.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -98,7 +98,7 @@

- g -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_h.html b/doc/html/functions_vars_h.html index 3d3ada876..065428364 100644 --- a/doc/html/functions_vars_h.html +++ b/doc/html/functions_vars_h.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -95,7 +95,7 @@

- h -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_i.html b/doc/html/functions_vars_i.html index f9ee176c5..53fc68bb8 100644 --- a/doc/html/functions_vars_i.html +++ b/doc/html/functions_vars_i.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -161,7 +161,7 @@

- i -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_k.html b/doc/html/functions_vars_k.html index 516574bd5..46a975654 100644 --- a/doc/html/functions_vars_k.html +++ b/doc/html/functions_vars_k.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -95,7 +95,7 @@

- k -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_l.html b/doc/html/functions_vars_l.html index b818d7227..473af4ddb 100644 --- a/doc/html/functions_vars_l.html +++ b/doc/html/functions_vars_l.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -135,7 +135,7 @@

- l -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_m.html b/doc/html/functions_vars_m.html index 5e287ccb4..b574fea23 100644 --- a/doc/html/functions_vars_m.html +++ b/doc/html/functions_vars_m.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -129,7 +129,7 @@

- m -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_n.html b/doc/html/functions_vars_n.html index 2e259c23e..c02118963 100644 --- a/doc/html/functions_vars_n.html +++ b/doc/html/functions_vars_n.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -122,7 +122,7 @@

- n -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_o.html b/doc/html/functions_vars_o.html index 874da22ab..46d52067d 100644 --- a/doc/html/functions_vars_o.html +++ b/doc/html/functions_vars_o.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -114,7 +114,7 @@

- o -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_p.html b/doc/html/functions_vars_p.html index 84bbbce3b..5b67a675a 100644 --- a/doc/html/functions_vars_p.html +++ b/doc/html/functions_vars_p.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -117,7 +117,7 @@

- p -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_q.html b/doc/html/functions_vars_q.html index 646d4c67f..34d7c86a5 100644 --- a/doc/html/functions_vars_q.html +++ b/doc/html/functions_vars_q.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -95,7 +95,7 @@

- q -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_r.html b/doc/html/functions_vars_r.html index 7153e13fa..ee6c699d7 100644 --- a/doc/html/functions_vars_r.html +++ b/doc/html/functions_vars_r.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -113,7 +113,7 @@

- r -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_s.html b/doc/html/functions_vars_s.html index 781fe5acb..db8bc6da4 100644 --- a/doc/html/functions_vars_s.html +++ b/doc/html/functions_vars_s.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -154,7 +154,7 @@

- s -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_t.html b/doc/html/functions_vars_t.html index d93c08cc3..27004019e 100644 --- a/doc/html/functions_vars_t.html +++ b/doc/html/functions_vars_t.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -107,7 +107,7 @@

- t -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_u.html b/doc/html/functions_vars_u.html index 8c8b77953..9847f11fe 100644 --- a/doc/html/functions_vars_u.html +++ b/doc/html/functions_vars_u.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -122,7 +122,7 @@

- u -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_v.html b/doc/html/functions_vars_v.html index d4dd17c36..1d8c420c0 100644 --- a/doc/html/functions_vars_v.html +++ b/doc/html/functions_vars_v.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -101,7 +101,7 @@

- v -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_w.html b/doc/html/functions_vars_w.html index 1f623c09a..93a731795 100644 --- a/doc/html/functions_vars_w.html +++ b/doc/html/functions_vars_w.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -101,7 +101,7 @@

- w -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_x.html b/doc/html/functions_vars_x.html index 9b75f6357..f6dd2e9a0 100644 --- a/doc/html/functions_vars_x.html +++ b/doc/html/functions_vars_x.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -95,7 +95,7 @@

- x -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_vars_z.html b/doc/html/functions_vars_z.html index 294d8d141..4f6b57991 100644 --- a/doc/html/functions_vars_z.html +++ b/doc/html/functions_vars_z.html @@ -21,7 +21,7 @@
Class Members - Variables

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -95,7 +95,7 @@

- z -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_w.html b/doc/html/functions_w.html index df3a786c0..3b8076ff3 100644 --- a/doc/html/functions_w.html +++ b/doc/html/functions_w.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -198,7 +198,7 @@

- w -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_x.html b/doc/html/functions_x.html index b54c9a293..56812d518 100644 --- a/doc/html/functions_x.html +++ b/doc/html/functions_x.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -97,7 +97,7 @@

- x -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_y.html b/doc/html/functions_y.html index 94e344cb7..b0b67bf72 100644 --- a/doc/html/functions_y.html +++ b/doc/html/functions_y.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -115,7 +115,7 @@

- y -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/functions_z.html b/doc/html/functions_z.html index 41f25eb57..935692e05 100644 --- a/doc/html/functions_z.html +++ b/doc/html/functions_z.html @@ -21,7 +21,7 @@
Class Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -97,7 +97,7 @@

- z -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/globals.html b/doc/html/globals.html index 517aef57f..1b6b462dd 100644 --- a/doc/html/globals.html +++ b/doc/html/globals.html @@ -21,7 +21,7 @@
File Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -323,7 +323,7 @@

- y -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/globals_defs.html b/doc/html/globals_defs.html index 6a8531884..9d797374d 100644 --- a/doc/html/globals_defs.html +++ b/doc/html/globals_defs.html @@ -21,7 +21,7 @@
File Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -271,7 +271,7 @@

- y -

+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/globals_func.html b/doc/html/globals_func.html index 03900f603..7ab49ec83 100644 --- a/doc/html/globals_func.html +++ b/doc/html/globals_func.html @@ -21,7 +21,7 @@
File Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -76,7 +76,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/globals_vars.html b/doc/html/globals_vars.html index da269f983..9d0f93ff1 100644 --- a/doc/html/globals_vars.html +++ b/doc/html/globals_vars.html @@ -21,7 +21,7 @@
File Members

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -67,7 +67,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/graph_legend.html b/doc/html/graph_legend.html index 23319eaf7..a7b9a16af 100644 --- a/doc/html/graph_legend.html +++ b/doc/html/graph_legend.html @@ -21,7 +21,7 @@
Graph Legend

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -75,7 +75,7 @@
+Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
diff --git a/doc/html/hierarchy.html b/doc/html/hierarchy.html index bd3065b70..3e9d1c13d 100644 --- a/doc/html/hierarchy.html +++ b/doc/html/hierarchy.html @@ -21,7 +21,7 @@
Class Hierarchy

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -110,7 +110,7 @@
+Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
diff --git a/doc/html/index.html b/doc/html/index.html index 025d7cb7f..0552b3bea 100644 --- a/doc/html/index.html +++ b/doc/html/index.html @@ -21,7 +21,7 @@
RE/flex user guide

-
updated Fri Jun 29 2018 by Robert van Engelen
+
updated Mon Jul 9 2018 by Robert van Engelen
  @@ -82,6 +82,8 @@
  • Switching input sources
  • Start condition states
  • Interfacing with Bison/Yacc
  • +Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
    diff --git a/doc/html/index_8md.html b/doc/html/index_8md.html index bae9740fe..78b52f317 100644 --- a/doc/html/index_8md.html +++ b/doc/html/index_8md.html @@ -21,7 +21,7 @@
    index.md File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -52,7 +52,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/inherits.html b/doc/html/inherits.html index 02e3bcaaf..fb24b6c5f 100644 --- a/doc/html/inherits.html +++ b/doc/html/inherits.html @@ -21,7 +21,7 @@
    Class Hierarchy

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -226,7 +226,7 @@
    +Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
    diff --git a/doc/html/input_8h.html b/doc/html/input_8h.html index 506e65af8..1e4ce388f 100644 --- a/doc/html/input_8h.html +++ b/doc/html/input_8h.html @@ -21,7 +21,7 @@
    input.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -112,7 +112,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/matcher_8h.html b/doc/html/matcher_8h.html index c2a02e0f9..9bb77d4f8 100644 --- a/doc/html/matcher_8h.html +++ b/doc/html/matcher_8h.html @@ -21,7 +21,7 @@
    matcher.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -104,7 +104,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/namespacemembers.html b/doc/html/namespacemembers.html index b1442c668..2c084c80d 100644 --- a/doc/html/namespacemembers.html +++ b/doc/html/namespacemembers.html @@ -21,7 +21,7 @@
    Namespace Members

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -131,7 +131,7 @@
    +Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
    diff --git a/doc/html/namespacemembers_func.html b/doc/html/namespacemembers_func.html index f126d48d0..6ff4d54a2 100644 --- a/doc/html/namespacemembers_func.html +++ b/doc/html/namespacemembers_func.html @@ -21,7 +21,7 @@
    Namespace Members

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -95,7 +95,7 @@
    +Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
    diff --git a/doc/html/namespacemembers_type.html b/doc/html/namespacemembers_type.html index 54ff77460..dadc0788f 100644 --- a/doc/html/namespacemembers_type.html +++ b/doc/html/namespacemembers_type.html @@ -21,7 +21,7 @@
    Namespace Members

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -67,7 +67,7 @@
    +Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
    diff --git a/doc/html/namespacemembers_vars.html b/doc/html/namespacemembers_vars.html index 255005725..8ee742f04 100644 --- a/doc/html/namespacemembers_vars.html +++ b/doc/html/namespacemembers_vars.html @@ -21,7 +21,7 @@
    Namespace Members

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -85,7 +85,7 @@
    +Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
    diff --git a/doc/html/namespacereflex.html b/doc/html/namespacereflex.html index 53bfa68dc..e9f1b3334 100644 --- a/doc/html/namespacereflex.html +++ b/doc/html/namespacereflex.html @@ -21,7 +21,7 @@
    reflex Namespace Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -847,7 +847,7 @@

    Function Documentation

    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/namespacereflex_1_1_posix.html b/doc/html/namespacereflex_1_1_posix.html index 785c0850b..aa25e9136 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -87,7 +87,7 @@

    Function Documentation

    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/namespacereflex_1_1_unicode.html b/doc/html/namespacereflex_1_1_unicode.html index bd796f155..2818d34ba 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -87,7 +87,7 @@

    Function Documentation

    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/namespacereflex_1_1convert__flag.html b/doc/html/namespacereflex_1_1convert__flag.html index e3429815e..fa91817c1 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -216,7 +216,7 @@

    Variable Documentation

    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/namespaces.html b/doc/html/namespaces.html index 5ddea9fe7..c9a45cf9c 100644 --- a/doc/html/namespaces.html +++ b/doc/html/namespaces.html @@ -21,7 +21,7 @@
    Namespace List

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -60,7 +60,7 @@
    +Converted on Mon Jul 9 2018 15:13:47 by Doxygen 1.8.11
    diff --git a/doc/html/pattern_8h.html b/doc/html/pattern_8h.html index 2d9677957..0e9647335 100644 --- a/doc/html/pattern_8h.html +++ b/doc/html/pattern_8h.html @@ -21,7 +21,7 @@
    pattern.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -127,7 +127,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/posix_8h.html b/doc/html/posix_8h.html index 3c64d9d94..8234ddc22 100644 --- a/doc/html/posix_8h.html +++ b/doc/html/posix_8h.html @@ -21,7 +21,7 @@
    posix.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -104,7 +104,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/ranges_8h.html b/doc/html/ranges_8h.html index a71ba9c36..30bbefd06 100644 --- a/doc/html/ranges_8h.html +++ b/doc/html/ranges_8h.html @@ -21,7 +21,7 @@
    ranges.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -104,7 +104,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/reflex_8cpp.html b/doc/html/reflex_8cpp.html index 198d99694..e460e7216 100644 --- a/doc/html/reflex_8cpp.html +++ b/doc/html/reflex_8cpp.html @@ -21,7 +21,7 @@
    reflex.cpp File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -353,7 +353,7 @@

    Variable Documentation

    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/reflex_8h.html b/doc/html/reflex_8h.html index a634af988..f3dc3d88b 100644 --- a/doc/html/reflex_8h.html +++ b/doc/html/reflex_8h.html @@ -21,7 +21,7 @@
    reflex.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -116,7 +116,7 @@ Macros #define PLATFORM   "(unknown OS)"   -#define REFLEX_VERSION   "1.0.5" +#define REFLEX_VERSION   "1.0.6"  

    Detailed Description

    @@ -143,7 +143,7 @@
    - +
    #define REFLEX_VERSION   "1.0.5"#define REFLEX_VERSION   "1.0.6"
    @@ -153,7 +153,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/setop_8h.html b/doc/html/setop_8h.html index f08525ec5..5261cc108 100644 --- a/doc/html/setop_8h.html +++ b/doc/html/setop_8h.html @@ -21,7 +21,7 @@
    setop.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 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 Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/stdmatcher_8h.html b/doc/html/stdmatcher_8h.html index 42ad0111d..d783be3a3 100644 --- a/doc/html/stdmatcher_8h.html +++ b/doc/html/stdmatcher_8h.html @@ -21,7 +21,7 @@
    stdmatcher.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -102,7 +102,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 b6bd1f195..e161b4846 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -64,7 +64,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 354540766..7311bca7d 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -173,7 +173,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 ecb53fb0c..6656a8bff 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -65,7 +65,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 f76cf5a58..992672871 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -160,7 +160,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 7e2659d99..9bea99ac9 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -63,7 +63,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 1b20c435c..774190659 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -154,7 +154,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 1c9d31bc2..4eb1459fb 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -70,7 +70,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 2e9fb8d54..1631893f5 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -325,7 +325,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 f7e0a203f..37b3c29d2 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -64,7 +64,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 f02a26c49..92c21d3ef 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -156,7 +156,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 bd9be6c11..dde299c42 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -68,7 +68,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 6b3ceb6ff..3b6f644b3 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -329,7 +329,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 c500b2aaa..efded0f05 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -80,7 +80,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 4d235eac6..7ee68e455 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -575,7 +575,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 c3af33579..205419427 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -67,7 +67,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 ab0d468d4..93046b07d 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -173,7 +173,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 b336eaee7..7ad420b1b 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -74,7 +74,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 ec0d1f7db..8f97f01e0 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -320,7 +320,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 55bec71c7..f8a96b29c 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -86,7 +86,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 2fc502d22..76df17cea 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -718,7 +718,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 810f09cd8..26b0bf24f 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -71,7 +71,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 292ec834f..f91930236 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -289,7 +289,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 362136c1d..f86c32aad 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -61,7 +61,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 09ecd8cd8..fb585bea4 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -106,7 +106,7 @@

    Member Function Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 28c289559..e48686ffa 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -63,7 +63,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 ea3007963..812428698 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -141,7 +141,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 2f1effda8..fc28755bb 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -63,7 +63,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 330b13714..a502a8198 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -126,7 +126,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 12190e5bb..2d8372637 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -66,7 +66,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/structreflex_1_1lazy__intersection.html b/doc/html/structreflex_1_1lazy__intersection.html index b48f6c11e..d0e71ab65 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -238,7 +238,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 115d5f677..b7079a285 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -74,7 +74,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 bfb84083a..3e71b8369 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -434,7 +434,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 eb8e5db92..1b9dfcdc2 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -66,7 +66,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/structreflex_1_1lazy__union.html b/doc/html/structreflex_1_1lazy__union.html index 8515d3000..28edacf24 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -238,7 +238,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 dace5411b..f9718e635 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -75,7 +75,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 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 a3daeb6fe..c1c744da2 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -450,7 +450,7 @@

    Member Data Documentation

    +Converted on Mon Jul 9 2018 15:13:41 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 27ce03358..68367556f 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -61,7 +61,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/structreflex_1_1range__compare.html b/doc/html/structreflex_1_1range__compare.html index 2ab47bd47..984e3ce64 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 Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -127,7 +127,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/timer_8h.html b/doc/html/timer_8h.html index 96f09c93c..89bbb0207 100644 --- a/doc/html/timer_8h.html +++ b/doc/html/timer_8h.html @@ -21,7 +21,7 @@
    timer.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -95,7 +95,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/traits_8h.html b/doc/html/traits_8h.html index 70de68fca..69a26b2e8 100644 --- a/doc/html/traits_8h.html +++ b/doc/html/traits_8h.html @@ -21,7 +21,7 @@
    traits.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -94,7 +94,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/unicode_8h.html b/doc/html/unicode_8h.html index c2c684d27..737b4a1b8 100644 --- a/doc/html/unicode_8h.html +++ b/doc/html/unicode_8h.html @@ -21,7 +21,7 @@
    unicode.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -96,7 +96,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/html/utf8_8h.html b/doc/html/utf8_8h.html index 75ddf9919..00ed24e20 100644 --- a/doc/html/utf8_8h.html +++ b/doc/html/utf8_8h.html @@ -21,7 +21,7 @@
    utf8.h File Reference

    -
    updated Fri Jun 29 2018 by Robert van Engelen
    +
    updated Mon Jul 9 2018 by Robert van Engelen
      @@ -149,7 +149,7 @@
    +Converted on Mon Jul 9 2018 15:13:41 by Doxygen 1.8.11
    diff --git a/doc/index.md b/doc/index.md index 7e5573ded..a8149196e 100644 --- a/doc/index.md +++ b/doc/index.md @@ -31,7 +31,7 @@ Features: - efficient matching in direct code or with finite state machine tables; - visualization of finite state machines; - generates scanners that are thread-safe by default; -- works with Bison and supports reentrant, bison-bridge and bison-locations; +- works with Bison, supports reentrant, C++, bison-bridge and bison-locations; - includes a regex class library that is extensible; - Boost.Regex can be used as a regex engine; - C++11 std::regex can be used as a regex engine (but not with a scanner); @@ -1001,7 +1001,8 @@ The second option `−−bison` generates a scanner class and the usual global " variables and functions for compatibility with non-reentrant [Bison](dinosaur.compilertools.net/#bison) parsers. See \ref reflex-bison for more details on Bison parsers that are reentrant and/or use bison-bridge and -bison-locations options. +bison-locations options. For Bison 3.0 C++ parsers, use `−−bison-cc` and +optionally `−−bison-locations`. The lex.yy.cpp source code output is structured in sections that are clean, readable, and reusable. To generate a C++ header file lex.yy.h to include in @@ -1324,8 +1325,13 @@ dependency on the global `yywrap()` function. #### `−−bison-bridge` This generates a scanner that works with Bison pure (MT-safe and reentrant) -parsers using a Bison bridge for one ore more scanner objects. See \ref -reflex-bison for more details. +parsers using a Bison bridge for one ore more scanner objects. See +\ref reflex-bison for more details. + +#### `−−bison-cc` + +This generates a scanner that works with Bison 3.0 `%%skeleton "lalr1.cc"` C++ +parsers that are MT-safe. See \ref reflex-bison for more details. #### `−−bison-locations` @@ -1740,6 +1746,8 @@ the classic Flex actions shown in the second column of this table: `matcher().wchr()` | *n/a* | same as `wchr()` `matcher().size()` | `YYLeng()`, `yyleng` | same as `size()` `matcher().wsize()` | *n/a* | same as `wsize()` + `matcher().lineno()` | `yylineno` | same as `lineno()` + `matcher().columno()`| *n/a* | same as `columno()` `matcher().begin()` | *n/a* | non-0-terminated text match `matcher().end()` | *n/a* | non-0-terminated text match end `matcher().input()` | `yyinput()` | get next 8-bit char from input @@ -2874,7 +2882,7 @@ inherits Lexer and declares a public `int lex()` method: The `int MyLexer::lex()` method code is generated by **reflex** for this lexer specification. -Options `−−lexer=NAME` and `--lex=NAME` can be combined with `−−class=NAME` to +Options `−−lexer=NAME` and `−−lex=NAME` can be combined with `−−class=NAME` to change the name of the inherited Lexer class and change the name of the `lex()` method, respectively. @@ -3504,7 +3512,7 @@ import from the scanner:
    or a better approach is to generate a `lex.yy.h` header file with option -`--header-file` and use this header file in the yacc grammar specification: +`−−header-file` and use this header file in the yacc grammar specification:
    ```cpp @@ -3546,28 +3554,182 @@ these Bison-specific features. The following combinations of options are available to generate scanners for Bison: - Options | Method | Global functions and variables - --------------------------------------------- | ----------------------------------------- | ------------------------------ -   | `int Lexer::lex()` | no global variables, but doesn't work with Bison - `−−flex` | `int yyFlexLexer::yylex()` | no global variables, but doesn't work with Bison - `−−bison` | `int Lexer::lex()` | `Lexer YY_SCANNER`, `int yylex()`, `YYSTYPE yylval` - `−−flex` `−−bison` | `int yyFlexLexer::yylex()` | `yyFlexLexer YY_SCANNER`, `int yylex()`, `YYSTYPE yylval`, `char *yytext`, `yy_size_t yyleng`, `int yylineno` - `−−bison` `−−reentrant` | `int Lexer::lex()` | `int yylex(yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` - `−−flex` `−−bison` `−−reentrant` | `int yyFlexLexer::lex()` | `int yylex(yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` - `−−bison-bridge` | `int Lexer::lex(YYSTYPE& yylval)` | `int yylex(YYSTYPE*, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` - `−−flex` `−−bison-bridge` | `int yyFlexLexer::yylex(YYSTYPE& yylval)` | `int yylex(YYSTYPE*, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` - `−−bison-locations` | `int Lexer::lex(YYSTYPE& yylval)` | `Lexer YY_SCANNER`, `int yylex(YYSTYPE*, YYLTYPE*)` - `−−flex` `−−bison-locations` | `int yyFlexLexer::yylex(YYSTYPE& yylval)` | `yyFlexLexer YY_SCANNER`, `int yylex(YYSTYPE*, YYLTYPE*)` - `−−bison-locations` `−−bison-bridge` | `int Lexer::lex(YYSTYPE& yylval)` | `int yylex(YYSTYPE*, YYLTYPE*, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` - `−−flex` `−−bison-locations` `−−bison-bridge` | `int yyFlexLexer::yylex(YYSTYPE& yylval)` | `int yylex(YYSTYPE*, YYLTYPE*, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` + Options | Method | Global functions and variables + --------------------------------------------- | ---------------------------------------------------------- | ------------------------------ +   | `int Lexer::lex()` | no global variables, but doesn't work with Bison + `−−flex` | `int yyFlexLexer::yylex()` | no global variables, but doesn't work with Bison + `−−bison` | `int Lexer::lex()` | `Lexer YY_SCANNER`, `int yylex()`, `YYSTYPE yylval` + `−−flex` `−−bison` | `int yyFlexLexer::yylex()` | `yyFlexLexer YY_SCANNER`, `int yylex()`, `YYSTYPE yylval`, `char *yytext`, `yy_size_t yyleng`, `int yylineno` + `−−bison` `−−reentrant` | `int Lexer::lex()` | `int yylex(yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` + `−−flex` `−−bison` `−−reentrant` | `int yyFlexLexer::lex()` | `int yylex(yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` + `−−bison-locations` | `int Lexer::lex(YYSTYPE& yylval)` | `Lexer YY_SCANNER`, `int yylex(YYSTYPE *yylval, YYLTYPE *yylloc)` + `−−flex` `−−bison-locations` | `int yyFlexLexer::yylex(YYSTYPE& yylval)` | `yyFlexLexer YY_SCANNER`, `int yylex(YYSTYPE *yylval, YYLTYPE *yylloc)` + `−−bison-cc` | `int Lexer::lex(YYSTYPE *yylval)` | no global variables + `−−flex` `−−bison-cc` | `int yyFlexLexer::yylex(YYSTYPE *yylval)` | no global variables + `−−bison-cc` `−−bison-locations` | `int Lexer::lex(YYSTYPE *yylval, YYLTYPE *yylloc)` | no global variables + `−−flex` `−−bison-cc` `−−bison-locations` | `int yyFlexLexer::yylex(YYSTYPE *yylval, YYLTYPE *yylloc)` | no global variables + `−−bison-bridge` | `int Lexer::lex(YYSTYPE& yylval)` | `int yylex(YYSTYPE *yylval, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` + `−−flex` `−−bison-bridge` | `int yyFlexLexer::yylex(YYSTYPE& yylval)` | `int yylex(YYSTYPE *yylval, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` + `−−bison-bridge` `−−bison-locations` | `int Lexer::lex(YYSTYPE& yylval)` | `int yylex(YYSTYPE *yylval, YYLTYPE *yylloc, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` + `−−flex` `−−bison-bridge` `−−bison-locations` | `int yyFlexLexer::yylex(YYSTYPE& yylval)` | `int yylex(YYSTYPE *yylval, YYLTYPE *yylloc, yyscan_t)`, `void yylex_init(yyscan_t*)`, `void yylex_destroy(yyscan_t)` Option `−−prefix` may be used with option `−−flex` to change the prefix of the generated `yyFlexLexer` and `yylex`. This option can be combined with option `−−bison` to also change the prefix of the generated `yytext`, `yyleng`, and `yylineno`. -The following sections explain the `−−bison` with `−−reentrant`, -`−−bison-bridge` and `−−bison-locations` options for **reflex**. +Furthermore, **reflex** options `−−namespace=NAMESPACE`, `−−lexer=LEXER` and +`−−lex=LEX` can be used to add a C++ namespace, to rename the lexer class +(`Lexer` or `yyFlexLexer` by default) and to rename the lexer function (`lex` +or `yylex` by default), respectively. + +The following sections explain the `−−bison-cc`, `−−bison-bridge`, +`−−bison-locations` and `−−reentrant` options for **reflex**. + +🔝 [Back to table of contents](#) + + +### Bison-cc {#reflex-bison-cc} + +The **reflex** option `−−bison-cc` expects a Bison 3.0 `%%skeleton "lalr1.cc"` +C++ parser that is declared as follows in a Yacc specification: + +
    +```cpp +/* yacc grammar (.yxx file) for C++ */ + +%skeleton "lalr1.cc" +%require "3.0" + +%code requires{ + namespace yy { + class Lexer; // Generated by reflex with namespace=yy lexer=Lexer lex=yylex + } +} + +%parse-param { yy::Lexer& lexer } // Construct parser object with lexer + +%code{ + #include "lex.yy.h" + #undef yylex + #define yylex lexer.yylex // Within bison's parse() we should invoke lexer.yylex(), not the global yylex() +} + +%union { // yy::parser::semantic_type yylval is a union: + int num; // type of yylval.num is int + char* str; // type of yylval.str is char* +} + +%token CONST_NUMBER // This defines yy::parser::token::CONST_NUMBER +%token CONST_STRING // This defines yy::parser::token::CONST_STRING + +%% +... // grammar rules +%% + +void yy::parser::error(const std::string& msg) +{ + std::cerr << msg << std::endl; +} +``` +
    + +With the `−−bison-cc` option of **reflex**, the `yylex()` function takes a +`yy::parser::semantic_type yylval` argument that makes the `yylval` visible +in the lexer rules to assign semantic values to. + +The scanner is generated with **reflex** options `−−bison-cc`, `−−namespace=yy`, +`−−lexer=Lexer` and `−−lex=yylex`. The lexer specification should `#include` +the Bison-generated header file to ensure that the `yy::parser::token` enums +`CONST_NUMBER` and `CONST_STRING` are defined. + +Using the code above, we can now initialize a Bison parser. We first should +create a scanner and pass it to the `parser` constructor as follows: + +
    +```cpp +yy::Lexer lexer(std::cin); // read from stdin (or a stream, string or FILE) +yy::parser parser(lexer); +if (parser.parse() != 0) + ... // error +``` +
    + +🔝 [Back to table of contents](#) + + +### Bison-cc & locations {#reflex-bison-cc-locations} + +The **reflex** option `−−bison-cc` with `−−bison-locations` expects a Bison 3.0 +`%%skeleton "lalr1.cc"` C++ parser that is declared as follows in a Yacc +specification: + +
    +```cpp +/* yacc grammar (.yxx file) for C++ */ + +%skeleton "lalr1.cc" +%require "3.0" + +%code requires{ + namespace yy { + class Lexer; // Generated by reflex with namespace=yy lexer=Lexer + } +} + +%locations + +%parse-param { yy::Lexer& lexer } // Construct parser object with lexer + +%code{ + #include "lex.yy.h" + #undef yylex + #define yylex lexer.yylex // Within bison's parse() we should invoke lexer.yylex(), not the global yylex() +} + +%union { // yy::parser::semantic_type yylval is a union: + int num; // type of yylval.num is int + char* str; // type of yylval.str is char* +} + +%token CONST_NUMBER // This defines yy::parser::token::CONST_NUMBER +%token CONST_STRING // This defines yy::parser::token::CONST_STRING + +%% +... // grammar rules +%% + +void yy::parser::error(const location_type& loc, const std::string& msg) +{ + std::cerr << msg << " at " << loc << std::endl; +} +``` +
    + +With the `−−bison-cc` and `−−bison-locations` options of **reflex**, the +`yylex()` function takes `yy::parser::semantic_type yylval` as the first +argument that makes the `yylval` visible in the lexer rules to assign semantic +values to, and takes a second argument `yy::location yylloc` that is set +automatically by the **reflex** scanner to the line and column if the token +matched. + +The scanner is generated with **reflex** options `−−bison-cc`, +`−−bison-locations`, `−−namespace=yy`, `−−lexer=Lexer` and `−−lex=yylex`. The +lexer specification should `#include` the Bison-generated header file to ensure +that the `yy::parser::token` enums `CONST_NUMBER` and `CONST_STRING` are +defined. + +Using the code above, we can now initialize a Bison parser. We first should +create a scanner and pass it to the `parser` constructor as follows: + +
    +```cpp +yy::Lexer lexer(std::cin); // read from stdin (or a stream, string or FILE) +yy::parser parser(lexer); +if (parser.parse() != 0) + ... // error +``` +
    🔝 [Back to table of contents](#) @@ -3579,7 +3741,7 @@ declared as follows in a Yacc specification:
    ```cpp -/* yacc grammar (.y file) for C++ */ +/* yacc grammar (.y file) for C or C++ */ %{ #include "lex.yy.h" @@ -3627,7 +3789,7 @@ text for error reporting. For example:
    ```cpp -/* yacc grammar (.y file) for C++ */ +/* yacc grammar (.y file) for C or C++ */ %{ #include "lex.yy.h" @@ -3687,7 +3849,7 @@ locations enabled:
    ```cpp -/* yacc grammar (.y file) */ +/* yacc grammar (.y file) for C or C++ */ %{ #include "lex.yy.h" @@ -3725,7 +3887,7 @@ void yyerror(YYLTYPE *yylloc, yyscan_t scanner, const char *msg) ```
    -@note when Bison `%locations` with `%define api.pure full` is used, `yyerror` +@note when Bison `%%locations` with `%%define api.pure full` is used, `yyerror` has the signature `void yyerror(YYLTYPE *locp, char const *msg)`. This function signature is required to obtain the location information with Bison pure-parsers. diff --git a/doc/man/reflex.1 b/doc/man/reflex.1 index 6c5ccdcd8..62cf7df7a 100644 --- a/doc/man/reflex.1 +++ b/doc/man/reflex.1 @@ -1,4 +1,4 @@ -.TH REFLEX "1" "June 29, 2018" "reflex 1.0.5" "User Commands" +.TH REFLEX "1" "July 09, 2018" "reflex 1.0.6" "User Commands" .SH NAME reflex \- the regex\-centric fast and flexible lexical analyzer generator .SH SYNOPSIS @@ -101,6 +101,9 @@ initialize input to std::cin instead of stdin \fB\-\-bison\fR generate global yylex() scanner for bison .TP +\fB\-\-bison\-cc\fR +generate bison C++ interface code for bison lalr1.cc skeleton +.TP \fB\-\-bison\-bridge\fR generate reentrant yylex() scanner for bison pure parser .TP diff --git a/examples/Make b/examples/Make index ceb1d7940..90f974e5c 100644 --- a/examples/Make +++ b/examples/Make @@ -1,18 +1,22 @@ -# Makefile to quickly build the examples: +# These examples require Bison or Yacc +# +# To quickly build the examples: # > make -f Make -# Normally you should use configure and make to build and install: +# +# Or use configure and make to build: # > ./configure && make # > cd examples # > make # -# requires Bison or Yacc -# +# To build examples3.0 requires Bison 3.0 or greater: +# > make -f Make examples3.0 CXX = c++ REFLEX = ../bin/reflex REFLAGS = LIBREFLEX =../lib/libreflex.a YACC = bison -y +BISON = bison INCBOOST = /opt/local/include LIBBOOST = /opt/local/lib/libboost_regex-mt.dylib CXXOFLAGS = -O2 @@ -21,7 +25,13 @@ CXXIFLAGS = -I. -I../include -I $(INCBOOST) CXXMFLAGS = CXXFLAGS = $(CXXWFLAGS) $(CXXOFLAGS) $(CXXIFLAGS) $(CXXMFLAGS) -examples: flexexample1 flexexample2 flexexample3 flexexample4 flexexample5 flexexample6 flexexample7 flexexample8 reflexexample3 reflexexample4 reflexexample5 reflexexample6 ctokens jtokens ptokens echo calc wc wcu wcpp wcwc tag tag_lazy tag_lazystates tag_unicode tag_tidy cow cows indent json braille unicode csv cards +all: examples examplesxx + +examples: flexexample1 flexexample2 flexexample3 flexexample4 flexexample5 flexexample6 flexexample7 flexexample8 reflexexample3 reflexexample4 reflexexample5 reflexexample6 reflexexample7 reflexexample8 ctokens jtokens ptokens echo calc wc wcu wcpp wcwc tag tag_lazy tag_lazystates tag_unicode tag_tidy cow cows indent json braille unicode csv cards + +examplesxx: flexexample3xx flexexample4xx flexexample5xx flexexample7xx flexexample8xx reflexexample3xx reflexexample4xx reflexexample5xx reflexexample7xx reflexexample8xx + +examples3.0: flexexample9xx reflexexample9xx flexexample1: flexexample1.l $(REFLEX) $(REFLAGS) --flex flexexample1.l @@ -40,18 +50,36 @@ flexexample3: flexexample3.l flexexample3.y $(CXX) $(CXXFLAGS) -o $@ y.tab.o lex.yy.cpp $(LIBREFLEX) ./flexexample3 < flexexample3.test +flexexample3xx: flexexample3.lxx flexexample3.yxx + $(BISON) -d flexexample3.yxx + $(REFLEX) $(REFLAGS) --flex --bison flexexample3.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample3.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./flexexample3xx < flexexample3.test + flexexample4: flexexample4.l flexexample4.y $(YACC) -d flexexample4.y $(REFLEX) $(REFLAGS) --flex --bison-bridge --header-file flexexample4.l $(CXX) $(CXXFLAGS) -DWITH_NO_C -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) ./flexexample4 < flexexample4.test +flexexample4xx: flexexample4.lxx flexexample4.yxx + $(BISON) -d flexexample4.yxx + $(REFLEX) $(REFLAGS) --flex --bison-bridge --header-file flexexample4.lxx + $(CXX) $(CXXFLAGS) -DWITH_NO_C -o $@ flexexample4.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./flexexample4xx < flexexample4.test + flexexample5: flexexample5.l flexexample5.y $(YACC) -d flexexample5.y $(REFLEX) $(REFLAGS) --flex --bison-bridge --header-file flexexample5.l $(CXX) $(CXXFLAGS) -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) ./flexexample5 < flexexample5.test +flexexample5xx: flexexample5.lxx flexexample5.yxx + $(BISON) -d flexexample5.yxx + $(REFLEX) $(REFLAGS) --flex --bison-bridge --header-file flexexample5.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample5.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./flexexample5xx < flexexample5.test + flexexample6: flexexample6.l $(REFLEX) $(REFLAGS) --flex flexexample6.l $(CXX) $(CXXFLAGS) -o $@ lex.yy.cpp $(LIBREFLEX) @@ -64,35 +92,102 @@ flexexample7: flexexample7.l flexexample7.y $(CXX) $(CXXFLAGS) -o $@ y.tab.o lex.yy.cpp $(LIBREFLEX) ./flexexample7 < flexexample7.test +flexexample7xx: flexexample7.lxx flexexample7.yxx + $(BISON) -d flexexample7.yxx + $(REFLEX) $(REFLAGS) --flex --bison-locations flexexample7.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample7.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./flexexample7xx < flexexample7.test + flexexample8: flexexample8.l flexexample8.y $(YACC) -d flexexample8.y $(REFLEX) $(REFLAGS) --flex --bison-locations --bison-bridge --header-file flexexample8.l $(CXX) $(CXXFLAGS) -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) ./flexexample8 < flexexample8.test +flexexample8xx: flexexample8.lxx flexexample8.yxx + $(BISON) -d flexexample8.yxx + $(REFLEX) $(REFLAGS) --flex --bison-locations --bison-bridge --header-file flexexample8.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample8.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./flexexample8xx < flexexample8.test + +flexexample9xx: flexexample9.lxx flexexample9.yxx + $(BISON) -d flexexample9.yxx + $(REFLEX) $(REFLAGS) --flex --bison-cc --bison-locations --header-file flexexample9.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample9.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./flexexample9xx < flexexample9.test + reflexexample3: reflexexample3.l reflexexample3.y $(YACC) -d reflexexample3.y $(REFLEX) $(REFLAGS) --bison --header-file reflexexample3.l $(CXX) $(CXXFLAGS) -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) ./reflexexample3 < flexexample3.test +reflexexample3xx: reflexexample3.lxx reflexexample3.yxx + $(BISON) -d reflexexample3.yxx + $(REFLEX) $(REFLAGS) --bison --header-file reflexexample3.lxx + $(CXX) $(CXXFLAGS) -o $@ reflexexample3.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./reflexexample3xx < flexexample3.test + reflexexample4: reflexexample4.l flexexample4.y $(YACC) -d flexexample4.y $(REFLEX) $(REFLAGS) --bison-bridge --header-file reflexexample4.l $(CXX) $(CXXFLAGS) -DWITH_NO_C -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) ./reflexexample4 < flexexample4.test +reflexexample4xx: reflexexample4.lxx flexexample4.yxx + $(BISON) -d flexexample4.yxx + $(REFLEX) $(REFLAGS) --bison-bridge --header-file reflexexample4.lxx + $(CXX) $(CXXFLAGS) -DWITH_NO_C -o $@ flexexample4.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./reflexexample4xx < flexexample4.test + reflexexample5: reflexexample5.l flexexample5.y $(YACC) -d flexexample5.y $(REFLEX) $(REFLAGS) --bison-bridge --header-file reflexexample5.l $(CXX) $(CXXFLAGS) -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) ./reflexexample5 < flexexample5.test +reflexexample5xx: reflexexample5.lxx flexexample5.yxx + $(BISON) -d flexexample5.yxx + $(REFLEX) $(REFLAGS) --bison-bridge --header-file reflexexample5.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample5.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./reflexexample5xx < flexexample5.test + reflexexample6: reflexexample6.l $(REFLEX) $(REFLAGS) reflexexample6.l $(CXX) $(CXXFLAGS) -o $@ lex.yy.cpp $(LIBREFLEX) ./reflexexample6 < reflexexample6.l +reflexexample7: reflexexample7.l flexexample7.y + $(YACC) -d flexexample7.y + $(REFLEX) $(REFLAGS) --bison-locations reflexexample7.l + $(CC) $(CXXFLAGS) -c y.tab.c + $(CXX) $(CXXFLAGS) -o $@ y.tab.o lex.yy.cpp $(LIBREFLEX) + ./reflexexample7 < flexexample7.test + +reflexexample7xx: reflexexample7.lxx flexexample7.yxx + $(BISON) -d flexexample7.yxx + $(REFLEX) $(REFLAGS) --bison-locations reflexexample7.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample7.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./reflexexample7xx < flexexample7.test + +reflexexample8: reflexexample8.l flexexample8.y + $(YACC) -d flexexample8.y + $(REFLEX) $(REFLAGS) --flex --bison-locations --bison-bridge --header-file reflexexample8.l + $(CXX) $(CXXFLAGS) -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) + ./reflexexample8 < flexexample8.test + +reflexexample8xx: reflexexample8.lxx flexexample8.yxx + $(BISON) -d flexexample8.yxx + $(REFLEX) $(REFLAGS) --flex --bison-locations --bison-bridge --header-file reflexexample8.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample8.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./reflexexample8xx < flexexample8.test + +reflexexample9xx: reflexexample9.lxx flexexample9.yxx + $(BISON) -d flexexample9.yxx + $(REFLEX) $(REFLAGS) --bison-cc --bison-locations --header-file reflexexample9.lxx + $(CXX) $(CXXFLAGS) -o $@ flexexample9.tab.cxx lex.yy.cpp $(LIBREFLEX) + ./reflexexample9xx < flexexample9.test + ctokens: ctokens.l $(REFLEX) $(REFLAGS) ctokens.l $(CXX) $(CXXFLAGS) -o $@ lex.yy.cpp $(LIBREFLEX) @@ -195,6 +290,6 @@ url: url.cpp clean: -rm -rf *.dSYM -rm -f *.o *.gch *.log - -rm -f lex.yy.h lex.yy.cpp y.tab.h y.tab.c reflex.*.cpp reflex.*.gv reflex.*.txt - -rm -f flexexample? reflexexample? + -rm -f lex.yy.h lex.yy.cpp *.tab.h *.tab.c *.tab.hxx *.tab.cxx location.hh position.hh stack.hh reflex.*.cpp reflex.*.gv reflex.*.txt + -rm -f flexexample? reflexexample? flexexample?xx reflexexample?xx -rm -f ctokens jtokens ptokens echo readline calc wc wcu wcpp wcwc tag tag_lazy tag_lazystates tag_unicode tag_tidy cow cows indent json braille unicode csv cards url diff --git a/examples/Makefile.am b/examples/Makefile.am index 8d22c400f..073a65530 100644 --- a/examples/Makefile.am +++ b/examples/Makefile.am @@ -1,3 +1,16 @@ +# These examples require Bison or Yacc +# +# To quickly build the examples: +# > make -f Make +# +# Or use configure and make to build: +# > ./configure && make +# > cd examples +# > make +# +# To build examples3.0 requires Bison 3.0 or greater: +# > make -f Make examples3.0 + REFLEX = $(top_builddir)/src/reflex REFLAGS = LIBREFLEX = $(top_builddir)/lib/libreflex.a @@ -19,6 +32,8 @@ examples: flexexample1 \ reflexexample4 \ reflexexample5 \ reflexexample6 \ + reflexexample7 \ + reflexexample8 \ ctokens \ jtokens \ ptokens \ @@ -112,6 +127,19 @@ reflexexample6: reflexexample6.l $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ lex.yy.cpp $(LIBREFLEX) ./reflexexample6 < reflexexample6.l +reflexexample7: reflexexample7.l flexexample7.y + $(YACC) -d flexexample7.y + $(REFLEX) $(REFLAGS) --bison-locations $< + $(CC) $(CPPFLAGS) $(CXXFLAGS) -c y.tab.c + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ y.tab.o lex.yy.cpp $(LIBREFLEX) + ./reflexexample7 < flexexample7.test + +reflexexample8: reflexexample8.l flexexample8.y + $(YACC) -d flexexample8.y + $(REFLEX) $(REFLAGS) --bison-locations --bison-bridge --header-file $< + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) + ./reflexexample8 < flexexample8.test + ctokens: ctokens.l $(REFLEX) $(REFLAGS) $< $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ lex.yy.cpp $(LIBREFLEX) @@ -214,6 +242,6 @@ url: url.cpp clean-local: -rm -rf *.dSYM -rm -f *.o *.gch *.log - -rm -f lex.yy.h lex.yy.cpp y.tab.h y.tab.c reflex.*.cpp reflex.*.gv reflex.*.txt + -rm -f lex.yy.h lex.yy.cpp *.tab.h *.tab.c *.tab.hxx *.tab.cxx reflex.*.cpp reflex.*.gv reflex.*.txt -rm -f flexexample? reflexexample? -rm -f ctokens jtokens ptokens echo readline calc wc wcu wcpp wcwc tag tag_lazy tag_lazystates tag_unicode tag_tidy cow cows indent json csv braille unicode cards url diff --git a/examples/Makefile.in b/examples/Makefile.in index 685e02275..bfc943d02 100644 --- a/examples/Makefile.in +++ b/examples/Makefile.in @@ -13,6 +13,19 @@ # PARTICULAR PURPOSE. @SET_MAKE@ + +# These examples require Bison or Yacc +# +# To quickly build the examples: +# > make -f Make +# +# Or use configure and make to build: +# > ./configure && make +# > cd examples +# > make +# +# To build examples3.0 requires Bison 3.0 or greater: +# > make -f Make examples3.0 VPATH = @srcdir@ am__is_gnu_make = { \ if test -z '$(MAKELEVEL)'; then \ @@ -431,6 +444,8 @@ examples: flexexample1 \ reflexexample4 \ reflexexample5 \ reflexexample6 \ + reflexexample7 \ + reflexexample8 \ ctokens \ jtokens \ ptokens \ @@ -524,6 +539,19 @@ reflexexample6: reflexexample6.l $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ lex.yy.cpp $(LIBREFLEX) ./reflexexample6 < reflexexample6.l +reflexexample7: reflexexample7.l flexexample7.y + $(YACC) -d flexexample7.y + $(REFLEX) $(REFLAGS) --bison-locations $< + $(CC) $(CPPFLAGS) $(CXXFLAGS) -c y.tab.c + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ y.tab.o lex.yy.cpp $(LIBREFLEX) + ./reflexexample7 < flexexample7.test + +reflexexample8: reflexexample8.l flexexample8.y + $(YACC) -d flexexample8.y + $(REFLEX) $(REFLAGS) --bison-locations --bison-bridge --header-file $< + $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ y.tab.c lex.yy.cpp $(LIBREFLEX) + ./reflexexample8 < flexexample8.test + ctokens: ctokens.l $(REFLEX) $(REFLAGS) $< $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ lex.yy.cpp $(LIBREFLEX) @@ -626,7 +654,7 @@ url: url.cpp clean-local: -rm -rf *.dSYM -rm -f *.o *.gch *.log - -rm -f lex.yy.h lex.yy.cpp y.tab.h y.tab.c reflex.*.cpp reflex.*.gv reflex.*.txt + -rm -f lex.yy.h lex.yy.cpp *.tab.h *.tab.c *.tab.hxx *.tab.cxx reflex.*.cpp reflex.*.gv reflex.*.txt -rm -f flexexample? reflexexample? -rm -f ctokens jtokens ptokens echo readline calc wc wcu wcpp wcwc tag tag_lazy tag_lazystates tag_unicode tag_tidy cow cows indent json csv braille unicode cards url diff --git a/examples/README.md b/examples/README.md index 185c08185..d83c1a0ae 100644 --- a/examples/README.md +++ b/examples/README.md @@ -9,12 +9,18 @@ Flex scanner examples - `jtokens.l` and `jdefs.l` a Java tokenizer, meets Java Lexical Structure requirements - `flexexample1.l` example taken from the Flex documentation - `flexexample2.l` example from -- `flexexample3.l` example from the Flex documentation with bison -- `flexexample4.l` example from the Flex documentation with bison-bridge -- `flexexample5.l` example from the Flex documentation with bison-bridge +- `flexexample3.l` example from the Flex documentation with C bison +- `flexexample4.l` example from the Flex documentation with C bison-bridge +- `flexexample5.l` example from the Flex documentation with C bison-bridge - `flexexample6.l` example reentrant scanner with state stacks -- `flexexample7.l` example from the Flex documentation with bison-locations -- `flexexample8.l` example from the Flex documentation with bison-bridge and bison-locations +- `flexexample7.l` example from the Flex documentation with C bison-locations +- `flexexample8.l` example from the Flex documentation with C bison-bridge and bison-locations +- `flexexample3.lxx` example from the Flex documentation with C++ bison +- `flexexample4.lxx` example from the Flex documentation with C++ bison-bridge +- `flexexample5.lxx` example from the Flex documentation with C++ bison-bridge +- `flexexample7.lxx` example from the Flex documentation with C++ bison-locations +- `flexexample8.lxx` example from the Flex documentation with C++ bison-bridge and bison-locations +- `flexexample9.lxx` example Bison 3.0 %skeleton "lalr1.cc" C++ parser with bison-cc and bison-locations - `wc.l` word count example - `wcu.l` word count example with Unicode matching (RE/flex only) - `wcpp.l` word count example with lexer class variables @@ -34,10 +40,18 @@ RE/flex scanner examples - `indent.l` indentation detection and reformatting example - `braille.l` a braille translator, inspired by the re2c example but expanded - `unicode.l` a very simple Unicode word matcher to demonstrate Unicode matching -- `reflexexample3.l` example RE/flex scanner adapted from the Flex documentation with bison -- `reflexexample4.l` example RE/flex scanner adapted from the Flex documentation with bison-bridge -- `reflexexample5.l` example RE/flex scanner adapted from the Flex documentation with bison-bridge +- `reflexexample3.l` example RE/flex scanner adapted from the Flex documentation with C bison +- `reflexexample4.l` example RE/flex scanner adapted from the Flex documentation with C bison-bridge +- `reflexexample5.l` example RE/flex scanner adapted from the Flex documentation with C bison-bridge - `reflexexample6.l` example RE/flex reentrant scanner with state stacks +- `reflexexample7.l` example RE/flex scanner adapted from the Flex documentation with C bison-locations +- `reflexexample8.l` example RE/flex scanner adapted from the Flex documentation with C bison-bridge and bison-locations +- `reflexexample3.lxx` example RE/flex scanner adapted from the Flex documentation with C++ bison +- `reflexexample4.lxx` example RE/flex scanner adapted from the Flex documentation with C++ bison-bridge +- `reflexexample5.lxx` example RE/flex scanner adapted from the Flex documentation with C++ bison-bridge +- `reflexexample7.lxx` example RE/flex scanner adapted from the Flex documentation with C++ bison-locations +- `reflexexample8.lxx` example RE/flex scanner adapted from the Flex documentation with C++ bison-bridge and bison-locations +- `reflexexample9.lxx` example RE/flex scanner with Bison 3.0 %skeleton "lalr1.cc" C++ parser with bison-cc and bison-locations - `tag.l` simple lexer to print out all XML/HTML tags - `tag_lazy.l` simple lexer to print XML/HTML tags, uses lazy quants - `tag_lazystates.l` lexer to print XML tags, uses lazy quants and states diff --git a/examples/build.sh b/examples/build.sh index d40d240c8..a3913dc7d 100755 --- a/examples/build.sh +++ b/examples/build.sh @@ -1,6 +1,6 @@ #!/bin/sh echo -echo "Building the reflex examples" +echo "Building the examples" make -f Make echo echo "OK" diff --git a/examples/flexexample3.l b/examples/flexexample3.l index 3e86c9e21..dfb03a52d 100644 --- a/examples/flexexample3.l +++ b/examples/flexexample3.l @@ -1,9 +1,10 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --flex --bison flexexample3.l */ +/* Compile: bison -d -y flexexample3.y */ %top{ #include "y.tab.h" /* Generated by bison. */ -#define YY_EXTERN_C extern "C" /* only needed for yylex C linkage when compiling y.tab.c in C */ +#define YY_EXTERN_C extern "C" /* this is needed for yylex C linkage when compiling y.tab.c in C */ %} %option bison noyywrap diff --git a/examples/flexexample3.lxx b/examples/flexexample3.lxx new file mode 100644 index 000000000..22df2d9ef --- /dev/null +++ b/examples/flexexample3.lxx @@ -0,0 +1,18 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --flex --bison flexexample3.lxx */ +/* Compile: bison -d -y flexexample3.yxx */ + +%top{ +#include "flexexample3.tab.hxx" /* Generated by bison. */ +%} + +%option bison noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(yytext); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(yytext); return STRING; } +"="|";" { return yytext[0]; } +.|\n {} + +%% diff --git a/examples/flexexample3.y b/examples/flexexample3.y index 244bb964c..cc835690c 100644 --- a/examples/flexexample3.y +++ b/examples/flexexample3.y @@ -1,4 +1,4 @@ -/* Parser to convert "C" assignments to lisp. */ +/* Parser to convert "C" assignments to lisp using Bison in C. */ /* Compile: bison -d -y flexexample3.y */ %{ @@ -11,8 +11,8 @@ void yyerror(const char*); %} %union { - int num; - char* str; + int num; + char *str; } %token STRING diff --git a/examples/flexexample3.yxx b/examples/flexexample3.yxx new file mode 100644 index 000000000..76b6373a0 --- /dev/null +++ b/examples/flexexample3.yxx @@ -0,0 +1,40 @@ +/* Parser to convert "C" assignments to lisp using Bison in C++. */ +/* Compile: bison -d -y flexexample3.y */ + +%{ +#include +extern int yylex(void); +extern char *yytext; +extern int yyleng; +extern int yylineno; +void yyerror(const char*); +%} + +%union { + int num; + char *str; +} + +%token STRING +%token NUMBER + +%% + +assignments : assignment + | assignment assignments + ; +assignment : STRING '=' NUMBER ';' { std::cout << "(setf " << $1 << " " << $3 << ")\n"; } + ; + +%% + +int main() +{ + yyparse(); + return 0; +} + +void yyerror(const char *msg) +{ + std::cerr << msg << " at line " << yylineno << std::endl; +} diff --git a/examples/flexexample4.l b/examples/flexexample4.l index a76d85b42..4e31c21e2 100644 --- a/examples/flexexample4.l +++ b/examples/flexexample4.l @@ -1,5 +1,6 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --flex --bison-bridge --header-file flexexample4.l */ +/* Compile: bison -d -y flexexample4.y */ /* Example taken from Flex documentation A.2 */ /* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ /* Note: yylval is no longer a pointer with reflex */ diff --git a/examples/flexexample4.lxx b/examples/flexexample4.lxx new file mode 100644 index 000000000..fb43a665f --- /dev/null +++ b/examples/flexexample4.lxx @@ -0,0 +1,21 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --flex --bison-bridge --header-file flexexample4.lxx */ +/* Compile: bison -d -y flexexample4.yxx */ +/* Example taken from Flex documentation A.2 */ +/* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ +/* Note: yylval is no longer a pointer with reflex */ + +%top{ +#include "flexexample4.tab.hxx" /* Generated by bison. */ +%} + +%option bison-bridge noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(yytext); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(yytext); return STRING; } +"="|";" { return yytext[0]; } +.|\n {} + +%% diff --git a/examples/flexexample4.y b/examples/flexexample4.y index 45cc4460f..c5b78c44c 100644 --- a/examples/flexexample4.y +++ b/examples/flexexample4.y @@ -1,4 +1,4 @@ -/* Parser to convert "C" assignments to lisp. */ +/* Parser to convert "C" assignments to lisp using Bison in C. */ /* Demonstrates bison pure parsers */ /* Compile: bison -d -y flexexample4.y */ @@ -15,8 +15,8 @@ void yyerror(yyscan_t, const char*); %parse-param { void *scanner } %union { - int num; - char* str; + int num; + char *str; } %token STRING diff --git a/examples/flexexample4.yxx b/examples/flexexample4.yxx new file mode 100644 index 000000000..938462c68 --- /dev/null +++ b/examples/flexexample4.yxx @@ -0,0 +1,53 @@ +/* Parser to convert "C" assignments to lisp using Bison in C++. */ +/* Demonstrates bison pure parsers */ +/* Compile: bison -d flexexample4.yxx */ + +%{ +#include "lex.yy.h" /* Generated by reflex: scanner_t, yyscan_t, yylex_init, yylex_destroy */ +void yyerror(yyscan_t, const char*); +/* Pass the parameter 'scanner' to yyparse through to yylex. */ +#define YYPARSE_PARAM scanner +#define YYLEX_PARAM scanner +%} + +%pure-parser +%lex-param { void *scanner } +%parse-param { void *scanner } + +%union { + int num; + char *str; +} + +%token STRING +%token NUMBER + +%% + +assignments : assignment + | assignment assignments + ; +assignment : STRING '=' NUMBER ';' { std::cout << "(setf " << $1 << " " << $3 << ")\n"; } + ; + +%% + +int main() +{ +#if WITH_NO_C + yyscanner_t scanner; // new way in C++ using reflex-generated yyscanner_t + yyparse(&scanner); // scanner is passed on to yylex() +#else + yyscan_t scanner; /* the old way in C */ + yylex_init(&scanner); + yyparse(scanner); /* scanner is passed on to yylex() */ + yylex_destroy(scanner); +#endif + return 0; +} + +void yyerror(yyscan_t scanner, const char *msg) +{ + (void)scanner; /* appease -Wall -Werror */ + std::cerr << msg << std::endl; /* how to use yylineno with bison-bridge? See flexexample5.yxx */ +} diff --git a/examples/flexexample5.l b/examples/flexexample5.l index f8fe73bed..d1df02cfb 100644 --- a/examples/flexexample5.l +++ b/examples/flexexample5.l @@ -1,5 +1,6 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --flex --bison-bridge --header-file flexexample5.l */ +/* Compile: bison -d -y flexexample5.y */ /* Example taken from Flex documentation A.2 */ /* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ /* Note: yylval is a reference, no longer a pointer with reflex */ diff --git a/examples/flexexample5.lxx b/examples/flexexample5.lxx new file mode 100644 index 000000000..f520a6886 --- /dev/null +++ b/examples/flexexample5.lxx @@ -0,0 +1,21 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --flex --bison-bridge --header-file flexexample5.lxx */ +/* Compile: bison -d flexexample5.yxx */ +/* Example taken from Flex documentation A.2 */ +/* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ +/* Note: yylval is a reference, no longer a pointer with reflex */ + +%top{ +#include "flexexample5.tab.hxx" /* Generated by bison. */ +%} + +%option bison-bridge noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(yytext); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(yytext); return STRING; } +"="|";" { return yytext[0]; } +.|\n {} + +%% diff --git a/examples/flexexample5.y b/examples/flexexample5.y index 50d1cc46f..06d4a44d6 100644 --- a/examples/flexexample5.y +++ b/examples/flexexample5.y @@ -1,4 +1,4 @@ -/* Parser to convert "C" assignments to lisp. */ +/* Parser to convert "C" assignments to lisp using Bison in C. */ /* Demonstrates bison pure parser with parameters passed to yyparse and to yylex */ /* Compile: bison -d -y flexexample5.y */ @@ -22,8 +22,8 @@ void yyerror(struct pass_through *param, const char *msg); /* yyerror accepts `p %parse-param { struct pass_through *params } %union { - int num; - char* str; + int num; + char *str; } %token STRING diff --git a/examples/flexexample5.yxx b/examples/flexexample5.yxx new file mode 100644 index 000000000..d06e7fa5e --- /dev/null +++ b/examples/flexexample5.yxx @@ -0,0 +1,56 @@ +/* Parser to convert "C" assignments to lisp using Bison in C++. */ +/* Demonstrates bison pure parser with parameters passed to yyparse and to yylex */ +/* Compile: bison -d flexexample5.yxx */ + +%{ +#include "lex.yy.h" /* Generated by reflex: scanner_t, yyscan_t, yylex_init, yylex_destroy */ +/* %pure-parser requires us to pass the argument 'params->scanner' from yyparse through to yylex. */ +#define YYLEX_PARAM params->scanner +/* Pass argument `struct pass_through *param` with scanner object and other data */ +struct pass_through { + yyscanner_t *scanner; + int count; +}; +void yyerror(struct pass_through *param, const char *msg); /* yyerror accepts `params` */ +%} + +/* pure-parser adds yylval parameter to yylex() */ +%pure-parser +/* Add params->scanner parameter to yylex() with a trick: use YYLEX_PARAM */ +%lex-param { void *YYLEX_PARAM } +/* Add pass-through parameter to yyparse() */ +%parse-param { struct pass_through *params } + +%union { + int num; + char *str; +} + +%token STRING +%token NUMBER + +%% + +assignments : assignment + | assignment assignments + ; +assignment : STRING '=' NUMBER ';' { std::cout << "(setf " << $1 << " " << $3 << ")\n"; ++params->count; } + ; + +%% + +int main() +{ + struct pass_through params; + yyscanner_t scanner; // new way in C++ using reflex-generated yyscanner_t + params.scanner = &scanner; + params.count = 0; + yyparse(¶ms); // %parse-param, we pass params->scanner on to yylex() + std::cout << "# assignments = " << params.count << std::endl; + return 0; +} + +void yyerror(struct pass_through *params, const char*) +{ + std::cerr << "syntax error at " << params->scanner->matcher().lineno() << std::endl; +} diff --git a/examples/flexexample7.l b/examples/flexexample7.l index 2a482a412..76ff19a05 100644 --- a/examples/flexexample7.l +++ b/examples/flexexample7.l @@ -1,9 +1,10 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --flex --bison-locations flexexample7.l */ +/* Compile: bison -d -y flexexample7.y */ %top{ #include "y.tab.h" /* Generated by bison. */ -#define YY_EXTERN_C extern "C" /* only needed for yylex C linkage when compiling y.tab.c in C */ +#define YY_EXTERN_C extern "C" /* this is needed for yylex C linkage when compiling y.tab.c in C */ %} %option bison-locations noyywrap diff --git a/examples/flexexample7.lxx b/examples/flexexample7.lxx new file mode 100644 index 000000000..de5acecb8 --- /dev/null +++ b/examples/flexexample7.lxx @@ -0,0 +1,18 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --flex --bison-locations flexexample7.lxx */ +/* Compile: bison -d flexexample7.yxx */ + +%top{ +#include "flexexample7.tab.hxx" /* Generated by bison. */ +%} + +%option bison-locations noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(yytext); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(yytext); return STRING; } +"="|";" { return yytext[0]; } +.|\n {} + +%% diff --git a/examples/flexexample7.y b/examples/flexexample7.y index 08f294bcc..c6d21c449 100644 --- a/examples/flexexample7.y +++ b/examples/flexexample7.y @@ -1,4 +1,4 @@ -/* Parser to convert "C" assignments to lisp. */ +/* Parser to convert "C" assignments to lisp using Bison in C. */ /* Demonstrates bison locations with yylex() taking yylval and yylloc (reflex option bison-locations) */ /* Compile: bison -d -y flexexample7.y */ @@ -10,8 +10,8 @@ void yyerror(const char*); %locations %union { - int num; - char* str; + int num; + char *str; } %{ diff --git a/examples/flexexample7.yxx b/examples/flexexample7.yxx new file mode 100644 index 000000000..ff15eef1d --- /dev/null +++ b/examples/flexexample7.yxx @@ -0,0 +1,48 @@ +/* Parser to convert "C" assignments to lisp using Bison in C++. */ +/* Demonstrates bison locations with yylex() taking yylval and yylloc (reflex option bison-locations) */ +/* Compile: bison -d flexexample7.yxx */ + +%{ +#include +void yyerror(const char*); +%} + +%locations + +%union { + int num; + char *str; +} + +%{ +/* Patches old bison versions that don't produce correct YYLEX */ +extern int yylex(YYSTYPE*, YYLTYPE*); +#define YYLEX_PARAM &yylval, &yylloc +%} + +/* Add &yylval and &yyloc parameters to yylex() with a trick: use YYLEX_PARAM */ +%lex-param { void *YYLEX_PARAM } + +%token STRING +%token NUMBER + +%% + +assignments : assignment + | assignment assignments + ; +assignment : STRING '=' NUMBER ';' { std::cout << "(setf " << $1 << " " << $3 << ")\n"; } + ; + +%% + +int main() +{ + yyparse(); + return 0; +} + +void yyerror(const char *msg) +{ + std::cerr << msg << " at (" << yylloc.first_line << "," << yylloc.first_column << ") to (" << yylloc.last_line << "," << yylloc.last_column << ")" << std::endl; +} diff --git a/examples/flexexample8.l b/examples/flexexample8.l index e6a0e4100..689454bdb 100644 --- a/examples/flexexample8.l +++ b/examples/flexexample8.l @@ -1,5 +1,6 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --flex --bison-locations --bison-bridge --header-file flexexample8.l */ +/* Compile: bison -d -y flexexample8.y */ /* Example taken from Flex documentation A.2 */ /* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ /* Note: yylval is no longer a pointer with reflex */ diff --git a/examples/flexexample8.lxx b/examples/flexexample8.lxx new file mode 100644 index 000000000..d12cbc32c --- /dev/null +++ b/examples/flexexample8.lxx @@ -0,0 +1,21 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --flex --bison-locations --bison-bridge --header-file flexexample8.lxx */ +/* Compile: bison -d flexexample8.yxx */ +/* Example taken from Flex documentation A.2 */ +/* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ +/* Note: yylval is no longer a pointer with reflex */ + +%top{ +#include "flexexample8.tab.hxx" /* Generated by bison. */ +%} + +%option bison-locations bison-bridge noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(yytext); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(yytext); return STRING; } +"="|";" { return yytext[0]; } +.|\n {} + +%% diff --git a/examples/flexexample8.y b/examples/flexexample8.y index 10efcaf82..09c62579d 100644 --- a/examples/flexexample8.y +++ b/examples/flexexample8.y @@ -1,4 +1,4 @@ -/* Parser to convert "C" assignments to lisp. */ +/* Parser to convert "C" assignments to lisp using Bison in C. */ /* Compile: bison -d -y flexexample8.y */ %{ @@ -16,8 +16,8 @@ void yyerror(YYLTYPE*, yyscan_t, const char*); %parse-param { void *scanner } %union { - int num; - char* str; + int num; + char *str; } %token STRING diff --git a/examples/flexexample8.yxx b/examples/flexexample8.yxx new file mode 100644 index 000000000..d1d64acda --- /dev/null +++ b/examples/flexexample8.yxx @@ -0,0 +1,47 @@ +/* Parser to convert "C" assignments to lisp using Bison in C. */ +/* Compile: bison -d flexexample8.yxx */ + +%{ +#include "lex.yy.h" /* Generated by reflex: scanner_t, yyscan_t, yylex_init, yylex_destroy */ +extern int yylex(YYSTYPE*, YYLTYPE*, yyscan_t); +void yyerror(YYLTYPE*, yyscan_t, const char*); +/* Pass the parameter 'scanner' to yyparse through to yylex. */ +#define YYPARSE_PARAM scanner +#define YYLEX_PARAM scanner +%} + +%locations +%pure-parser +%lex-param { void *scanner } +%parse-param { void *scanner } + +%union { + int num; + char *str; +} + +%token STRING +%token NUMBER + +%% + +assignments : assignment + | assignment assignments + ; +assignment : STRING '=' NUMBER ';' { std::cout << "(setf " << $1 << " " << $3 << ")\n"; } + ; + +%% + +int main() +{ + yyscanner_t scanner; // new way in C++ using reflex-generated yyscanner_t + yyparse(&scanner); // scanner is passed on to yylex() + return 0; +} + +void yyerror(YYLTYPE *yylloc, yyscan_t scanner, const char *msg) +{ + (void)scanner; // appease -Wall -Werror + std::cerr << msg << " at " << yylloc->first_line << "," << yylloc->first_column << std::endl; +} diff --git a/examples/flexexample9.lxx b/examples/flexexample9.lxx new file mode 100644 index 000000000..435dbda67 --- /dev/null +++ b/examples/flexexample9.lxx @@ -0,0 +1,19 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --flex --bison-cc --bison-locations --header-file flexexample9.lxx */ +/* Compile: bison -d flexexample9.yxx */ + +%top{ +#include "flexexample9.tab.hxx" /* Generated by bison. */ +%} + +%option bison-cc bison-locations noyywrap +%option namespace=yy lexer=Lexer + +%% + +[[:digit:]]+ { yylval.num = atoi(yytext); return yy::parser::token::NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(yytext); return yy::parser::token::STRING; } +"="|";" { return yytext[0]; } +.|\n {} + +%% diff --git a/examples/flexexample9.test b/examples/flexexample9.test new file mode 100644 index 000000000..05b0e9552 --- /dev/null +++ b/examples/flexexample9.test @@ -0,0 +1,2 @@ +foo = 123; +bar = 456; diff --git a/examples/flexexample9.yxx b/examples/flexexample9.yxx new file mode 100644 index 000000000..7881a0fc9 --- /dev/null +++ b/examples/flexexample9.yxx @@ -0,0 +1,64 @@ +/* Parser to convert "C" assignments to lisp using Bison in C. */ +/* Demonstrates Bison C++ interface with %skeleton "lalr1.cc" */ +/* Compile: bison -d flexexample9.yxx */ + +%skeleton "lalr1.cc" +%require "3.0" + +%code requires{ + namespace yy { + class Lexer; /* Generated by reflex with namespace=yy lexer=Lexer */ + } + class Driver; /* Defined below */ +} + +%locations + +%parse-param { yy::Lexer& lexer } /* Construct parser object with lexer */ +%parse-param { Driver& driver } /* Construct parser object with driver (optional) */ + +%code{ + #include "lex.yy.h" + + #undef yylex + #define yylex lexer.yylex /* Within bison's parse() we should invoke lexer.yylex(), not the global yylex() */ + + class Driver { + public: + Driver(reflex::Input in) : lexer(in), parser(new yy::parser(lexer, *this)) { } + ~Driver() { delete parser; } + int parse() { return parser->parse(); } + private: + yy::Lexer lexer; + yy::parser *parser; + }; +} + +%union { + int num; + char *str; +} + +%token STRING +%token NUMBER + +%% + +assignments : assignment + | assignment assignments + ; +assignment : STRING '=' NUMBER ';' { std::cout << "(setf " << $1 << " " << $3 << ")\n"; } + ; + +%% + +int main() +{ + Driver driver(std::cin); + return driver.parse(); +} + +void yy::parser::error(const location_type& loc, const std::string& msg) +{ + std::cerr << msg << " at " << loc << std::endl; +} diff --git a/examples/reflexexample3.l b/examples/reflexexample3.l index 51f805bbf..e62d10e11 100644 --- a/examples/reflexexample3.l +++ b/examples/reflexexample3.l @@ -1,11 +1,12 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --bison reflexexample3.l */ +/* Compile: bison -d -y reflexexample3.y */ %{ #include "y.tab.h" /* Generated by bison. */ %} -%option bison +%option bison noyywrap %% diff --git a/examples/reflexexample3.lxx b/examples/reflexexample3.lxx new file mode 100644 index 000000000..188ebe954 --- /dev/null +++ b/examples/reflexexample3.lxx @@ -0,0 +1,18 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison reflexexample3.lxx */ +/* Compile: bison -d flexexample3.yxx */ + +%{ +#include "reflexexample3.tab.hxx" /* Generated by bison. */ +%} + +%option bison noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/examples/reflexexample3.y b/examples/reflexexample3.y index 03e81ec25..1bbfd2f6a 100644 --- a/examples/reflexexample3.y +++ b/examples/reflexexample3.y @@ -1,4 +1,4 @@ -/* Parser to convert "C" assignments to lisp. */ +/* Parser to convert "C" assignments to lisp using Bison in C. */ /* Compile: bison -d -y reflexexample3.y */ %{ @@ -8,8 +8,8 @@ void yyerror(const char*); %} %union { - int num; - char* str; + int num; + char *str; } %token STRING diff --git a/examples/reflexexample3.yxx b/examples/reflexexample3.yxx new file mode 100644 index 000000000..4e8c4811d --- /dev/null +++ b/examples/reflexexample3.yxx @@ -0,0 +1,37 @@ +/* Parser to convert "C" assignments to lisp using Bison in C++. */ +/* Compile: bison -d reflexexample3.yxx */ + +%{ +#include +#include "lex.yy.h" +void yyerror(const char*); +%} + +%union { + int num; + char *str; +} + +%token STRING +%token NUMBER + +%% + +assignments : assignment + | assignment assignments + ; +assignment : STRING '=' NUMBER ';' { std::cout << "(setf " << $1 << " " << $3 << ")\n"; } + ; + +%% + +int main() +{ + yyparse(); + return 0; +} + +void yyerror(const char *msg) +{ + std::cerr << msg << " at line " << YY_SCANNER.matcher().lineno() << std::endl; /* reflex-generated global `YY_SCANNER` */ +} diff --git a/examples/reflexexample4.l b/examples/reflexexample4.l index 33ccb8b3d..cec18f4df 100644 --- a/examples/reflexexample4.l +++ b/examples/reflexexample4.l @@ -1,6 +1,6 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --bison-bridge --header-file reflexexample4.l */ -/* bison -d -y flexexample4.y */ +/* compile: bison -d -y flexexample4.y */ /* Example taken from Flex documentation A.2 */ /* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ /* Note: yylval is a reference, no longer a pointer with reflex */ diff --git a/examples/reflexexample4.lxx b/examples/reflexexample4.lxx new file mode 100644 index 000000000..648e9afdd --- /dev/null +++ b/examples/reflexexample4.lxx @@ -0,0 +1,21 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison-bridge --header-file reflexexample4.lxx */ +/* Compile: bison -d flexexample4.yxx */ +/* Example taken from Flex documentation A.2 */ +/* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ +/* Note: yylval is a reference, no longer a pointer with reflex */ + +%top{ +#include "flexexample4.tab.hxx" /* Generated by bison. */ +%} + +%option bison-bridge + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/examples/reflexexample5.l b/examples/reflexexample5.l index 7baab061e..5f13b0fea 100644 --- a/examples/reflexexample5.l +++ b/examples/reflexexample5.l @@ -1,6 +1,6 @@ /* Scanner for "C" assignment statements... sort of. */ /* Compile: reflex --bison-bridge --header-file reflexexample5.l */ -/* bison -d -y flexexample5.y */ +/* Compile: bison -d -y flexexample5.y */ /* Example taken from Flex documentation A.2 */ /* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ /* Note: yylval is a reference, no longer a pointer with reflex */ diff --git a/examples/reflexexample5.lxx b/examples/reflexexample5.lxx new file mode 100644 index 000000000..abb295ead --- /dev/null +++ b/examples/reflexexample5.lxx @@ -0,0 +1,21 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison-bridge --header-file reflexexample5.lxx */ +/* Compile: bison -d flexexample5.yxx */ +/* Example taken from Flex documentation A.2 */ +/* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ +/* Note: yylval is a reference, no longer a pointer with reflex */ + +%top{ +#include "flexexample5.tab.hxx" /* Generated by bison. */ +%} + +%option bison-bridge + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/examples/reflexexample7.l b/examples/reflexexample7.l new file mode 100644 index 000000000..122c501ca --- /dev/null +++ b/examples/reflexexample7.l @@ -0,0 +1,19 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison-locations reflexexample7.l */ +/* Compile: bison -d -y flexexample7.y */ + +%top{ +#include "y.tab.h" /* Generated by bison. */ +#define YY_EXTERN_C extern "C" /* this is needed for yylex C linkage when compiling y.tab.c in C */ +%} + +%option bison-locations noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/examples/reflexexample7.lxx b/examples/reflexexample7.lxx new file mode 100644 index 000000000..fe569d9e6 --- /dev/null +++ b/examples/reflexexample7.lxx @@ -0,0 +1,18 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison-locations reflexexample7.lxx */ +/* Compile: bison -d flexexample7.yxx */ + +%top{ +#include "flexexample7.tab.hxx" /* Generated by bison. */ +%} + +%option bison-locations noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/examples/reflexexample8.l b/examples/reflexexample8.l new file mode 100644 index 000000000..7bd763506 --- /dev/null +++ b/examples/reflexexample8.l @@ -0,0 +1,21 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison-locations --bison-bridge --header-file reflexexample8.l */ +/* Compile: bison -d -y flexexample8.y */ +/* Example taken from Flex documentation A.2 */ +/* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ +/* Note: yylval is no longer a pointer with reflex */ + +%top{ +#include "y.tab.h" /* Generated by bison. */ +%} + +%option bison-locations bison-bridge noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/examples/reflexexample8.lxx b/examples/reflexexample8.lxx new file mode 100644 index 000000000..0a4b75560 --- /dev/null +++ b/examples/reflexexample8.lxx @@ -0,0 +1,21 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison-locations --bison-bridge --header-file reflexexample8.lxx */ +/* Compile: bison -d flexexample8.yxx */ +/* Example taken from Flex documentation A.2 */ +/* Bison bridge passes yylval to yylex (which limits yylval's scope to the rule actions) */ +/* Note: yylval is no longer a pointer with reflex */ + +%top{ +#include "flexexample8.tab.hxx" /* Generated by bison. */ +%} + +%option bison-locations bison-bridge noyywrap + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/examples/reflexexample9.lxx b/examples/reflexexample9.lxx new file mode 100644 index 000000000..44a137298 --- /dev/null +++ b/examples/reflexexample9.lxx @@ -0,0 +1,19 @@ +/* Scanner for "C" assignment statements... sort of. */ +/* Compile: reflex --bison-cc --bison-locations --header-file reflexexample9.lxx */ +/* Compile: bison -d flexexample9.yxx */ + +%top{ +#include "flexexample9.tab.hxx" /* Generated by bison. */ +%} + +%option bison-cc bison-locations noyywrap +%option namespace=yy lexer=Lexer lex=yylex + +%% + +[[:digit:]]+ { yylval.num = atoi(text()); return yy::parser::token::NUMBER; } +[[:alnum:]]+ { yylval.str = strdup(text()); return yy::parser::token::STRING; } +"="|";" { return text()[0]; } +.|\n {} + +%% diff --git a/include/reflex/flexlexer.h b/include/reflex/flexlexer.h index df5ef28f5..5246dc98d 100644 --- a/include/reflex/flexlexer.h +++ b/include/reflex/flexlexer.h @@ -67,7 +67,7 @@ //////////////////////////////////////////////////////////////////////////////// /// Flex and Bison-compatible `%%option bison` generates a global `YY_SCANNER` scanner object, otherwise we use *this. -#if defined(REFLEX_OPTION_reentrant) || defined(REFLEX_OPTION_bison_bridge) || (!defined(REFLEX_OPTION_bison) && !defined(REFLEX_OPTION_bison_locations) && !defined(YY_SCANNER)) +#if defined(REFLEX_OPTION_reentrant) || defined(REFLEX_OPTION_bison_cc) || defined(REFLEX_OPTION_bison_bridge) || (!defined(REFLEX_OPTION_bison) && !defined(REFLEX_OPTION_bison_locations) && !defined(YY_SCANNER)) #define YY_SCANNER (*this) #endif diff --git a/src/reflex.cpp b/src/reflex.cpp index e2acc21c1..196f4b703 100644 --- a/src/reflex.cpp +++ b/src/reflex.cpp @@ -54,6 +54,7 @@ static const char *options_table[] = { "batch", "bison", "bison_bridge", + "bison_cc", "bison_locations", "case_insensitive", "class", @@ -541,6 +542,8 @@ void Reflex::help(const char *message, const char *arg) initialize input to std::cin instead of stdin\n\ --bison\n\ generate global yylex() scanner for bison\n\ + --bison-cc\n\ + generate bison C++ interface code for bison lalr1.cc skeleton\n\ --bison-bridge\n\ generate reentrant yylex() scanner for bison pure parser\n\ --bison-locations\n\ @@ -1469,6 +1472,8 @@ void Reflex::write() options["header_file"] = std::string("lex.").append(options["prefix"]).append(".h"); } std::ofstream ofs; + std::string yystype = options["bison_cc"].empty() ? "YYSTYPE" : "yy::parser::semantic_type"; + std::string yyltype = options["bison_cc"].empty() ? "YYLTYPE" : "yy::location"; if (options["stdout"].empty()) { if (options["outfile"].empty()) @@ -1554,7 +1559,11 @@ void Reflex::write() write_prelude(); write_section_top(); write_class(); - if (!options["reentrant"].empty() || !options["bison_bridge"].empty()) + if (!options["bison_cc"].empty()) + { + write_banner("BISON C++"); + } + else if (!options["reentrant"].empty() || !options["bison_bridge"].empty()) { if (!options["bison_locations"].empty()) write_banner("BISON BRIDGE LOCATIONS"); @@ -1578,9 +1587,9 @@ void Reflex::write() "#define YY_EXTERN_C\n" "#endif\n\n"; if (!options["bison_locations"].empty()) - *out << "YY_EXTERN_C int yylex(YYSTYPE*, YYLTYPE*, yyscan_t);\n"; + *out << "YY_EXTERN_C int yylex(" << yystype << "*, " << yyltype << "*, yyscan_t);\n"; else if (!options["bison_bridge"].empty()) - *out << "YY_EXTERN_C int yylex(YYSTYPE*, yyscan_t);\n"; + *out << "YY_EXTERN_C int yylex(" << yystype << "*, yyscan_t);\n"; else *out << "YY_EXTERN_C int yylex(yyscan_t);\n"; *out << "YY_EXTERN_C void yylex_init(yyscan_t*);\n"; @@ -1606,7 +1615,7 @@ void Reflex::write() "#ifndef YY_EXTERN_C\n" "#define YY_EXTERN_C\n" "#endif\n\n" - "YY_EXTERN_C int yylex(YYSTYPE*, YYLTYPE*);\n"; + "YY_EXTERN_C int yylex(" << yystype << "*, " << yyltype << "*);\n"; } else if (!options["bison"].empty()) { @@ -1713,6 +1722,8 @@ void Reflex::write_class() *out << "#include <" << library->file << ">" << std::endl; const char *matcher = library->matcher; std::string lex = options["lex"]; + std::string yystype = options["bison_cc"].empty() ? "YYSTYPE" : "yy::parser::semantic_type"; + std::string yyltype = options["bison_cc"].empty() ? "YYLTYPE" : "yy::location"; std::string base; if (!options["flex"].empty()) { @@ -1763,23 +1774,49 @@ void Reflex::write_class() " :\n" " " << base << "(input, os)\n"; write_section_init(); - if (!options["bison_bridge"].empty() || !options["bison_locations"].empty()) + if (!options["bison_cc"].empty()) + { + if (!options["bison_locations"].empty()) + *out << + " virtual int " << lex << "(" << yystype << " *yylval, " << yyltype << " *yylloc)\n" + " {\n" + " yylloc->step();\n" + " int ret = " << lex << "(*yylval);\n" + " yylloc->end.line = matcher().lineno();\n" + " yylloc->end.column = matcher().columno();\n" + " return ret;\n" + " }\n"; + else + *out << + " virtual int " << lex << "(" << yystype << " *yylval)\n" + " {\n" + " return yylex(*yylval);\n" + " }\n"; + *out << + " virtual int yylex(void)\n" + " {\n" + " LexerError(\"" << lexer << "::yylex invoked but %option bison-cc is used\");\n" + " return 0;\n" + " }\n" + " virtual int " << lex << "(" << yystype << "& yylval)"; + } + else if (!options["bison_bridge"].empty() || !options["bison_locations"].empty()) { *out << " virtual int yylex(void)\n" " {\n" - " LexerError(\"" << lexer << "::yylex invoked but %option bison-bridge or bison-location used\");\n" + " LexerError(\"" << lexer << "::yylex invoked but %option bison-bridge and/or bison-locations is used\");\n" " return 0;\n" " }\n" - " virtual int " << lex << "(YYSTYPE& yylval)"; + " virtual int " << lex << "(" << yystype << "& yylval)"; } else { - if (options["lex"] != "yylex") + if (lex != "yylex") *out << " virtual int yylex(void)\n" " {\n" - " LexerError(\"" << lexer << "::yylex invoked but %option lex=" << lex << " used\");\n" + " LexerError(\"" << lexer << "::yylex invoked but %option lex=" << lex << " is used\");\n" " return 0;\n" " }\n"; *out << @@ -1791,22 +1828,10 @@ void Reflex::write_class() *out << "\n" " {\n" - " LexerError(\"" << lexer << "::" << lex << " invoked but %option yyclass=" << options["yyclass"] << " used\");\n" + " LexerError(\"" << lexer << "::" << lex << " invoked but %option yyclass=" << options["yyclass"] << " is used\");\n" " return 0;\n" " }" << std::endl; - if (options["bison_bridge"].empty()) - *out << - " int " << lex << "(\n" - " const reflex::Input& input,\n" - " std::ostream *os = NULL)\n" - " {\n" - " in(input);\n" - " if (os)\n" - " out(*os);\n" - " return " << lex << "();\n" - " }" - << std::endl; } else { @@ -1822,9 +1847,30 @@ void Reflex::write_class() for (Start start = 0; start < conditions.size(); ++start) *out << " static const int " << conditions[start] << " = " << start << ";\n"; - if (!options["bison_bridge"].empty() || !options["bison_locations"].empty()) + if (!options["bison_cc"].empty()) + { + if (!options["bison_locations"].empty()) + *out << + " virtual int " << lex << "(" << yystype << " *yylval, " << yyltype << " *yylloc)\n" + " {\n" + " yylloc->step();\n" + " int ret = " << lex << "(*yylval);\n" + " yylloc->end.line = matcher().lineno();\n" + " yylloc->end.column = matcher().columno();\n" + " return ret;\n" + " }\n"; + else + *out << + " virtual int " << lex << "(" << yystype << " *yylval)\n" + " {\n" + " return yylex(*yylval);\n" + " }\n"; *out << - " virtual int " << lex << "(YYSTYPE& yylval)"; + " virtual int " << lex << "(" << yystype << "& yylval)"; + } + else if (!options["bison_bridge"].empty() || !options["bison_locations"].empty()) + *out << + " virtual int " << lex << "(" << yystype << "& yylval)"; else *out << " virtual int " << lex << "()"; @@ -1832,18 +1878,18 @@ void Reflex::write_class() *out << ";\n"; else *out << " = 0;\n"; - if (options["bison_bridge"].empty()) - *out << - " int " << lex << "(\n" - " const reflex::Input& input,\n" - " std::ostream *os = NULL)\n" - " {\n" - " in(input);\n" - " if (os)\n" - " out(*os);\n" - " return " << lex << "();\n" - " }\n"; } + if (options["bison_cc"].empty() && options["bison_bridge"].empty() && options["bison_locations"].empty()) + *out << + " int " << lex << "(\n" + " const reflex::Input& input,\n" + " std::ostream *os = NULL)\n" + " {\n" + " in(input);\n" + " if (os)\n" + " out(*os);\n" + " return " << lex << "();\n" + " }\n"; write_perf_report(); *out << "};" << std::endl; @@ -2024,7 +2070,14 @@ void Reflex::write_lexer() { if (!out->good()) return; - if (!options["reentrant"].empty() || !options["bison_bridge"].empty()) + std::string lex = options["lex"]; + std::string yystype = options["bison_cc"].empty() ? "YYSTYPE" : "yy::parser::semantic_type"; + std::string yyltype = options["bison_cc"].empty() ? "YYLTYPE" : "yy::location"; + if (!options["bison_cc"].empty()) + { + write_banner("BISON C++"); + } + else if (!options["reentrant"].empty() || !options["bison_bridge"].empty()) { if (!options["bison_locations"].empty()) write_banner("BISON BRIDGE LOCATIONS"); @@ -2049,26 +2102,26 @@ void Reflex::write_lexer() "#endif\n\n"; if (!options["bison_locations"].empty()) *out << - "YY_EXTERN_C int yylex(YYSTYPE *lvalp, YYLTYPE *llocp, yyscan_t scanner)\n" + "YY_EXTERN_C int yylex(" << yystype << " *lvalp, " << yyltype << " *llocp, yyscan_t scanner)\n" "{\n" " llocp->first_line = llocp->last_line;\n" " llocp->first_column = llocp->last_column;\n" - " int res = static_cast(scanner)->" << options["lex"] << "(*lvalp);\n" + " int res = static_cast(scanner)->" << lex << "(*lvalp);\n" " llocp->last_line = static_cast(scanner)->matcher().lineno();\n" " llocp->last_column = static_cast(scanner)->matcher().columno();\n" " return res;\n" "}\n\n"; else if (!options["bison_bridge"].empty()) *out << - "YY_EXTERN_C int yylex(YYSTYPE *lvalp, yyscan_t scanner)\n" + "YY_EXTERN_C int yylex(" << yystype << " *lvalp, yyscan_t scanner)\n" "{\n" - " return static_cast(scanner)->" << options["lex"] << "(*lvalp);\n" + " return static_cast(scanner)->" << lex << "(*lvalp);\n" "}\n\n"; else *out << "YY_EXTERN_C int yylex(yyscan_t scanner)\n" "{\n" - " return static_cast(scanner)->" << options["lex"] << "();\n" + " return static_cast(scanner)->" << lex << "();\n" "}\n\n"; *out << "YY_EXTERN_C void yylex_init(yyscan_t *scanner)\n" @@ -2104,11 +2157,11 @@ void Reflex::write_lexer() "#ifndef YY_EXTERN_C\n" "#define YY_EXTERN_C\n" "#endif\n\n" - "YY_EXTERN_C int yylex(YYSTYPE *lvalp, YYLTYPE *llocp)\n" + "YY_EXTERN_C int yylex(" << yystype << " *lvalp, " << yyltype << " *llocp)\n" "{\n" " llocp->first_line = llocp->last_line;\n" " llocp->first_column = llocp->last_column;\n" - " int res = YY_SCANNER." << options["lex"] << "(*lvalp);\n" + " int res = YY_SCANNER." << lex << "(*lvalp);\n" " llocp->last_line = YY_SCANNER.matcher().lineno();\n" " llocp->last_column = YY_SCANNER.matcher().columno();\n" " return res;\n" @@ -2137,7 +2190,7 @@ void Reflex::write_lexer() "int " << options["prefix"] << "lineno;\n" "YY_EXTERN_C int " << options["prefix"] << "lex(void)\n" "{\n" - " int res = YY_SCANNER." << options["lex"] << "();\n" + " int res = YY_SCANNER." << lex << "();\n" " " << options["prefix"] << "text = const_cast(YY_SCANNER.YYText());\n" " " << options["prefix"] << "leng = static_cast(YY_SCANNER.YYLeng());\n" " " << options["prefix"] << "lineno = static_cast(YY_SCANNER.lineno());\n" @@ -2150,7 +2203,7 @@ void Reflex::write_lexer() *out << "YY_EXTERN_C int yylex(void)\n" "{\n" - " return YY_SCANNER." << options["lex"] << "();\n" + " return YY_SCANNER." << lex << "();\n" "}\n"; } write_banner("SECTION 2: rules"); @@ -2187,10 +2240,10 @@ void Reflex::write_lexer() *out << options["class"]; else *out << options["lexer"]; - if (!options["bison_bridge"].empty() || !options["bison_locations"].empty()) - *out << "::" << options["lex"] << "(YYSTYPE& yylval)\n{\n"; + if (!options["bison_cc"].empty() || !options["bison_bridge"].empty() || !options["bison_locations"].empty()) + *out << "::" << lex << "(" << yystype << "& yylval)\n{\n"; else - *out << "::" << options["lex"] << "()\n{\n"; + *out << "::" << lex << "()\n{\n"; for (Start start = 0; start < conditions.size(); ++start) { if (options["matcher"].empty()) diff --git a/src/reflex.h b/src/reflex.h index 76dc7bf93..f8b8fe184 100644 --- a/src/reflex.h +++ b/src/reflex.h @@ -64,7 +64,7 @@ #endif // DO NOT ALTER THIS LINE: the makemake.sh script updates the version -#define REFLEX_VERSION "1.0.5" +#define REFLEX_VERSION "1.0.6" /// RE/flex scanner generator class, a variation of the classic "lex" tool to generate scanners. /**