slides/src/bnf.tex
author Eugen Sawin <sawine@me73.com>
Wed, 20 Jul 2011 15:32:09 +0200
changeset 60 f00c214f8e36
permissions -rw-r--r--
Some more green on the graph.
     1 %-----cut here with a sharp machete or an 19.95 ginsu knife
     2 %************************************************************************
     3 %* BNF.tex								*
     4 %* 									*
     5 %* plain tex macros for formatting grammars				*
     6 %*									*
     7 %* Erik Quanstrom 							*
     8 %* 10. November 1990							*
     9 %************************************************************************
    10 
    11 %things to fix:
    12 %	make configurable
    13 %	work with texinfo
    14 
    15 \gdef\actifygrammarchars{%
    16 	\catcode`\>\active%
    17 	\catcode`\<\active%
    18 	\catcode`\:\active%
    19 	\catcode`\"\active%
    20 	\catcode`\;\active%
    21 	\catcode`\.\active%
    22 	\catcode`\|\active%
    23 	\catcode`\,\active}
    24 
    25 \gdef\deactifygrammarchars{%
    26 	\catcode`\>12%
    27 	\catcode`\<12%
    28 	\catcode`\:12%
    29 	\catcode`\;12%
    30 	\catcode`\.12%
    31 	\catcode`\|12%
    32 	\catcode`\,12}
    33 
    34 \newif\ifquote
    35 \quotefalse
    36 
    37 \begingroup
    38    \actifygrammarchars
    39    \gdef>{\/\endgroup$\rangle$\relax}
    40    \gdef<{$\langle$\begingroup\sl}
    41    \gdef:{$\rightarrow$}
    42 
    43    \begingroup
    44 	\catcode`\"\active
    45 	\gdef"{\ifquote%
    46 		'\endgroup\quotefalse%
    47 	   \else%
    48 		\quotetrue\begingroup\deactifygrammarchars\bf`%
    49 	\fi}%
    50    \endgroup
    51 
    52    \gdef;{\hfill\break}
    53    \gdef.{\relax}
    54    \gdef|{$\vert$}
    55    \gdef,{;\hbox to 1cm{\hfill}}
    56 \endgroup
    57 
    58 \def\begingrammar{%
    59 	\begingroup
    60 	\advance\leftskip by 1cm%
    61 	\parindent=-1cm%
    62 	\actifygrammarchars%
    63 	\def\endgrammar{\endgroup}
    64 	\parskip 1ex%
    65 	\relax
    66 }
    67 
    68 %
    69 %
    70 %
    71 \def\ul{\lower .2ex\hbox to 1ex{\hrulefill}\relax}%
    72