X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/3a774b55edfea441c1715994924c2999e9202143..3ee33e04477ace9d13587f28253fb8c6d1c7ed6c:/doc/refintro.tex

diff --git a/doc/refintro.tex b/doc/refintro.tex
index 2d4dbed..6b162bd 100644
--- a/doc/refintro.tex
+++ b/doc/refintro.tex
@@ -98,6 +98,19 @@ variables may also appear on the right-hand side in place of a nonterminal.
 Such a rule stands for a family of rules, in which each variable is replaced
 by each possible simple nonterminal or terminal symbol.
 
+As a notational convenience, where an indexed nonterminal appears on the
+right-hand side of a production rule, each actual argument may be a sequence
+of alternative right-hand sides, separated by `$|$', rather than a a simple
+terminal or nonterminal symbol.  A complex indexing of this form, say
+$x[\alpha_1 | \beta_1 | \cdots, \ldots, \alpha_n | \beta_n | \cdots]$ means
+exactly the same as $x[a_1, \ldots, a_n]$ with the additional rules
+\begin{quote}
+  \syntax{$a_1$ ::= $\alpha_1$ @! $\beta_1$ @! $\cdots$} \\
+  \hbox{}\qquad $\vdots$ \\
+  \syntax{$a_n$ ::= $\alpha_n$ @! $\beta_n$ @! $\cdots$}
+\end{quote}
+where $a_1$, \ldots, $a_n$ are new nonterminal symbols.
+
 The letter $\epsilon$ denotes the empty nonterminal
 \begin{quote}
   \syntax{$\epsilon$ ::=}
