| OLD | NEW |
| (Empty) |
| 1 %This _sty_ file was developed by Hugh Osborne at the University of | |
| 2 %Nijmegen, The Netherlands. It may be freely distributed under | |
| 3 %condition that this notice is always included in any copy distributed. | |
| 4 %No charge may be made for (copies of) this file, nor may any other | |
| 5 %remuneration be requested. | |
| 6 | |
| 7 \typeout{Style-Option: `bnf' v1.1a <92/01/30> (Hugh Osborne/br)} | |
| 8 | |
| 9 \def\@actifygrammarchars{% | |
| 10 \catcode`\"\active% | |
| 11 \catcode`\:\active% | |
| 12 \catcode`\,\active% | |
| 13 \catcode`\;\active% | |
| 14 \catcode`\.\active% | |
| 15 \catcode`\<\active% | |
| 16 \catcode`\>\active} | |
| 17 | |
| 18 \def\@deactifygrammarchars{% | |
| 19 \@makeother\"% | |
| 20 \@makeother\:% | |
| 21 \@makeother\,% | |
| 22 \@makeother\;% | |
| 23 \@makeother\.% | |
| 24 \@makeother\<% | |
| 25 \@makeother\>} | |
| 26 | |
| 27 \let\escapegrammar=\@deactifygrammarchars | |
| 28 | |
| 29 \begingroup | |
| 30 \@deactifygrammarchars | |
| 31 \global\let\quotesymbol=" | |
| 32 \global\let\lessthan=< | |
| 33 \global\let\greaterthan=> | |
| 34 \endgroup | |
| 35 | |
| 36 \newif\if@outsidestring \@outsidestringtrue | |
| 37 | |
| 38 \def\@first#1#2{#1} | |
| 39 \def\@second#1#2{#2} | |
| 40 | |
| 41 \begingroup | |
| 42 | |
| 43 \@actifygrammarchars | |
| 44 | |
| 45 \gdef\@defcolon#1{ | |
| 46 \catcode`\:\active | |
| 47 \def:{\def\newline{\hfill\break\hspace*{2em}}{\@deactifygrammarchars #1}} | |
| 48 \@makeother\:} | |
| 49 | |
| 50 \gdef\@defcomma#1{ | |
| 51 \catcode`\,\active | |
| 52 \def,{\def\newline{\hfill\break\hspace*{4em}}{\@deactifygrammarchars #1}} | |
| 53 \@makeother\,} | |
| 54 | |
| 55 \gdef\@defsemicolon#1{ | |
| 56 \catcode`\;\active | |
| 57 \def;{\def\newline{\hfill\break\hspace*{2em}}{\@deactifygrammarchars #1}} | |
| 58 \@makeother\;} | |
| 59 | |
| 60 \gdef\@defperiod#1{ | |
| 61 \catcode`\.\active | |
| 62 \def.{\def\newline{\vskip10pt plus10pt minus5pt}{\@deactifygrammarchars #1}} | |
| 63 \@makeother\.} | |
| 64 | |
| 65 \gdef\@defnonterminal#1{ | |
| 66 \catcode`\<\active | |
| 67 \catcode`\>\active | |
| 68 \def<{% | |
| 69 \begingroup% | |
| 70 \@first#1% | |
| 71 \@deactifygrammarchars% | |
| 72 \catcode`\>\active} | |
| 73 \def>{% | |
| 74 \@second#1% | |
| 75 \endgroup} | |
| 76 \@makeother\< | |
| 77 \@makeother\>} | |
| 78 | |
| 79 \gdef\@defquote#1{ | |
| 80 \catcode`\"\active | |
| 81 \def"{% | |
| 82 \if@outsidestring% | |
| 83 \@outsidestringfalse% | |
| 84 \begingroup% | |
| 85 \@deactifygrammarchars% | |
| 86 \catcode`\"\active% | |
| 87 \@first#1% | |
| 88 \else% | |
| 89 \@second#1% | |
| 90 \endgroup% | |
| 91 \@outsidestringtrue% | |
| 92 \fi} | |
| 93 \@makeother\"} | |
| 94 | |
| 95 \endgroup | |
| 96 | |
| 97 \let\@defterminal=\@defquote | |
| 98 | |
| 99 \newenvironment{grammar}% | |
| 100 { | |
| 101 \begin{quote}% | |
| 102 \@defaultchardefs% | |
| 103 \@dogrammarchars}% | |
| 104 {\@deactifygrammarchars% | |
| 105 \end{quote} | |
| 106 } | |
| 107 | |
| 108 \def\@dogrammarchars{ | |
| 109 \@actifygrammarchars | |
| 110 \@ifnextchar [{\@deactifygrammarchars\@getchardef}{}} | |
| 111 | |
| 112 \def\@getchardef[(#1)#2]{ | |
| 113 \@dogrammarchar{#1}[#2] | |
| 114 \@dogrammarchars} | |
| 115 | |
| 116 \def\@dogrammarchar#1[#2]{ | |
| 117 \csname @def#1\endcsname{#2}} | |
| 118 | |
| 119 \def\@defaultchardefs{ | |
| 120 \@defquote{{``}{''}}% | |
| 121 \@defnonterminal{{$<$}{$>$}}% | |
| 122 \@defcolon{:\\ {\hbox{ }} }% | |
| 123 \@defsemicolon{ $|$\\{\hbox{ }}}% | |
| 124 \@defperiod{\\{\hbox{ }};\\ }% | |
| 125 \@defcomma{, }}% | |
| OLD | NEW |