1 <?xml version=
"1.0" encoding=
"UTF-8"?>
3 <!-- This file is part of Shapes. -->
5 <!-- Shapes is free software: you can redistribute it and/or modify -->
6 <!-- it under the terms of the GNU General Public License as published by -->
7 <!-- the Free Software Foundation, either version 3 of the License, or -->
8 <!-- any later version. -->
10 <!-- Shapes is distributed in the hope that it will be useful, -->
11 <!-- but WITHOUT ANY WARRANTY; without even the implied warranty of -->
12 <!-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -->
13 <!-- GNU General Public License for more details. -->
15 <!-- You should have received a copy of the GNU General Public License -->
16 <!-- along with Shapes. If not, see <http://www.gnu.org/licenses/>. -->
18 <!-- Copyright 2008 Henrik Tidefelt -->
20 <xsl:stylesheet version=
"2.0"
21 xmlns:
xsl=
"http://www.w3.org/1999/XSL/Transform">
23 <xsl:template match=
"str-PDF"><span class=
"medium-caps">pdf
</span></xsl:template>
24 <xsl:template match=
"str-HTML"><span class=
"medium-caps">html
</span></xsl:template>
25 <xsl:template match=
"str-XML"><span class=
"medium-caps">xml
</span></xsl:template>
26 <xsl:template match=
"str-SVG"><span class=
"medium-caps">svg
</span></xsl:template>
27 <xsl:template match=
"str-PostScript">PostScript
</xsl:template>
28 <xsl:template match=
"str-Shapes">Shapes
</xsl:template>
29 <xsl:template match=
"str-TeX"><span class=
"tex">T
<sub>e
</sub>X
</span></xsl:template>
30 <xsl:template match=
"str-LaTeX"><span class=
"latex">L
<sup>a
</sup>T
<sub>e
</sub>X
</span></xsl:template>
31 <xsl:template match=
"str-pdfLaTeX"><span class=
"latex">pdfL
<sup>a
</sup>T
<sub>e
</sub>X
</span></xsl:template>
32 <xsl:template match=
"str-MetaPost">MetaPost
</xsl:template>
33 <xsl:template match=
"str-UTF-8"><span class=
"medium-caps">utf
</span>-
8</xsl:template>
34 <xsl:template match=
"str-2D">2<span class=
"medium-caps"><sup>d
</sup></span></xsl:template>
35 <xsl:template match=
"str-3D">3<span class=
"medium-caps"><sup>d
</sup></span></xsl:template>
37 <xsl:template name=
"str-Google" match=
"str-Google"><span class=
"Google"><blue>G
</blue><red>o
</red><yellow>o
</yellow><blue>g
</blue><green>l
</green><red>e
</red><black>™
</black></span></xsl:template>
39 <xsl:template match=
"abbr-etc">&c
</xsl:template>
41 <xsl:template match=
"char-cdot">*
</xsl:template>
42 <xsl:template match=
"char-bullet">•
</xsl:template>
43 <xsl:template match=
"char-str-open">`
</xsl:template>
44 <xsl:template match=
"char-str-close">´
</xsl:template>
46 <xsl:template match=
"const-false"><rm>false
</rm></xsl:template>
47 <xsl:template match=
"const-true"><rm>true
</rm></xsl:template>
49 <xsl:template match=
"x-hat"><b>x
</b></xsl:template>
50 <xsl:template match=
"y-hat"><b>y
</b></xsl:template>
51 <xsl:template match=
"z-hat"><b>z
</b></xsl:template>
53 <xsl:template match=
"physical"><span class=
"nowrap"><xsl:apply-templates select=
"scalar" /><span class=
"xx-small"> </span><xsl:apply-templates select=
"unit" /></span></xsl:template>
54 <xsl:template match=
"sci-fmt[@mantissa,@exp]"><span class=
"nowrap"><xsl:value-of select=
"@mantissa" /><span class=
"small-caps">e
</span><xsl:value-of select=
"@exp" /></span></xsl:template>
55 <xsl:template match=
"quote">“
<xsl:apply-templates />”
</xsl:template>
57 <xsl:template match=
"filename"><filename><xsl:value-of select=
"." /></filename></xsl:template>
59 <xsl:template match=
"p[not(@class)]">
60 <div class=
"p"><xsl:apply-templates/></div>
62 <xsl:template match=
"p[@class='center']">
63 <div class=
"p" style=
"text-align:center;"><xsl:apply-templates/></div>
66 <xsl:template match=
"ol">
67 <ol><xsl:apply-templates/></ol>
69 <xsl:template match=
"ol/li">
70 <li><xsl:apply-templates/></li>
73 <xsl:template match=
"ul">
74 <ul><xsl:apply-templates/></ul>
76 <xsl:template match=
"ul/li">
77 <li><xsl:apply-templates/></li>
80 <xsl:template match=
"pre">
82 <xsl:apply-templates/>
85 <xsl:template match=
"pre[@class]">
86 <xsl:element name=
"pre">
87 <xsl:attribute name=
"class"><xsl:value-of select=
"@class" /></xsl:attribute>
88 <xsl:apply-templates/>
92 <xsl:template match=
"note">
94 <tr><td><xsl:apply-templates/></td></tr>
98 <xsl:template match=
"see-also">
101 <xsl:for-each select=
"*">
102 <xsl:text> </xsl:text><xsl:apply-templates select=
"."/>
107 <xsl:template name=
"head-navigation" >
109 <xsl:element name=
"a"><xsl:attribute name=
"href"><xsl:value-of select=
"/book/base/@href" />index.html
</xsl:attribute><xsl:text>To top.
</xsl:text></xsl:element>
110 <xsl:if test=
"/book/up-link">
111 <xsl:text> Up:
</xsl:text><xsl:apply-templates select=
"/book/up-link" />
116 <xsl:template name=
"part-to-href">
117 <xsl:param name=
"name" />
118 <xsl:value-of select=
"/book/base/@href" /><xsl:choose>
119 <xsl:when test=
"$name='syntax'">syntax.html
</xsl:when>
120 <xsl:when test=
"$name='bindings'">bindings.html
</xsl:when>
121 <xsl:when test=
"$name='states'">states.html
</xsl:when>
122 <xsl:when test=
"$name='dynamic'">dynamic.html
</xsl:when>
123 <xsl:when test=
"$name='types'">types.html
</xsl:when>
124 <xsl:when test=
"$name='state-types'">state-types.html
</xsl:when>
125 <xsl:when test=
"$name='algo-tol'">algo-tol.html
</xsl:when>
126 <xsl:when test=
"$name='man'">man.html
</xsl:when>
127 <xsl:when test=
"$name='tutorial'">tutorial.html
</xsl:when>
128 <xsl:when test=
"$name='extensions'">extensions/index.html
</xsl:when>
129 <xsl:when test=
"$name='install'">install.html
</xsl:when>
132 <xsl:template name=
"extension-to-href">
133 <xsl:param name=
"name" />
134 <xsl:value-of select=
"/book/base/@href" /><xsl:text>extensions/
</xsl:text><xsl:value-of select=
"$name" /><xsl:text>.html
</xsl:text>
136 <xsl:template name=
"id-to-anchor-name">
137 <xsl:param name=
"id" />
138 <xsl:text>secid:
</xsl:text><xsl:value-of select=
"$id" />
141 <xsl:template match=
"part-href[@name]">
142 <xsl:call-template name=
"part-to-href">
143 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
146 <xsl:template match=
"extension-href[@name]">
147 <xsl:call-template name=
"extension-to-href">
148 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
152 <xsl:template match=
"a[@part | @id]">
153 <xsl:element name=
"a">
154 <xsl:attribute name=
"href">
155 <xsl:if test=
"@part">
156 <xsl:call-template name=
"part-to-href">
157 <xsl:with-param name=
"name"><xsl:value-of select=
"@part" /></xsl:with-param>
161 <xsl:text>#
</xsl:text>
162 <xsl:call-template name=
"id-to-anchor-name"><xsl:with-param name=
"id"><xsl:value-of select=
"@id" /></xsl:with-param></xsl:call-template>
166 <xsl:when test=
"node()">
167 <xsl:apply-templates />
169 <xsl:when test=
"@part">
171 <xsl:call-template name=
"part-to-href">
172 <xsl:with-param name=
"name"><xsl:value-of select=
"@part" /></xsl:with-param>
177 <xsl:variable name=
"dstid">
178 <xsl:value-of select=
"@id" />
180 <xsl:apply-templates select=
"//section[@id=$dstid]/title" />
181 <xsl:apply-templates select=
"//example-with-output[@id=$dstid]/@title" />
186 <xsl:template match=
"a[@id]/title">
187 <xsl:variable name=
"dstid">
188 <xsl:value-of select=
"../@id" />
190 <xsl:apply-templates select=
"//section[@id=$dstid]/title" />
192 <xsl:template match=
"a[@extension]">
193 <xsl:element name=
"a">
194 <xsl:attribute name=
"href">
195 <xsl:call-template name=
"extension-to-href">
196 <xsl:with-param name=
"name"><xsl:value-of select=
"@extension" /></xsl:with-param>
199 <xsl:text>#
</xsl:text>
200 <xsl:call-template name=
"id-to-anchor-name"><xsl:with-param name=
"id"><xsl:value-of select=
"@id" /></xsl:with-param></xsl:call-template>
203 <filename><xsl:value-of select=
"@extension" /></filename>
207 <xsl:template match='a[@
method=
"google-lucky" and @query]'
>
208 <xsl:element name=
"a">
209 <xsl:attribute name=
"href">http://www.google.com/search?btnI=I%
27m+Feeling+Lucky
&q=
<xsl:value-of select=
"@query" /></xsl:attribute>
211 <xsl:when test=
"node()">
212 <xsl:apply-templates />
215 <xsl:text>[
</xsl:text><xsl:call-template name=
"str-Google" /><xsl:text>_lucky `
</xsl:text><xsl:value-of select=
"@query" /><xsl:text>´]
</xsl:text>
220 <xsl:template match='a[@
method=
"google" and @query]'
>
221 <xsl:element name=
"a">
222 <xsl:attribute name=
"href">http://www.google.com/search?q=
<xsl:value-of select=
"@query" /></xsl:attribute>
224 <xsl:when test=
"node()">
225 <xsl:apply-templates />
228 <xsl:text>[
</xsl:text><xsl:call-template name=
"str-Google" /><xsl:text> `
</xsl:text><xsl:value-of select=
"@query" /><xsl:text>´]
</xsl:text>
233 <xsl:template match=
"a[@query]/query">
234 <xsl:value-of select=
"../@query" />
238 <xsl:template name=
"name-to-binding">
239 <xsl:param name=
"name" />
240 <varname><xsl:value-of select=
"$name" /></varname>
242 <xsl:template name=
"name-to-linked-binding">
243 <xsl:param name=
"extension" />
244 <xsl:param name=
"extension-href" />
245 <xsl:param name=
"name" />
246 <xsl:element name=
"a">
247 <xsl:attribute name=
"class">discrete
</xsl:attribute>
248 <xsl:attribute name=
"href">
250 <xsl:when test=
"$extension">
251 <xsl:call-template name=
"extension-to-href"><xsl:with-param name=
"name"><xsl:value-of select=
"$extension" /></xsl:with-param></xsl:call-template>#bind/
<xsl:value-of select=
"$name" />
253 <xsl:when test=
"$extension-href">
254 <xsl:value-of select=
"$extension-href" />#bind/
<xsl:value-of select=
"$name" />
257 <xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">bindings
</xsl:with-param></xsl:call-template>#bind/
<xsl:value-of select=
"$name" />
261 <xsl:call-template name=
"name-to-binding">
262 <xsl:with-param name=
"name"><xsl:value-of select=
"$name" /></xsl:with-param>
266 <xsl:template match=
"binding[@name and not(@extension)]">
267 <xsl:call-template name=
"name-to-linked-binding">
268 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
271 <xsl:template match=
"binding[@name and @extension]">
272 <xsl:call-template name=
"name-to-linked-binding">
273 <xsl:with-param name=
"extension"><xsl:value-of select=
"@extension" /></xsl:with-param>
274 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
277 <xsl:template match=
"user-binding[@name]">
278 <xsl:call-template name=
"name-to-binding">
279 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
283 <xsl:template name=
"name-to-dynvar">
284 <xsl:param name=
"name" />
285 <varname>@
<xsl:value-of select=
"$name" /></varname>
287 <xsl:template name=
"name-to-linked-dynvar">
288 <xsl:param name=
"extension" />
289 <xsl:param name=
"extension-href" />
290 <xsl:param name=
"name" />
291 <xsl:element name=
"a">
292 <xsl:attribute name=
"class">discrete
</xsl:attribute>
293 <xsl:attribute name=
"href">
295 <xsl:when test=
"$extension">
296 <xsl:call-template name=
"extension-to-href"><xsl:with-param name=
"name"><xsl:value-of select=
"$extension" /></xsl:with-param></xsl:call-template>#dyn/
<xsl:value-of select=
"$name" />
298 <xsl:when test=
"$extension-href">
299 <xsl:value-of select=
"$extension-href" />#dyn/
<xsl:value-of select=
"$name" />
302 <xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">dynamic
</xsl:with-param></xsl:call-template>#dyn/
<xsl:value-of select=
"$name" />
306 <xsl:call-template name=
"name-to-dynvar">
307 <xsl:with-param name=
"name"><xsl:value-of select=
"$name" /></xsl:with-param>
311 <xsl:template match=
"dynvar[@name and not(@extension)]">
312 <xsl:call-template name=
"name-to-linked-dynvar">
313 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
316 <xsl:template match=
"dynvar[@name and @extension]">
317 <xsl:call-template name=
"name-to-linked-dynvar">
318 <xsl:with-param name=
"extension"><xsl:value-of select=
"@extension" /></xsl:with-param>
319 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
323 <xsl:template name=
"name-to-state">
324 <xsl:param name=
"name" />
325 <varname>•
<xsl:value-of select=
"$name" /></varname>
327 <xsl:template name=
"name-to-linked-state">
328 <xsl:param name=
"name" />
329 <xsl:element name=
"a">
330 <xsl:attribute name=
"class">discrete
</xsl:attribute>
331 <xsl:attribute name=
"href"><xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">states
</xsl:with-param></xsl:call-template>#state/
<xsl:value-of select=
"$name" /></xsl:attribute>
332 <xsl:call-template name=
"name-to-state">
333 <xsl:with-param name=
"name"><xsl:value-of select=
"$name" /></xsl:with-param>
337 <xsl:template match=
"state[@name]">
338 <xsl:call-template name=
"name-to-linked-state">
339 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
343 <xsl:template name=
"name-to-type">
344 <xsl:param name=
"name" />
345 <typename>§
<xsl:value-of select=
"$name" /></typename>
347 <xsl:template name=
"name-to-linked-type">
348 <xsl:param name=
"name" />
349 <xsl:element name=
"a">
350 <xsl:attribute name=
"class">discrete
</xsl:attribute>
351 <xsl:attribute name=
"href"><xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">types
</xsl:with-param></xsl:call-template>#type/
<xsl:value-of select=
"$name" /></xsl:attribute>
352 <xsl:call-template name=
"name-to-type">
353 <xsl:with-param name=
"name"><xsl:value-of select=
"$name" /></xsl:with-param>
357 <xsl:template match=
"named-type[@name and not(@link)]">
358 <xsl:call-template name=
"name-to-linked-type">
359 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
362 <xsl:template match=
"named-type[@name and @link='no']">
363 <xsl:call-template name=
"name-to-type">
364 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
368 <xsl:template name=
"name-to-template-type">
369 <xsl:param name=
"name" />
370 <typename class=
"template">§
<xsl:value-of select=
"$name" /></typename>
372 <xsl:template match=
"template-type[@name]">
373 <xsl:call-template name=
"name-to-template-type">
374 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
378 <xsl:template name=
"name-to-state-type">
379 <xsl:param name=
"name" />
380 <typename>§•
<xsl:value-of select=
"$name" /></typename>
382 <xsl:template name=
"name-to-linked-state-type">
383 <xsl:param name=
"name" />
384 <xsl:element name=
"a">
385 <xsl:attribute name=
"class">discrete
</xsl:attribute>
386 <xsl:attribute name=
"href"><xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">state-types
</xsl:with-param></xsl:call-template>#state-type/
<xsl:value-of select=
"$name" /></xsl:attribute>
387 <xsl:call-template name=
"name-to-state-type">
388 <xsl:with-param name=
"name"><xsl:value-of select=
"$name" /></xsl:with-param>
392 <xsl:template match=
"named-state-type[@name and not(@link)]">
393 <xsl:call-template name=
"name-to-linked-state-type">
394 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
397 <xsl:template match=
"named-state-type[@name and @link='no']">
398 <xsl:call-template name=
"name-to-state-type">
399 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
403 <xsl:template name=
"name-to-template-state-type">
404 <xsl:param name=
"name" />
405 <typename class=
"template">§•
<xsl:value-of select=
"$name" /></typename>
407 <xsl:template match=
"template-state-type[@name]">
408 <xsl:call-template name=
"name-to-template-state-type">
409 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
413 <xsl:template name=
"name-to-mutator">
414 <xsl:param name=
"name" />
415 <varname><xsl:value-of select=
"$name" /></varname>
417 <xsl:template name=
"name-to-linked-mutator">
418 <xsl:param name=
"extension" />
419 <xsl:param name=
"extension-href" />
420 <xsl:param name=
"type" />
421 <xsl:param name=
"name" />
422 <xsl:element name=
"a">
423 <xsl:attribute name=
"class">discrete
</xsl:attribute>
424 <xsl:attribute name=
"href">
426 <xsl:when test=
"$extension">
427 <xsl:call-template name=
"extension-to-href"><xsl:with-param name=
"name"><xsl:value-of select=
"$extension" /></xsl:with-param></xsl:call-template>#mutator/
<xsl:value-of select=
"$type" />/
<xsl:value-of select=
"$name" />
429 <xsl:when test=
"$extension-href">
430 <xsl:value-of select=
"$extension-href" />#mutator/
<xsl:value-of select=
"$type" />/
<xsl:value-of select=
"$name" />
433 <xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">state-types
</xsl:with-param></xsl:call-template>#mutator/
<xsl:value-of select=
"$type" />/
<xsl:value-of select=
"$name" />
437 <xsl:call-template name=
"name-to-state-type">
438 <xsl:with-param name=
"name"><xsl:value-of select=
"$type" /></xsl:with-param>
441 <xsl:call-template name=
"name-to-mutator">
442 <xsl:with-param name=
"name"><xsl:value-of select=
"$name" /></xsl:with-param>
446 <xsl:template match=
"mutator[@type and @mutator and not(@extension)]">
447 <xsl:call-template name=
"name-to-linked-mutator">
448 <xsl:with-param name=
"type"><xsl:value-of select=
"@type" /></xsl:with-param>
449 <xsl:with-param name=
"name"><xsl:value-of select=
"@mutator" /></xsl:with-param>
452 <xsl:template match=
"mutator[@type and @mutator and @extension]">
453 <xsl:call-template name=
"name-to-linked-mutator">
454 <xsl:with-param name=
"extension"><xsl:value-of select=
"@extension" /></xsl:with-param>
455 <xsl:with-param name=
"type"><xsl:value-of select=
"@type" /></xsl:with-param>
456 <xsl:with-param name=
"name"><xsl:value-of select=
"@mutator" /></xsl:with-param>
460 <xsl:template match=
"tol-param[@name and @link='no']">
461 <tolparam><xsl:value-of select=
"@name" /></tolparam>
463 <xsl:template match=
"tol-param[@name and not(@link)]">
464 <xsl:element name=
"a">
465 <xsl:attribute name=
"class">discrete
</xsl:attribute>
466 <xsl:attribute name=
"href"><xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">algo-tol
</xsl:with-param></xsl:call-template>#tol-
<xsl:value-of select=
"@name" /></xsl:attribute>
467 <tolparam><xsl:value-of select=
"@name" /></tolparam>
471 <xsl:template name=
"name-to-operator">
472 <xsl:param name=
"name" />
473 <inline><xsl:value-of select=
"$name" /></inline>
475 <xsl:template match=
"operator[@name]">
476 <xsl:call-template name=
"name-to-operator">
477 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
480 <xsl:template name=
"name-to-operator-unary-prefix">
481 <xsl:param name=
"name" />
482 <inline><xsl:value-of select=
"$name" /></inline>
484 <xsl:template match=
"operator-unary-prefix[@name]">
485 <xsl:call-template name=
"name-to-operator-unary-prefix">
486 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
490 <xsl:template match=
"inline"><inline><xsl:apply-templates/></inline></xsl:template>
491 <xsl:template match=
"em"><em><xsl:apply-templates/></em></xsl:template>
492 <xsl:template match=
"b"><b><xsl:apply-templates/></b></xsl:template>
493 <xsl:template match=
"bnf"><bnf><xsl:apply-templates/></bnf></xsl:template>
494 <xsl:template match=
"union-type">
495 <typename><xsl:text>(
</xsl:text></typename>
496 <xsl:for-each select=
"./*">
497 <xsl:if test=
"position() > 1">
498 <typename><xsl:text>|
</xsl:text></typename>
500 <xsl:apply-templates select=
"." />
501 <xsl:text> </xsl:text>
503 <typename>)
</typename>
505 <xsl:template match=
"structure-type">
506 <typename><xsl:text>(
> </xsl:text></typename>
507 <xsl:for-each select=
"field">
508 <xsl:if test=
"@name">
509 <xsl:value-of select=
"@name" /><xsl:text>::
</xsl:text>
511 <xsl:if test=
"not(@name)">
512 <xsl:value-of select=
"position( )" /><xsl:text>::
</xsl:text>
514 <xsl:if test=
"not(type)">
515 <typename>Any-Type
</typename>
517 <xsl:apply-templates select=
"type" />
518 <xsl:text> </xsl:text>
520 <typename><)
</typename>
522 <xsl:template match=
"structure-type/field">
524 <xsl:template match=
"function-type">
525 <typename><xsl:text>(
</xsl:text></typename>
526 <xsl:apply-templates select=
"arguments" />
527 <xsl:text> →
</xsl:text>
528 <xsl:apply-templates select=
"result" />
529 <typename><xsl:text> )
</xsl:text></typename>
531 <xsl:template match=
"typename"><typename><xsl:apply-templates/></typename></xsl:template>
532 <xsl:template match=
"typename[@class='replacable']">
533 <typename class=
"replacable"><xsl:apply-templates/></typename>
535 <xsl:template match=
"replacable-text[@name]">
536 <varname class=
"replacable"><xsl:value-of select=
"@name" /></varname>
539 <xsl:template name=
"name-to-argument">
540 <xsl:param name=
"name" />
541 <xsl:param name=
"class" />
542 <xsl:element name=
"varname">
543 <xsl:attribute name=
"class"><xsl:value-of select=
"$class" /></xsl:attribute>
544 <xsl:value-of select=
"$name" />
547 <xsl:template match=
"p/arg[@name] | td/arg[@name]">
548 <xsl:call-template name=
"name-to-argument">
549 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
550 <xsl:with-param name=
"class"><xsl:value-of select=
"@class" /></xsl:with-param>
554 <xsl:template name=
"name-to-state-argument">
555 <xsl:param name=
"name" />
556 <xsl:param name=
"class" />
557 <xsl:element name=
"varname">
558 <xsl:attribute name=
"class"><xsl:value-of select=
"$class" /></xsl:attribute>
559 <xsl:call-template name=
"name-to-state">
560 <xsl:with-param name=
"name"><xsl:value-of select=
"$name" /></xsl:with-param>
564 <xsl:template match=
"state-arg[@name]">
565 <xsl:call-template name=
"name-to-state-argument">
566 <xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param>
567 <xsl:with-param name=
"class"><xsl:value-of select=
"@class" /></xsl:with-param>
571 <xsl:template match=
"field[@name and not(@class)]">
572 <varname><xsl:value-of select=
"@name" /></varname>
574 <xsl:template match=
"field[@name and @class='replacable']">
575 <varname class=
"replacable"><xsl:value-of select=
"@name" /></varname>
578 <xsl:template match=
"lexerregexp">
579 <lexerregexp><xsl:apply-templates/></lexerregexp>
581 <xsl:template match=
"syntax[@name and @class='new']">
582 <xsl:element name=
"a">
583 <xsl:attribute name=
"name">stx/
<xsl:value-of select=
"@name" /></xsl:attribute>
584 <syntaxname class=
"new"><xsl:value-of select=
"@name"/></syntaxname>
587 <xsl:template match=
"syntax[@name and not(@class)]">
588 <xsl:element name=
"a">
589 <xsl:attribute name=
"class">discrete
</xsl:attribute>
590 <xsl:attribute name=
"href"><xsl:call-template name=
"part-to-href"><xsl:with-param name=
"name">syntax
</xsl:with-param></xsl:call-template>#stx/
<xsl:value-of select=
"@name" /></xsl:attribute>
591 <syntaxname><xsl:value-of select=
"@name"/></syntaxname>
594 <xsl:template match=
"a[@href]">
595 <xsl:element name=
"a">
596 <xsl:attribute name=
"href"><xsl:value-of select=
"@href" /></xsl:attribute>
597 <xsl:apply-templates/>
600 <xsl:template match=
"command-line">
601 <pre class=
"terminal">
602 <xsl:apply-templates/>
606 <xsl:template match=
"tight-table">
607 <table class=
"tight"><xsl:apply-templates select=
"tr"/></table>
609 <xsl:template match=
"loose-table">
610 <table class=
"loose"><xsl:apply-templates select=
"tr"/></table>
613 <xsl:template match=
"tr">
614 <tr><xsl:apply-templates/></tr>
616 <xsl:template match=
"tr[@align]">
617 <xsl:element name=
"tr">
618 <xsl:attribute name=
"align"><xsl:value-of select=
"./@align" /></xsl:attribute>
619 <xsl:apply-templates/>
622 <xsl:template match=
"head/tr/td">
623 <th><xsl:apply-templates/></th>
625 <xsl:template match=
"td">
626 <td><xsl:apply-templates/></td>
628 <xsl:template match=
"th">
629 <th><xsl:apply-templates/></th>
631 <xsl:template match=
"th[@colspan]">
632 <xsl:element name=
"th">
633 <xsl:attribute name=
"colspan"><xsl:value-of select=
"./@colspan" /></xsl:attribute>
634 <xsl:apply-templates/>
638 <xsl:template match=
"img[@*]">
639 <xsl:element name=
"img">
640 <xsl:attribute name=
"src"><xsl:value-of select=
"@src" /></xsl:attribute>
641 <xsl:attribute name=
"alt"><xsl:value-of select=
"@alt" /></xsl:attribute>
645 <xsl:template match=
"arguments">
646 <xsl:apply-templates select=
"arg | state"/>
647 <xsl:apply-templates select=
"sink"/>
650 <xsl:template match=
"arguments/arg">
651 <xsl:if test=
"@identifier">
652 <xsl:call-template name=
"name-to-argument"><xsl:with-param name=
"name"><xsl:value-of select=
"@identifier" /></xsl:with-param></xsl:call-template>
654 <xsl:apply-templates select=
"default"/>
655 <xsl:apply-templates select=
"type"/>
656 <xsl:text> </xsl:text>
658 <xsl:template match=
"arguments/arg/default">:
<xsl:apply-templates /></xsl:template>
659 <xsl:template match=
"arguments/arg/type"><xsl:text>::
</xsl:text><xsl:apply-templates /></xsl:template>
661 <xsl:template match=
"arguments/state[@identifier]">
662 <xsl:call-template name=
"name-to-state-argument"><xsl:with-param name=
"name"><xsl:value-of select=
"@identifier" /></xsl:with-param></xsl:call-template>
663 <xsl:apply-templates select=
"type"/>
664 <xsl:text> </xsl:text>
666 <xsl:template match=
"arguments/state[not(@identifier)]">
667 <xsl:apply-templates select=
"type"/>
668 <xsl:text> </xsl:text>
670 <xsl:template match=
"arguments/state/type"><xsl:text>::
</xsl:text><xsl:apply-templates /></xsl:template>
672 <xsl:template match=
"arguments/sink[@identifier]">
673 <xsl:text><></xsl:text><xsl:call-template name=
"name-to-argument"><xsl:with-param name=
"name"><xsl:value-of select=
"@identifier" /></xsl:with-param></xsl:call-template>
674 <xsl:apply-templates select=
"type"/>
675 <xsl:text> </xsl:text>
677 <xsl:template match=
"arguments/sink[not(@identifier)]">
678 <xsl:text><></xsl:text>
679 <xsl:apply-templates select=
"type"/>
680 <xsl:text> </xsl:text>
682 <xsl:template match=
"arguments/sink/type"><xsl:text>::{
</xsl:text><xsl:apply-templates /><xsl:text>}
</xsl:text></xsl:template>
684 <xsl:template match=
"type-templates">
685 <table class=
"type-templates">
686 <xsl:apply-templates />
689 <xsl:template match=
"type-templates/template[@name]">
691 <td align=
"right"><xsl:call-template name=
"name-to-template-type"><xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param></xsl:call-template> </td>
693 <xsl:apply-templates select=
"description"/>
697 <xsl:template match=
"type-templates/template-state[@name]">
699 <td align=
"right"><xsl:call-template name=
"name-to-template-state-type"><xsl:with-param name=
"name"><xsl:value-of select=
"@name" /></xsl:with-param></xsl:call-template> </td>
701 <xsl:apply-templates select=
"description"/>
706 <xsl:template match=
"eq"><eq><xsl:apply-templates/></eq></xsl:template>
707 <xsl:template match=
"eq//op"><span class=
"rm"><xsl:apply-templates/></span></xsl:template>
708 <xsl:template match=
"eq//rm"><span class=
"rm"><xsl:apply-templates/></span></xsl:template>
709 <xsl:template match=
"eq//text"><span class=
"text"><xsl:apply-templates/></span></xsl:template>
710 <xsl:template match=
"eq//sub"><span class=
"sub"><xsl:apply-templates/></span></xsl:template>
711 <xsl:template match=
"eq//sup"><span class=
"sup"><xsl:apply-templates/></span></xsl:template>