This package offers both a portable {py3} module and a command-line
tool.
-WARNING: This version of Normand is 0.9, meaning both the Normand
+WARNING: This version of Normand is 0.10, meaning both the Normand
language and the module/CLI interface aren't stable.
ifdef::env-github[]
* Between the last item and the ``pass:[*]`` character of a post-item
repetition, and between that ``pass:[*]`` character and the following
number or expression.
-* Between the ``!repeat``/``!r`` prefix and the following constant
- integer, name, or expression of a repetition block.
-* Between the ``!if`` prefix and the following name or expression of a
- conditional block.
+* Between the ``!repeat``/``!r`` block opening and the following
+ constant integer, name, or expression of a repetition block.
+* Between the ``!if`` block opening and the following name or expression
+ of a conditional block.
A comment is anything between two ``pass:[#]`` characters on the same
line, or from ``pass:[#]`` until the end of the line. Whitespaces and
A group is:
-. The `(` prefix.
+. The `(`, `!group`, or `!g` opening.
. Zero or more items.
-. The `)` suffix.
+. Depending on the group opening:
++
+--
+`(`::
+ The `)` closing.
+
+`!group`::
+`!g`::
+ The `!end` closing.
+--
====
Input:
Input:
----
-((aa bb cc) * 3 dd ee) * 5
+!group
+ (aa bb cc) * 3 dd ee
+!end * 5
----
Output:
A conditional block is:
-. The `!if` prefix.
+. The `!if` opening.
. One of:
. Zero or more items.
-. The `!end` suffix.
+. The `!end` closing.
====
Input:
A repetition block is:
-. The `!repeat` or `!r` prefix.
+. The `!repeat` or `!r` opening.
. One of:
. Zero or more items.
-. The `!end` suffix.
+. The `!end` closing.
You may also use a <<post-item-repetition,post-item repetition>> after
some items. The form ``!repeat{nbsp}__X__{nbsp}__ITEMS__{nbsp}!end``