Commit | Line | Data |
---|---|---|
faf9a90c C |
1 | % Definition of a grammar (BNF style) package for Latex and Hevea |
2 | ||
3 | ||
4 | \ifhevea | |
5 | % Definition for Hevea (HTML generation) | |
b1b2de81 | 6 | \def\T#1{{\sf{#1}}} |
faf9a90c C |
7 | \def\NTS#1{{\maroon #1\/}} |
8 | \def\KW#1{{\blue #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 ]}} | |
15 | \def\plus{{\black +}} | |
16 | \def\questionmark{{\black ?}} | |
17 | \def\etoile{{\black *}} | |
18 | \else | |
19 | % Definition for LaTeX | |
b1b2de81 | 20 | \def\T#1{{\textsf{\small{#1}}}} |
faf9a90c C |
21 | \def\NTS#1{{\it #1\/}} |
22 | \def\KW#1{{\mtt{#1}}} | |
23 | %\def\gramor{$\vert$} | |
24 | \def\gramor{$\mid$} | |
25 | \def\grameq{\,\,\,::=\,\,\,\,\,} | |
26 | \def\lparen{(} | |
27 | \def\rparen{)} | |
28 | \def\lbracket{$[$} | |
29 | \def\rbracket{$]$} | |
30 | \def\plus{+} | |
31 | \def\questionmark{?} | |
32 | \def\etoile{*} | |
33 | \fi | |
34 | ||
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}}} | |
42 | \def\OR{\gramor\ } | |
43 | ||
44 | \iflanguagestyle | |
45 | % Option notation : [ xxx ] versus (xxx)^? | |
46 | \def\opt#1{#1$^{\questionmark}$} | |
47 | \def\OPT#1{\opt{{\rm\lparen}#1{\rm\rparen}}} | |
48 | \else | |
49 | \def\opt#1{{\lbracket}#1{\rbracket}} | |
50 | \def\OPT#1{\opt{#1}} | |
51 | \fi | |
52 | ||
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} \\} | |
56 | ||
57 | \newcommand{\rt}[1]{\hypertarget{#1}{#1}} | |
58 | \newcommand{\bs}{\textbackslash} | |
59 | ||
60 | \def\lb{\char123} | |
61 | \def\rb{\char125} | |
62 | \def\lt{\tt\char60} | |
63 | \def\gt{\tt\char62} | |
64 | \def\caret{\tt\^{}} |