X-Git-Url: https://git.distorted.org.uk/~mdw/sod/blobdiff_plain/e95c78ede5830590397dc2673cc8a59709977b5c..88005ae9e51d97c30485739bef5f1ef0f32aac5c:/doc/refintro.tex?ds=inline

diff --git a/doc/refintro.tex b/doc/refintro.tex
index 6689505..349f7b0 100644
--- a/doc/refintro.tex
+++ b/doc/refintro.tex
@@ -99,6 +99,32 @@ The letter $\epsilon$ denotes the empty nonterminal
 \end{quote}
 
 
+\subsection{Parentheses}
+
+Parentheses are used for grouping of alternatives within the right-hand side
+of a production rule.  Specifically, a right-hand side
+\begin{quote}
+  \syntax{$\alpha$ @($\beta_1$ @! $\beta_2$ $| \cdots |$ $\beta_n$@) $\gamma$}
+\end{quote}
+where $\alpha$, $\beta_i$, and $\gamma$ are any sequence of nonterminal
+symbols or parenthesized groups, is equivalent to the right-hand side
+\begin{quote}
+  \syntax{$\alpha$ $b$ $\gamma$}
+\end{quote}
+together with the new production
+\begin{quote}
+  \syntax{$b$ ::= $\beta_1$ @! $\beta_2$ $| \cdots |$ $\beta_n$}
+\end{quote}
+where $b$ is a new nonterminal symbol.
+
+Given the indexed-nonterminal notation described below, one might consider a
+group \syntax{@($\beta_1$ @! $\beta_2$ $| \cdots |$ $\beta_n$@)} equivalent
+to \syntax{<group>@[$\beta_1$ @! $\beta_2$ $| \cdots |$ $\beta_n$@]}, where
+\begin{quote}
+  \syntax{<group>@[$x$@] ::= $x$}
+\end{quote}
+
+
 \subsection{Indexed nonterminals}
 
 Anywhere a simple nonterminal name $x$ may appear in the grammar, an
