\newif\ifspace \def\addspace{\ifspace \; \spacefalse \fi} \def\token#1{\addspace\hbox{\tt #1} \spacetrue} \def\nonterm#1{\addspace\nt{#1} \spacetrue} \def\nt#1{\hbox{\sl #1\/}} \def\brepet{\addspace\{} \def\erepet{\}} \def\boption{\addspace[} \def\eoption{]} \def\brepets{\addspace\{} \def\erepets{\}^+} \def\bparen{\addspace(} \def\eparen{)} \def\orelse{\mid \spacefalse} \def\is{ & ::= & \spacefalse } \def\alt{ \\ & \mid & \spacefalse } \def\cutline{ \\ & & \spacefalse } \def\sep{ \\[2mm] \spacefalse } \def\emptystring{\epsilon} \def\syntax{$$\begin{array}{rrl}\spacefalse} \def\endsyntax{\end{array}$$} \def\syntaxleft{$\begin{array}{rrl}\spacefalse} \def\endsyntaxleft{\end{array}$} \let\oldldots=\ldots \def\ldots{\spacefalse\oldldots} \def\synt#1{$\spacefalse#1$}