27 lines | 773 chars
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 |