padding: 0.05in; }
.grammar-footer { padding: 0.05in;
font-size: 85%; }
+.grammartoken { font-family: "lucida typewriter", lucidatypewriter,
+ monospace; }
.productions { background-color: #bbeeff; }
.productions a:active { color: #ff0000; }
.productions a:visited:hover { background-color: #99ccff; }
.productions a:visited { color: #551a8b; }
.productions a:link { color: #0000bb; }
-.productions table { vertical-align: baseline; }
+.productions table { vertical-align: baseline;
+ empty-cells: show; }
+.productions > table td,
+.productions > table th { padding: 2px; }
+.productions > table td:first-child,
+.productions > table td:last-child {
+ font-family: "lucida typewriter",
+ lucidatypewriter,
+ monospace;
+ }
+/* same as the second selector above, but expressed differently for Opera */
+.productions > table td:first-child + td + td {
+ font-family: "lucida typewriter",
+ lucidatypewriter,
+ monospace;
+ vertical-align: baseline;
+ }
+.productions > table td:first-child + td {
+ padding-left: 1em;
+ padding-right: 1em;
+ }
+.productions > table tr { vertical-align: baseline; }
.email { font-family: avantgarde, sans-serif; }
.mailheader { font-family: avantgarde, sans-serif; }
}
$BackpatchGrammarFiles{"$CURRENT_FILE"} = 1;
}
- return "<a href=\"$target\">$token</a>" . $_;
+ return "<a class='grammartoken' href=\"$target\">$token</a>" . $_;
}
sub do_cmd_grammartoken{
$DefinedGrammars{$lang} .= $_;
return ("<dl><dd class=\"grammar\">\n"
. "<div class=\"productions\">\n"
- . "<table cellpadding=\"2\">\n"
+ . "<table>\n"
. translate_commands(translate_environments($_))
. "</table>\n"
. "</div>\n"
my $lang = $CURRENT_GRAMMAR;
local($CURRENT_TOKEN) = $token;
if ($lang eq '*') {
- return ("<tr valign=\"baseline\">\n"
- . " <td><code>$token</code></td>\n"
- . " <td> ::= </td>\n"
- . " <td><code>"
+ return ("<tr>\n"
+ . " <td>$token</td>\n"
+ . " <td>::=</td>\n"
+ . " <td>"
. translate_commands($defn)
- . "</code></td></tr>"
+ . "</td></tr>"
. $_);
}
my $target;
$target = "$CURRENT_FILE\#tok-$lang-$token";
}
$TokenToTargetMapping{"$CURRENT_GRAMMAR:$token"} = $target;
- return ("<tr valign=\"baseline\">\n"
- . " <td><code><a id='tok-$token' xml:id='tok-$token'>"
- . "$token</a></code></td>\n"
- . " <td> ::= </td>\n"
- . " <td><code>"
+ return ("<tr>\n"
+ . " <td><a id='tok-$token' xml:id='tok-$token'>"
+ . "$token</a></td>\n"
+ . " <td>::=</td>\n"
+ . " <td>"
. translate_commands($defn)
- . "</code></td></tr>"
+ . "</td></tr>"
. $_);
}
local($_) = @_;
my $defn = next_argument();
$defn =~ s/^( +)/' ' x length $1/e;
- return ("<tr valign=\"baseline\">\n"
- . " <td> </td>\n"
- . " <td> </td>\n"
+ return ("<tr>\n"
+ . " <td></td>\n"
+ . " <td></td>\n"
. " <td><code>"
. translate_commands($defn)
. "</code></td></tr>"