1450a727f1eadc477f0d345c0bfc6a087a95980d
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}