valid Unicode code points, any encoded sequence of code units, that
would map to Unicode code points in the range 0xD800-0xDFFF, is
ill-formed. The user can control how ``re2c`` treats such ill-formed
-sequences with ``--encoding-policy <policy>`` flag (see `Options`_
-for full explanation).
+sequences with ``--encoding-policy <policy>`` flag.
For some encodings, there are code units, that never occur in valid
encoded stream (e.g. 0xFF byte in UTF-8). If the generated scanner must
★
-* `Options <options/options_list.html>`_
+* `Options <options/options.html>`_
* `Warnings <warnings/warnings.html>`_
* `Syntax <syntax/syntax.html>`_
* `Features <features/features.html>`_
--- /dev/null
+.. |[manual_warnings_home]| replace:: [home]
+.. _[manual_warnings_home]: ../../index.html
+.. header:: |[manual_warnings_home]|_ `[Manual] <../manual.html>`_ `[Options] <options.html>`_
+.. footer:: |[manual_warnings_home]|_ `[Manual] <../manual.html>`_ `[Options] <options.html>`_
--- /dev/null
+=======
+Options
+=======
+
+.. include:: ../home.rst
+
+.. include:: options_list.rst
+
matches any code unit (either valid or invalid) and always consumes one character;
while ``[^]`` matches any valid code point (not code unit) and can consume multiple
code units. In fact, when variable-length encoding is used, ``*``
-is the only possible way to match invalid input character (see `Encodings`_ for details).
+is the only possible way to match invalid input character.
If ``-c`` is active then each regular expression is preceeded by a list
of comma separated condition names. Besides normal naming rules there
--- /dev/null
+.. |[manual_warnings_home]| replace:: [home]
+.. _[manual_warnings_home]: ../../index.html
+.. header:: |[manual_warnings_home]|_ `[Manual] <../manual.html>`_ `[Warnings] <warnings.html>`_
+.. footer:: |[manual_warnings_home]|_ `[Manual] <../manual.html>`_ `[Warnings] <warnings.html>`_
========
.. include:: ../home.rst
-.. include:: ../../contents.rst
-.. include:: wundefined_control_flow.rst
+★
+
+* `[-Wundefined-control-flow] <wundefined_control_flow.html>`_
+* `[-Wunreachable-rules] <wunreachable_rules.html>`_
+* `[-Wcondition-order] <wcondition_order.html>`_
+* `[-Wuseless-escape] <wuseless_escape.html>`_
+* `[-Wswapped-range] <wswapped_range.html>`_
+* `[-Wempty-character-class] <wempty_character_class.html>`_
+* `[-Wmatch-empty-string] <wmatch_empty_string.html>`_
+
+.. include:: warnings_general.rst
+
--- /dev/null
+
+``-W``
+ Turn on all warnings.
+
+``-Werror``
+ Turn warnings into errors. Note that this option along
+ doesn't turn on any warnings, it only affects those warnings that have
+ been turned on so far or will be turned on later.
+
+``-W<warning>``
+ Turn on individual ``warning``.
+
+``-Wno-<warning>``
+ Turn off individual ``warning``.
+
+``-Werror-<warning>``
+ Turn on individual ``warning`` and treat it as error (this implies ``-W<warning>``).
+
+``-Wno-error-<warning>``
+ Don't treat this particular ``warning`` as error. This doesn't turn off
+ the warning itself.
+
-``-W``
- Turn on all warnings.
-
-``-Werror``
- Turn warnings into errors. Note that this option along
- doesn't turn on any warnings, it only affects those warnings that have
- been turned on so far or will be turned on later.
-
-``-W<warning>``
- Turn on individual ``warning``.
-
-``-Wno-<warning>``
- Turn off individual ``warning``.
-
-``-Werror-<warning>``
- Turn on individual ``warning`` and treat it as error (this implies ``-W<warning>``).
-
-``-Wno-error-<warning>``
- Don't treat this particular ``warning`` as error. This doesn't turn off
- the warning itself.
``-Wcondition-order``
Warn if the generated program makes implicit
default rule ``*`` (this rule has the lowest priority, matches any code unit and consumes
exactly one code unit).
+``-Wunreachable-rules``
+ Warn about rules that are shadowed by other rules and will never match.
+
``-Wuseless-escape``
Warn if a symbol is escaped when it shouldn't be.
By default re2c silently ignores escape, but this may as well indicate a
--- /dev/null
+[-Wcondition-order]
+--------------------------
+
+.. include:: home.rst
+
--- /dev/null
+[-Wempty-character-class]
+--------------------------
+
+.. include:: home.rst
+
--- /dev/null
+[-Wmatch-empty-string]
+--------------------------
+
+.. include:: home.rst
+
--- /dev/null
+[-Wswapped-range]
+--------------------------
+
+.. include:: home.rst
+
--- /dev/null
+[-Wundefined-control-flow]
+--------------------------
+
+.. include:: home.rst
+
+.. code-block:: cpp
+
+ /*!re2c
+ [1-9][0-9]* {}
+ */
+
+
+.. code-block:: cpp
+
+ /*!re2c
+ [^] {}
+ */
--- /dev/null
+[-Wunreachable-rules]
+--------------------------
+
+.. include:: home.rst
+
+.. code-block:: cpp
+
+ /*!re2c
+ [^]* "a" {}
+ */
+
--- /dev/null
+[-Wuseless-escape]
+--------------------------
+
+.. include:: home.rst
+