1 \newif\ifspace
2 \def\addspace{\ifspace \; \spacefalse \fi}
3 \def\token#1{\addspace\hbox{\tt #1} \spacetrue}
4 \def\nonterm#1{\addspace\nt{#1} \spacetrue}
5 \def\nt#1{\hbox{\sl #1\/}}
6 \def\brepet{\addspace\{}
7 \def\erepet{\}}
8 \def\boption{\addspace[}
9 \def\eoption{]}
10 \def\brepets{\addspace\{}
11 \def\erepets{\}^+}
12 \def\bparen{\addspace(}
13 \def\eparen{)}
14 \def\orelse{\mid \spacefalse}
15 \def\is{ & ::= & \spacefalse }
16 \def\alt{ \\ & \mid & \spacefalse }
17 \def\cutline{ \\ & & \spacefalse }
18 \def\sep{ \\[2mm] \spacefalse }
19 \def\emptystring{\epsilon}
20 \def\syntax{$$\begin{array}{rrl}\spacefalse}
21 \def\endsyntax{\end{array}$$}
22 \def\syntaxleft{$\begin{array}{rrl}\spacefalse}
23 \def\endsyntaxleft{\end{array}$}
24 \let\oldldots=\ldots
25 \def\ldots{\spacefalse\oldldots}
26 \def\synt#1{$\spacefalse#1$}
27