1
% Definition of a grammar (BNF style) package for Latex and Hevea
5
% Definition for Hevea (HTML generation)
7
\def\NTS#1{{\maroon #1\/}}
9
\def\gramor{{\black $|$}}
10
\def\grameq{{\black \quad::=\quad}}
11
\def\lparen{{\black (}}
12
\def\rparen{{\black )}}
13
\def\lbracket{{\black [}}
14
\def\rbracket{{\black ]}}
16
\def\questionmark{{\black ?}}
17
\def\etoile{{\black *}}
19
% Definition for LaTeX
20
\def\T#1{{\textsf{\small{#1}}}}
21
\def\NTS#1{{\it #1\/}}
25
\def\grameq{\,\,\,::=\,\,\,\,\,}
35
\def\NT#1{\hyperlink{#1}{\NTS{#1}}}
36
\def\group#1{{\rm\lparen}#1{\rm\rparen}}
37
\def\range#1#2{#1{..}#2}
38
\def\any#1{#1$^{\etoile}$}
39
\def\some#1{#1$^{\plus}$}
40
\def\ANY#1{\any{{\rm\lparen}#1{\rm\rparen}}}
41
\def\SOME#1{\some{{\rm\lparen}#1{\rm\rparen}}}
45
% Option notation : [ xxx ] versus (xxx)^?
46
\def\opt#1{#1$^{\questionmark}$}
47
\def\OPT#1{\opt{{\rm\lparen}#1{\rm\rparen}}}
49
\def\opt#1{{\lbracket}#1{\rbracket}}
53
\newenvironment{grammar}{\begin{center}\begin{tabular}{l@{}c@{}l}}{\end{tabular}\end{center}}
54
\def\RULE#1\CASE#2{\NTS{#1} & \grameq & \KW{#2} \\}
55
\def\CASE#1{& \gramor & \KW{#1} \\}
57
\newcommand{\rt}[1]{\hypertarget{#1}{#1}}
58
\newcommand{\bs}{\textbackslash}