source: stylesheets/lfs-xsl/docbook-xsl-1.78.1/manpages/html-synop.xsl@ c158fe6

7.5-systemd 7.6-systemd 7.7-systemd 7.8-systemd 7.9-systemd
Last change on this file since c158fe6 was b1a51ac1, checked in by Krejzi <krejzi@…>, 11 years ago

Import new branch

git-svn-id: http://svn.linuxfromscratch.org/LFS/branches/systemd/BOOK@10389 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 50.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
3
4<!-- ********************************************************************
5 $Id: synop.xsl 9357 2012-05-12 23:36:14Z bobstayton $
6 ********************************************************************
7
8 This file is part of the XSL DocBook Stylesheet distribution.
9 See ../README or http://docbook.sf.net/release/xsl/current/ for
10 copyright and other information.
11
12 ******************************************************************** -->
13
14<!-- ==================================================================== -->
15
16<!-- synopsis is in verbatim -->
17
18<!-- ==================================================================== -->
19
20<xsl:template match="cmdsynopsis">
21 <div>
22 <xsl:apply-templates select="." mode="common.html.attributes"/>
23 <p>
24 <xsl:call-template name="id.attribute">
25 <xsl:with-param name="conditional" select="0"/>
26 </xsl:call-template>
27 <xsl:if test="..//processing-instruction('dbcmdlist')">
28 <!-- * Placing a dbcmdlist PI as a child of a particular element -->
29 <!-- * creates a hyperlinked list of all cmdsynopsis instances -->
30 <!-- * that are descendants of that element; so for any -->
31 <!-- * cmdsynopsis that is a descendant of an element containing -->
32 <!-- * a dbcmdlist PI, we need to output an a@id instance so that -->
33 <!-- * we will have something to link to -->
34 <xsl:call-template name="anchor">
35 <xsl:with-param name="conditional" select="0"/>
36 </xsl:call-template>
37 </xsl:if>
38 <xsl:apply-templates/>
39 </p>
40 </div>
41</xsl:template>
42
43<xsl:template match="cmdsynopsis/command">
44 <xsl:text>
45.
46</xsl:text>
47 <xsl:call-template name="inline.monoseq"/>
48 <xsl:text> </xsl:text>
49</xsl:template>
50
51<xsl:template match="cmdsynopsis/command[1]" priority="2">
52 <xsl:call-template name="inline.monoseq"/>
53 <xsl:text> </xsl:text>
54</xsl:template>
55
56<xsl:template match="group|arg" name="group-or-arg">
57 <xsl:variable name="choice" select="@choice"/>
58 <xsl:variable name="rep" select="@rep"/>
59 <xsl:variable name="sepchar">
60 <xsl:choose>
61 <xsl:when test="ancestor-or-self::*/@sepchar">
62 <xsl:value-of select="ancestor-or-self::*/@sepchar"/>
63 </xsl:when>
64 <xsl:otherwise>
65 <xsl:text> </xsl:text>
66 </xsl:otherwise>
67 </xsl:choose>
68 </xsl:variable>
69
70 <xsl:if test="preceding-sibling::*">
71 <xsl:value-of select="$sepchar"/>
72 </xsl:if>
73 <xsl:choose>
74 <xsl:when test="$choice='plain'">
75 <xsl:value-of select="$arg.choice.plain.open.str"/>
76 </xsl:when>
77 <xsl:when test="$choice='req'">
78 <xsl:value-of select="$arg.choice.req.open.str"/>
79 </xsl:when>
80 <xsl:when test="$choice='opt'">
81 <xsl:value-of select="$arg.choice.opt.open.str"/>
82 </xsl:when>
83 <xsl:otherwise>
84 <xsl:value-of select="$arg.choice.def.open.str"/>
85 </xsl:otherwise>
86 </xsl:choose>
87 <xsl:apply-templates/>
88 <xsl:choose>
89 <xsl:when test="$rep='repeat'">
90 <xsl:value-of select="$arg.rep.repeat.str"/>
91 </xsl:when>
92 <xsl:when test="$rep='norepeat'">
93 <xsl:value-of select="$arg.rep.norepeat.str"/>
94 </xsl:when>
95 <xsl:otherwise>
96 <xsl:value-of select="$arg.rep.def.str"/>
97 </xsl:otherwise>
98 </xsl:choose>
99 <xsl:choose>
100 <xsl:when test="$choice='plain'">
101 <xsl:value-of select="$arg.choice.plain.close.str"/>
102 </xsl:when>
103 <xsl:when test="$choice='req'">
104 <xsl:value-of select="$arg.choice.req.close.str"/>
105 </xsl:when>
106 <xsl:when test="$choice='opt'">
107 <xsl:value-of select="$arg.choice.opt.close.str"/>
108 </xsl:when>
109 <xsl:otherwise>
110 <xsl:value-of select="$arg.choice.def.close.str"/>
111 </xsl:otherwise>
112 </xsl:choose>
113</xsl:template>
114
115<xsl:template match="group/arg">
116 <xsl:variable name="choice" select="@choice"/>
117 <xsl:variable name="rep" select="@rep"/>
118 <xsl:if test="preceding-sibling::*">
119 <xsl:value-of select="$arg.or.sep"/>
120 </xsl:if>
121 <xsl:call-template name="group-or-arg"/>
122</xsl:template>
123
124<xsl:template match="sbr">
125 <xsl:text>
126.
127</xsl:text>
128</xsl:template>
129
130<!-- ==================================================================== -->
131
132<xsl:template match="synopfragmentref">
133 <xsl:variable name="target" select="key('id',@linkend)"/>
134 <xsl:variable name="snum">
135 <xsl:apply-templates select="$target" mode="synopfragment.number"/>
136 </xsl:variable>
137 <i>
138 <a href="#{@linkend}">
139 <xsl:text>(</xsl:text>
140 <xsl:value-of select="$snum"/>
141 <xsl:text>)</xsl:text>
142 </a>
143 <xsl:text> </xsl:text>
144 <xsl:apply-templates/>
145 </i>
146</xsl:template>
147
148<xsl:template match="synopfragment" mode="synopfragment.number">
149 <xsl:number format="1"/>
150</xsl:template>
151
152<xsl:template match="synopfragment">
153 <xsl:variable name="snum">
154 <xsl:apply-templates select="." mode="synopfragment.number"/>
155 </xsl:variable>
156 <!-- You can't introduce another <p> here, because you're
157 already in a <p> from cmdsynopsis-->
158 <span>
159 <xsl:variable name="id">
160 <xsl:call-template name="object.id"/>
161 </xsl:variable>
162 <a name="{$id}">
163 <xsl:text>(</xsl:text>
164 <xsl:value-of select="$snum"/>
165 <xsl:text>)</xsl:text>
166 </a>
167 <xsl:text> </xsl:text>
168 <xsl:apply-templates/>
169 </span>
170</xsl:template>
171
172<xsl:template match="funcsynopsis">
173 <xsl:if test="..//processing-instruction('dbfunclist')">
174 <!-- * Placing a dbfunclist PI as a child of a particular element -->
175 <!-- * creates a hyperlinked list of all funcsynopsis instances that -->
176 <!-- * are descendants of that element; so for any funcsynopsis that is -->
177 <!-- * a descendant of an element containing a dbfunclist PI, we need -->
178 <!-- * to output an a@id instance so that we will have something to -->
179 <!-- * link to -->
180 <span>
181 <xsl:call-template name="id.attribute">
182 <xsl:with-param name="conditional" select="0"/>
183 </xsl:call-template>
184 </span>
185 <xsl:call-template name="anchor">
186 <xsl:with-param name="conditional" select="0"/>
187 </xsl:call-template>
188 </xsl:if>
189 <xsl:call-template name="informal.object"/>
190</xsl:template>
191
192<xsl:template match="funcsynopsisinfo">
193 <xsl:text>.sp
194</xsl:text><xsl:text>.nf
195</xsl:text><pre>
196 <xsl:apply-templates select="." mode="common.html.attributes"/>
197 <xsl:call-template name="id.attribute"/>
198 <xsl:apply-templates/>
199 </pre><xsl:text/><xsl:text>.fi
200</xsl:text>
201</xsl:template>
202
203<!-- ====================================================================== -->
204<!-- funcprototype -->
205<!--
206
207funcprototype ::= (funcdef,
208 (void|varargs|paramdef+))
209
210funcdef ::= (#PCDATA|type|replaceable|function)*
211
212paramdef ::= (#PCDATA|type|replaceable|parameter|funcparams)*
213-->
214
215<xsl:template match="funcprototype">
216 <xsl:variable name="html-style">
217 <xsl:call-template name="pi.dbhtml_funcsynopsis-style">
218 <xsl:with-param name="node" select="ancestor::funcsynopsis/descendant-or-self::*"/>
219 </xsl:call-template>
220 </xsl:variable>
221
222 <xsl:variable name="style">
223 <xsl:choose>
224 <xsl:when test="$html-style != ''">
225 <xsl:value-of select="$html-style"/>
226 </xsl:when>
227 <xsl:otherwise>
228 <xsl:value-of select="$funcsynopsis.style"/>
229 </xsl:otherwise>
230 </xsl:choose>
231 </xsl:variable>
232
233<!-- * 2008-02-17. the code no longer relies on the funcsynopsis.tabular.threshold -->
234<!-- * param at all (the stuff below has been commented out since mid -->
235<!-- * 2006), so I completely removed the funcsynopsis.tabular.threshold param -->
236<!-- * .. MikeSmith -->
237<!--
238 <xsl:variable name="tabular-p"
239 select="$funcsynopsis.tabular.threshold &gt; 0
240 and string-length(.) &gt; $funcsynopsis.tabular.threshold"/>
241-->
242
243 <xsl:variable name="tabular-p" select="true()"/>
244
245 <xsl:choose>
246 <xsl:when test="$style = 'kr' and $tabular-p">
247 <xsl:apply-templates select="." mode="kr-tabular"/>
248 </xsl:when>
249 <xsl:when test="$style = 'kr'">
250 <xsl:apply-templates select="." mode="kr-nontabular"/>
251 </xsl:when>
252 <xsl:when test="$style = 'ansi' and $tabular-p">
253 <xsl:apply-templates select="." mode="ansi-tabular"/>
254 </xsl:when>
255 <xsl:otherwise>
256 <xsl:apply-templates select="." mode="ansi-nontabular"/>
257 </xsl:otherwise>
258 </xsl:choose>
259</xsl:template>
260
261<!-- ====================================================================== -->
262<!-- funcprototype: kr, non-tabular -->
263
264<xsl:template match="funcprototype" mode="kr-nontabular">
265 <p>
266 <xsl:apply-templates mode="kr-nontabular"/>
267 <xsl:if test="paramdef">
268 <xsl:text>
269.
270</xsl:text>
271 <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
272 </xsl:if>
273 </p>
274</xsl:template>
275
276<xsl:template match="funcdef" mode="kr-nontabular">
277 <code>
278 <xsl:apply-templates select="." mode="common.html.attributes"/>
279 <xsl:call-template name="id.attribute"/>
280 <xsl:apply-templates mode="kr-nontabular"/>
281 <xsl:text>(</xsl:text>
282 </code>
283</xsl:template>
284
285<xsl:template match="funcdef/function" mode="kr-nontabular">
286 <xsl:choose>
287 <xsl:when test="$funcsynopsis.decoration != 0">
288 <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
289 </xsl:when>
290 <xsl:otherwise>
291 <xsl:apply-templates mode="kr-nontabular"/>
292 </xsl:otherwise>
293 </xsl:choose>
294</xsl:template>
295
296<xsl:template match="void" mode="kr-nontabular">
297 <code>)</code>
298 <xsl:text>;</xsl:text>
299</xsl:template>
300
301<xsl:template match="varargs" mode="kr-nontabular">
302 <xsl:text>...</xsl:text>
303 <code>)</code>
304 <xsl:text>;</xsl:text>
305</xsl:template>
306
307<xsl:template match="paramdef" mode="kr-nontabular">
308 <xsl:apply-templates select="parameter" mode="kr-nontabular"/>
309 <xsl:choose>
310 <xsl:when test="following-sibling::*">
311 <xsl:text>, </xsl:text>
312 </xsl:when>
313 <xsl:otherwise>
314 <code>)</code>
315 <xsl:text>;</xsl:text>
316 </xsl:otherwise>
317 </xsl:choose>
318</xsl:template>
319
320<xsl:template match="paramdef/parameter" mode="kr-nontabular">
321 <xsl:choose>
322 <xsl:when test="$funcsynopsis.decoration != 0">
323 <var class="pdparam">
324 <xsl:apply-templates mode="kr-nontabular"/>
325 </var>
326 </xsl:when>
327 <xsl:otherwise>
328 <code>
329 <xsl:apply-templates mode="kr-nontabular"/>
330 </code>
331 </xsl:otherwise>
332 </xsl:choose>
333</xsl:template>
334
335<xsl:template match="paramdef" mode="kr-funcsynopsis-mode">
336 <xsl:if test="preceding-sibling::paramdef"><xsl:text>
337.
338</xsl:text></xsl:if>
339 <code>
340 <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
341 </code>
342 <xsl:text>;</xsl:text>
343</xsl:template>
344
345<xsl:template match="paramdef/parameter" mode="kr-funcsynopsis-mode">
346 <xsl:choose>
347 <xsl:when test="$funcsynopsis.decoration != 0">
348 <var class="pdparam">
349 <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
350 </var>
351 </xsl:when>
352 <xsl:otherwise>
353 <code>
354 <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
355 </code>
356 </xsl:otherwise>
357 </xsl:choose>
358</xsl:template>
359
360<xsl:template match="funcparams" mode="kr-funcsynopsis-mode">
361 <code>(</code>
362 <xsl:apply-templates mode="kr-funcsynopsis-mode"/>
363 <code>)</code>
364</xsl:template>
365
366<!-- ====================================================================== -->
367<!-- funcprototype: kr, tabular -->
368
369<xsl:template match="funcprototype" mode="kr-tabular">
370 <table border="{$table.border.off}" class="funcprototype-table">
371 <xsl:if test="$div.element != 'section'">
372 <xsl:attribute name="summary">Function synopsis</xsl:attribute>
373 </xsl:if>
374 <xsl:if test="$css.decoration != 0">
375 <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
376 </xsl:if>
377 <tr>
378 <td>
379 <xsl:apply-templates select="funcdef" mode="kr-tabular"/>
380 </td>
381 <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="kr-tabular"/>
382 </tr>
383 <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
384 <tr>
385 <td> </td>
386 <xsl:apply-templates select="." mode="kr-tabular"/>
387 </tr>
388 </xsl:for-each>
389 </table>
390 <xsl:if test="paramdef">
391 <div class="paramdef-list">
392 <xsl:apply-templates select="paramdef" mode="kr-funcsynopsis-mode"/>
393 </div>
394 </xsl:if>
395 <div class="funcprototype-spacer"> </div> <!-- hACk: blank div for vertical spacing -->
396</xsl:template>
397
398<xsl:template match="funcdef" mode="kr-tabular">
399 <code>
400 <xsl:apply-templates select="." mode="common.html.attributes"/>
401 <xsl:call-template name="id.attribute"/>
402 <xsl:apply-templates mode="kr-tabular"/>
403 <xsl:text>(</xsl:text>
404 </code>
405</xsl:template>
406
407<xsl:template match="funcdef/function" mode="kr-tabular">
408 <xsl:choose>
409 <xsl:when test="$funcsynopsis.decoration != 0">
410 <b class="fsfunc"><xsl:apply-templates mode="kr-nontabular"/></b>
411 </xsl:when>
412 <xsl:otherwise>
413 <xsl:apply-templates mode="kr-tabular"/>
414 </xsl:otherwise>
415 </xsl:choose>
416</xsl:template>
417
418<xsl:template match="void" mode="kr-tabular">
419 <td>
420 <code>)</code>
421 <xsl:text>;</xsl:text>
422 </td>
423 <td> </td>
424</xsl:template>
425
426<xsl:template match="varargs" mode="kr-tabular">
427 <td>
428 <xsl:text>...</xsl:text>
429 <code>)</code>
430 <xsl:text>;</xsl:text>
431 </td>
432 <td> </td>
433</xsl:template>
434
435<xsl:template match="paramdef" mode="kr-tabular">
436 <td>
437 <xsl:apply-templates select="parameter" mode="kr-tabular"/>
438 <xsl:choose>
439 <xsl:when test="following-sibling::*">
440 <xsl:text>, </xsl:text>
441 </xsl:when>
442 <xsl:otherwise>
443 <code>)</code>
444 <xsl:text>;</xsl:text>
445 </xsl:otherwise>
446 </xsl:choose>
447 </td>
448 <td> </td>
449</xsl:template>
450
451<xsl:template match="paramdef/parameter" mode="kr-tabular">
452 <xsl:choose>
453 <xsl:when test="$funcsynopsis.decoration != 0">
454 <var class="pdparam">
455 <xsl:apply-templates mode="kr-tabular"/>
456 </var>
457 </xsl:when>
458 <xsl:otherwise>
459 <code>
460 <xsl:apply-templates mode="kr-tabular"/>
461 </code>
462 </xsl:otherwise>
463 </xsl:choose>
464</xsl:template>
465
466<xsl:template match="paramdef" mode="kr-tabular-funcsynopsis-mode">
467 <xsl:variable name="type">
468 <xsl:choose>
469 <xsl:when test="type">
470 <xsl:apply-templates select="type" mode="kr-tabular-funcsynopsis-mode"/>
471 </xsl:when>
472 <xsl:when test="normalize-space(parameter/preceding-sibling::node()[not(self::parameter)]) != ''">
473 <xsl:copy-of select="parameter/preceding-sibling::node()[not(self::parameter)]"/>
474 </xsl:when>
475 </xsl:choose>
476 </xsl:variable>
477
478 <tr>
479 <xsl:choose>
480 <xsl:when test="$type != '' and funcparams">
481 <td>
482 <code>
483 <xsl:copy-of select="$type"/>
484 </code>
485 <xsl:text> </xsl:text>
486 </td>
487 <td>
488 <code>
489 <xsl:choose>
490 <xsl:when test="type">
491 <xsl:apply-templates select="type/following-sibling::*" mode="kr-tabular-funcsynopsis-mode"/>
492 </xsl:when>
493 <xsl:otherwise>
494 <xsl:apply-templates select="*" mode="kr-tabular-funcsynopsis-mode"/>
495 </xsl:otherwise>
496 </xsl:choose>
497 </code>
498 </td>
499 </xsl:when>
500
501 <xsl:when test="funcparams">
502 <td colspan="2">
503 <code>
504 <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
505 </code>
506 </td>
507 </xsl:when>
508
509 <xsl:otherwise>
510 <td>
511 <code>
512 <xsl:apply-templates select="parameter/preceding-sibling::node()[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
513 </code>
514 <xsl:text> </xsl:text>
515 </td>
516 <td>
517 <code>
518 <xsl:apply-templates select="parameter" mode="kr-tabular"/>
519 <xsl:apply-templates select="parameter/following-sibling::*[not(self::parameter)]" mode="kr-tabular-funcsynopsis-mode"/>
520 <xsl:text>;</xsl:text>
521 </code>
522 </td>
523 </xsl:otherwise>
524 </xsl:choose>
525 </tr>
526</xsl:template>
527
528<xsl:template match="paramdef/parameter" mode="kr-tabular-funcsynopsis-mode">
529 <xsl:choose>
530 <xsl:when test="$funcsynopsis.decoration != 0">
531 <var class="pdparam">
532 <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
533 </var>
534 </xsl:when>
535 <xsl:otherwise>
536 <code>
537 <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
538 </code>
539 </xsl:otherwise>
540 </xsl:choose>
541</xsl:template>
542
543<xsl:template match="funcparams" mode="kr-tabular-funcsynopsis-mode">
544 <code>(</code>
545 <xsl:apply-templates mode="kr-tabular-funcsynopsis-mode"/>
546 <code>)</code>
547 <xsl:text>;</xsl:text>
548</xsl:template>
549
550<!-- ====================================================================== -->
551<!-- funcprototype: ansi, non-tabular -->
552
553<xsl:template match="funcprototype" mode="ansi-nontabular">
554 <p>
555 <xsl:apply-templates mode="ansi-nontabular"/>
556 </p>
557</xsl:template>
558
559<xsl:template match="funcdef" mode="ansi-nontabular">
560 <code>
561 <xsl:apply-templates select="." mode="common.html.attributes"/>
562 <xsl:call-template name="id.attribute"/>
563 <xsl:apply-templates mode="ansi-nontabular"/>
564 <xsl:text>(</xsl:text>
565 </code>
566</xsl:template>
567
568<xsl:template match="funcdef/function" mode="ansi-nontabular">
569 <xsl:choose>
570 <xsl:when test="$funcsynopsis.decoration != 0">
571 <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
572 </xsl:when>
573 <xsl:otherwise>
574 <xsl:apply-templates mode="ansi-nontabular"/>
575 </xsl:otherwise>
576 </xsl:choose>
577</xsl:template>
578
579<xsl:template match="void" mode="ansi-nontabular">
580 <code>void)</code>
581 <xsl:text>;</xsl:text>
582</xsl:template>
583
584<xsl:template match="varargs" mode="ansi-nontabular">
585 <xsl:text>...</xsl:text>
586 <code>)</code>
587 <xsl:text>;</xsl:text>
588</xsl:template>
589
590<xsl:template match="paramdef" mode="ansi-nontabular">
591 <xsl:apply-templates mode="ansi-nontabular"/>
592 <xsl:choose>
593 <xsl:when test="following-sibling::*">
594 <xsl:text>, </xsl:text>
595 </xsl:when>
596 <xsl:otherwise>
597 <code>)</code>
598 <xsl:text>;</xsl:text>
599 </xsl:otherwise>
600 </xsl:choose>
601</xsl:template>
602
603<xsl:template match="paramdef/parameter" mode="ansi-nontabular">
604 <xsl:choose>
605 <xsl:when test="$funcsynopsis.decoration != 0">
606 <var class="pdparam">
607 <xsl:apply-templates mode="ansi-nontabular"/>
608 </var>
609 </xsl:when>
610 <xsl:otherwise>
611 <code>
612 <xsl:apply-templates mode="ansi-nontabular"/>
613 </code>
614 </xsl:otherwise>
615 </xsl:choose>
616</xsl:template>
617
618<xsl:template match="funcparams" mode="ansi-nontabular">
619 <code>(</code>
620 <xsl:apply-templates mode="ansi-nontabular"/>
621 <code>)</code>
622</xsl:template>
623
624<!-- ====================================================================== -->
625<!-- funcprototype: ansi, tabular -->
626
627<xsl:template match="funcprototype" mode="ansi-tabular">
628 <table border="{$table.border.off}" class="funcprototype-table">
629 <xsl:if test="$div.element != 'section'">
630 <xsl:attribute name="summary">Function synopsis</xsl:attribute>
631 </xsl:if>
632 <xsl:if test="$css.decoration != 0">
633 <xsl:attribute name="style">cellspacing: 0; cellpadding: 0;</xsl:attribute>
634 </xsl:if>
635 <tr>
636 <td>
637 <xsl:apply-templates select="funcdef" mode="ansi-tabular"/>
638 </td>
639 <xsl:apply-templates select="(void|varargs|paramdef)[1]" mode="ansi-tabular"/>
640 </tr>
641 <xsl:for-each select="(void|varargs|paramdef)[preceding-sibling::*[not(self::funcdef)]]">
642 <tr>
643 <td> </td>
644 <xsl:apply-templates select="." mode="ansi-tabular"/>
645 </tr>
646 </xsl:for-each>
647 </table>
648 <div class="funcprototype-spacer"> </div> <!-- hACk: blank div for vertical spacing -->
649</xsl:template>
650
651<xsl:template match="funcdef" mode="ansi-tabular">
652 <code>
653 <xsl:apply-templates select="." mode="common.html.attributes"/>
654 <xsl:call-template name="id.attribute"/>
655 <xsl:apply-templates mode="ansi-tabular"/>
656 <xsl:text>(</xsl:text>
657 </code>
658</xsl:template>
659
660<xsl:template match="funcdef/function" mode="ansi-tabular">
661 <xsl:choose>
662 <xsl:when test="$funcsynopsis.decoration != 0">
663 <b class="fsfunc"><xsl:apply-templates mode="ansi-nontabular"/></b>
664 </xsl:when>
665 <xsl:otherwise>
666 <xsl:apply-templates mode="kr-tabular"/>
667 </xsl:otherwise>
668 </xsl:choose>
669</xsl:template>
670
671<xsl:template match="void" mode="ansi-tabular">
672 <td>
673 <code>void)</code>
674 <xsl:text>;</xsl:text>
675 </td>
676 <td> </td>
677</xsl:template>
678
679<xsl:template match="varargs" mode="ansi-tabular">
680 <td>
681 <xsl:text>...</xsl:text>
682 <code>)</code>
683 <xsl:text>;</xsl:text>
684 </td>
685 <td> </td>
686</xsl:template>
687
688<xsl:template match="paramdef" mode="ansi-tabular">
689 <td>
690 <xsl:apply-templates mode="ansi-tabular"/>
691 <xsl:choose>
692 <xsl:when test="following-sibling::*">
693 <xsl:text>, </xsl:text>
694 </xsl:when>
695 <xsl:otherwise>
696 <code>)</code>
697 <xsl:text>;</xsl:text>
698 </xsl:otherwise>
699 </xsl:choose>
700 </td>
701</xsl:template>
702
703<xsl:template match="paramdef/parameter" mode="ansi-tabular">
704 <xsl:choose>
705 <xsl:when test="$funcsynopsis.decoration != 0">
706 <var class="pdparam">
707 <xsl:apply-templates mode="ansi-tabular"/>
708 </var>
709 </xsl:when>
710 <xsl:otherwise>
711 <code>
712 <xsl:apply-templates mode="ansi-tabular"/>
713 </code>
714 </xsl:otherwise>
715 </xsl:choose>
716</xsl:template>
717
718<xsl:template match="funcparams" mode="ansi-tabular">
719 <code>(</code>
720 <xsl:apply-templates/>
721 <code>)</code>
722</xsl:template>
723
724<!-- ====================================================================== -->
725
726<xsl:variable name="default-classsynopsis-language">java</xsl:variable>
727
728<xsl:template match="classsynopsis |fieldsynopsis |methodsynopsis |constructorsynopsis |destructorsynopsis">
729 <xsl:param name="language">
730 <xsl:choose>
731 <xsl:when test="@language">
732 <xsl:value-of select="@language"/>
733 </xsl:when>
734 <xsl:otherwise>
735 <xsl:value-of select="$default-classsynopsis-language"/>
736 </xsl:otherwise>
737 </xsl:choose>
738 </xsl:param>
739
740 <xsl:choose>
741 <xsl:when test="$language='java' or $language='Java'">
742 <xsl:apply-templates select="." mode="java"/>
743 </xsl:when>
744 <xsl:when test="$language='perl' or $language='Perl'">
745 <xsl:apply-templates select="." mode="perl"/>
746 </xsl:when>
747 <xsl:when test="$language='idl' or $language='IDL'">
748 <xsl:apply-templates select="." mode="idl"/>
749 </xsl:when>
750 <xsl:when test="$language='cpp' or $language='c++' or $language='C++'">
751 <xsl:apply-templates select="." mode="cpp"/>
752 </xsl:when>
753 <xsl:otherwise>
754 <xsl:message>
755 <xsl:text>Unrecognized language on </xsl:text>
756 <xsl:value-of select="local-name(.)"/>
757 <xsl:text>: </xsl:text>
758 <xsl:value-of select="$language"/>
759 </xsl:message>
760 <xsl:apply-templates select=".">
761 <xsl:with-param name="language" select="$default-classsynopsis-language"/>
762 </xsl:apply-templates>
763 </xsl:otherwise>
764 </xsl:choose>
765</xsl:template>
766
767<xsl:template name="synop-break">
768 <xsl:if test="parent::classsynopsis or (following-sibling::fieldsynopsis |following-sibling::methodsynopsis |following-sibling::constructorsynopsis |following-sibling::destructorsynopsis)">
769 <xsl:text>
770.
771</xsl:text>
772 </xsl:if>
773</xsl:template>
774
775
776<!-- ===== Java ======================================================== -->
777
778<xsl:template match="classsynopsis" mode="java">
779 <xsl:text>.sp
780</xsl:text><xsl:text>.nf
781</xsl:text><pre>
782 <xsl:apply-templates select="." mode="common.html.attributes"/>
783 <xsl:call-template name="id.attribute"/>
784 <xsl:apply-templates select="ooclass[1]" mode="java"/>
785 <xsl:if test="ooclass[preceding-sibling::*]">
786 <xsl:text> extends</xsl:text>
787 <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="java"/>
788 <xsl:if test="oointerface|ooexception">
789 <xsl:text>
790.
791</xsl:text>
792 <xsl:text>    </xsl:text>
793 </xsl:if>
794 </xsl:if>
795 <xsl:if test="oointerface">
796 <xsl:text>implements</xsl:text>
797 <xsl:apply-templates select="oointerface" mode="java"/>
798 <xsl:if test="ooexception">
799 <xsl:text>
800.
801</xsl:text>
802 <xsl:text>    </xsl:text>
803 </xsl:if>
804 </xsl:if>
805 <xsl:if test="ooexception">
806 <xsl:text>throws</xsl:text>
807 <xsl:apply-templates select="ooexception" mode="java"/>
808 </xsl:if>
809 <xsl:text> {</xsl:text>
810 <xsl:text>
811.
812</xsl:text>
813 <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="java"/>
814 <xsl:text>}</xsl:text>
815 </pre><xsl:text/><xsl:text>.fi
816</xsl:text>
817</xsl:template>
818
819<xsl:template match="classsynopsisinfo" mode="java">
820 <xsl:apply-templates mode="java"/>
821</xsl:template>
822
823<xsl:template match="ooclass|oointerface|ooexception" mode="java">
824 <xsl:choose>
825 <xsl:when test="preceding-sibling::*">
826 <xsl:text>, </xsl:text>
827 </xsl:when>
828 <xsl:otherwise>
829 <xsl:text> </xsl:text>
830 </xsl:otherwise>
831 </xsl:choose>
832 <span>
833 <xsl:apply-templates select="." mode="common.html.attributes"/>
834 <xsl:call-template name="id.attribute"/>
835 <xsl:apply-templates mode="java"/>
836 </span>
837</xsl:template>
838
839<xsl:template match="modifier|package" mode="java">
840 <span>
841 <xsl:apply-templates select="." mode="common.html.attributes"/>
842 <xsl:call-template name="id.attribute"/>
843 <xsl:apply-templates mode="java"/>
844 <xsl:if test="following-sibling::*">
845 <xsl:text> </xsl:text>
846 </xsl:if>
847 </span>
848</xsl:template>
849
850<xsl:template match="classname" mode="java">
851 <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
852 <xsl:text>, </xsl:text>
853 </xsl:if>
854 <span>
855 <xsl:apply-templates select="." mode="common.html.attributes"/>
856 <xsl:call-template name="id.attribute"/>
857 <xsl:apply-templates mode="java"/>
858 </span>
859</xsl:template>
860
861<xsl:template match="interfacename" mode="java">
862 <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
863 <xsl:text>, </xsl:text>
864 </xsl:if>
865 <span>
866 <xsl:apply-templates select="." mode="common.html.attributes"/>
867 <xsl:call-template name="id.attribute"/>
868 <xsl:apply-templates mode="java"/>
869 </span>
870</xsl:template>
871
872<xsl:template match="exceptionname" mode="java">
873 <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
874 <xsl:text>, </xsl:text>
875 </xsl:if>
876 <span>
877 <xsl:apply-templates select="." mode="common.html.attributes"/>
878 <xsl:call-template name="id.attribute"/>
879 <xsl:apply-templates mode="java"/>
880 </span>
881</xsl:template>
882
883<xsl:template match="fieldsynopsis" mode="java">
884 <code>
885 <xsl:apply-templates select="." mode="common.html.attributes"/>
886 <xsl:call-template name="id.attribute"/>
887 <xsl:if test="parent::classsynopsis">
888 <xsl:text>  </xsl:text>
889 </xsl:if>
890 <xsl:apply-templates mode="java"/>
891 <xsl:text>;</xsl:text>
892 </code>
893 <xsl:call-template name="synop-break"/>
894</xsl:template>
895
896<xsl:template match="type" mode="java">
897 <span>
898 <xsl:apply-templates select="." mode="common.html.attributes"/>
899 <xsl:call-template name="id.attribute"/>
900 <xsl:apply-templates mode="java"/>
901 <xsl:text> </xsl:text>
902 </span>
903</xsl:template>
904
905<xsl:template match="varname" mode="java">
906 <span>
907 <xsl:apply-templates select="." mode="common.html.attributes"/>
908 <xsl:call-template name="id.attribute"/>
909 <xsl:apply-templates mode="java"/>
910 <xsl:text> </xsl:text>
911 </span>
912</xsl:template>
913
914<xsl:template match="initializer" mode="java">
915 <span>
916 <xsl:apply-templates select="." mode="common.html.attributes"/>
917 <xsl:call-template name="id.attribute"/>
918 <xsl:text>= </xsl:text>
919 <xsl:apply-templates mode="java"/>
920 </span>
921</xsl:template>
922
923<xsl:template match="void" mode="java">
924 <span>
925 <xsl:apply-templates select="." mode="common.html.attributes"/>
926 <xsl:call-template name="id.attribute"/>
927 <xsl:text>void </xsl:text>
928 </span>
929</xsl:template>
930
931<xsl:template match="methodname" mode="java">
932 <span>
933 <xsl:apply-templates select="." mode="common.html.attributes"/>
934 <xsl:call-template name="id.attribute"/>
935 <xsl:apply-templates mode="java"/>
936 </span>
937</xsl:template>
938
939<xsl:template match="methodparam" mode="java">
940 <xsl:param name="indent">0</xsl:param>
941 <xsl:if test="preceding-sibling::methodparam">
942 <xsl:text>,</xsl:text>
943 <xsl:text>
944.
945</xsl:text>
946 <xsl:if test="$indent &gt; 0">
947 <xsl:call-template name="copy-string">
948 <xsl:with-param name="string"> </xsl:with-param>
949 <xsl:with-param name="count" select="$indent + 1"/>
950 </xsl:call-template>
951 </xsl:if>
952 </xsl:if>
953 <span>
954 <xsl:apply-templates select="." mode="common.html.attributes"/>
955 <xsl:call-template name="id.attribute"/>
956 <xsl:apply-templates mode="java"/>
957 </span>
958</xsl:template>
959
960<xsl:template match="parameter" mode="java">
961 <span>
962 <xsl:apply-templates select="." mode="common.html.attributes"/>
963 <xsl:call-template name="id.attribute"/>
964 <xsl:apply-templates mode="java"/>
965 </span>
966</xsl:template>
967
968<xsl:template mode="java" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
969 <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
970 <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
971 <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
972 <xsl:variable name="decl">
973 <xsl:if test="parent::classsynopsis">
974 <xsl:text>  </xsl:text>
975 </xsl:if>
976 <xsl:apply-templates select="$start-modifiers" mode="java"/>
977
978 <!-- type -->
979 <xsl:if test="local-name($notmod[1]) != 'methodname'">
980 <xsl:apply-templates select="$notmod[1]" mode="java"/>
981 </xsl:if>
982
983 <xsl:apply-templates select="methodname" mode="java"/>
984 </xsl:variable>
985
986 <code>
987 <xsl:apply-templates select="." mode="common.html.attributes"/>
988 <xsl:call-template name="id.attribute"/>
989 <xsl:copy-of select="$decl"/>
990 <xsl:text>(</xsl:text>
991 <xsl:apply-templates select="methodparam" mode="java">
992 <xsl:with-param name="indent" select="string-length($decl)"/>
993 </xsl:apply-templates>
994 <xsl:text>)</xsl:text>
995 <xsl:if test="exceptionname">
996 <xsl:text>
997.
998</xsl:text>
999 <xsl:text>    throws </xsl:text>
1000 <xsl:apply-templates select="exceptionname" mode="java"/>
1001 </xsl:if>
1002 <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
1003 <xsl:text> </xsl:text>
1004 <xsl:apply-templates select="$end-modifiers" mode="java"/>
1005 </xsl:if>
1006 <xsl:text>;</xsl:text>
1007 </code>
1008 <xsl:call-template name="synop-break"/>
1009</xsl:template>
1010
1011<!-- ===== C++ ========================================================= -->
1012
1013<xsl:template match="classsynopsis" mode="cpp">
1014 <xsl:text>.sp
1015</xsl:text><xsl:text>.nf
1016</xsl:text><pre>
1017 <xsl:apply-templates select="." mode="common.html.attributes"/>
1018 <xsl:call-template name="id.attribute"/>
1019 <xsl:apply-templates select="ooclass[1]" mode="cpp"/>
1020 <xsl:if test="ooclass[preceding-sibling::*]">
1021 <xsl:text>: </xsl:text>
1022 <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="cpp"/>
1023 <xsl:if test="oointerface|ooexception">
1024 <xsl:text>
1025.
1026</xsl:text>
1027 <xsl:text>    </xsl:text>
1028 </xsl:if>
1029 </xsl:if>
1030 <xsl:if test="oointerface">
1031 <xsl:text> implements</xsl:text>
1032 <xsl:apply-templates select="oointerface" mode="cpp"/>
1033 <xsl:if test="ooexception">
1034 <xsl:text>
1035.
1036</xsl:text>
1037 <xsl:text>    </xsl:text>
1038 </xsl:if>
1039 </xsl:if>
1040 <xsl:if test="ooexception">
1041 <xsl:text> throws</xsl:text>
1042 <xsl:apply-templates select="ooexception" mode="cpp"/>
1043 </xsl:if>
1044 <xsl:text> {</xsl:text>
1045 <xsl:text>
1046.
1047</xsl:text>
1048 <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="cpp"/>
1049 <xsl:text>}</xsl:text>
1050 </pre><xsl:text/><xsl:text>.fi
1051</xsl:text>
1052</xsl:template>
1053
1054<xsl:template match="classsynopsisinfo" mode="cpp">
1055 <xsl:apply-templates mode="cpp"/>
1056</xsl:template>
1057
1058<xsl:template match="ooclass|oointerface|ooexception" mode="cpp">
1059 <xsl:if test="preceding-sibling::*">
1060 <xsl:text>, </xsl:text>
1061 </xsl:if>
1062 <span>
1063 <xsl:apply-templates select="." mode="common.html.attributes"/>
1064 <xsl:call-template name="id.attribute"/>
1065 <xsl:apply-templates mode="cpp"/>
1066 </span>
1067</xsl:template>
1068
1069<xsl:template match="modifier|package" mode="cpp">
1070 <span>
1071 <xsl:apply-templates select="." mode="common.html.attributes"/>
1072 <xsl:call-template name="id.attribute"/>
1073 <xsl:apply-templates mode="cpp"/>
1074 <xsl:if test="following-sibling::*">
1075 <xsl:text> </xsl:text>
1076 </xsl:if>
1077 </span>
1078</xsl:template>
1079
1080<xsl:template match="classname" mode="cpp">
1081 <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
1082 <xsl:text>, </xsl:text>
1083 </xsl:if>
1084 <span>
1085 <xsl:apply-templates select="." mode="common.html.attributes"/>
1086 <xsl:call-template name="id.attribute"/>
1087 <xsl:apply-templates mode="cpp"/>
1088 </span>
1089</xsl:template>
1090
1091<xsl:template match="interfacename" mode="cpp">
1092 <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
1093 <xsl:text>, </xsl:text>
1094 </xsl:if>
1095 <span>
1096 <xsl:apply-templates select="." mode="common.html.attributes"/>
1097 <xsl:call-template name="id.attribute"/>
1098 <xsl:apply-templates mode="cpp"/>
1099 </span>
1100</xsl:template>
1101
1102<xsl:template match="exceptionname" mode="cpp">
1103 <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
1104 <xsl:text>, </xsl:text>
1105 </xsl:if>
1106 <span>
1107 <xsl:apply-templates select="." mode="common.html.attributes"/>
1108 <xsl:call-template name="id.attribute"/>
1109 <xsl:apply-templates mode="cpp"/>
1110 </span>
1111</xsl:template>
1112
1113<xsl:template match="fieldsynopsis" mode="cpp">
1114 <code>
1115 <xsl:apply-templates select="." mode="common.html.attributes"/>
1116 <xsl:call-template name="id.attribute"/>
1117 <xsl:if test="parent::classsynopsis">
1118 <xsl:text>  </xsl:text>
1119 </xsl:if>
1120 <xsl:apply-templates mode="cpp"/>
1121 <xsl:text>;</xsl:text>
1122 </code>
1123 <xsl:call-template name="synop-break"/>
1124</xsl:template>
1125
1126<xsl:template match="type" mode="cpp">
1127 <span>
1128 <xsl:apply-templates select="." mode="common.html.attributes"/>
1129 <xsl:call-template name="id.attribute"/>
1130 <xsl:apply-templates mode="cpp"/>
1131 <xsl:text> </xsl:text>
1132 </span>
1133</xsl:template>
1134
1135<xsl:template match="varname" mode="cpp">
1136 <span>
1137 <xsl:apply-templates select="." mode="common.html.attributes"/>
1138 <xsl:call-template name="id.attribute"/>
1139 <xsl:apply-templates mode="cpp"/>
1140 <xsl:text> </xsl:text>
1141 </span>
1142</xsl:template>
1143
1144<xsl:template match="initializer" mode="cpp">
1145 <span>
1146 <xsl:apply-templates select="." mode="common.html.attributes"/>
1147 <xsl:call-template name="id.attribute"/>
1148 <xsl:text>= </xsl:text>
1149 <xsl:apply-templates mode="cpp"/>
1150 </span>
1151</xsl:template>
1152
1153<xsl:template match="void" mode="cpp">
1154 <span>
1155 <xsl:apply-templates select="." mode="common.html.attributes"/>
1156 <xsl:call-template name="id.attribute"/>
1157 <xsl:text>void </xsl:text>
1158 </span>
1159</xsl:template>
1160
1161<xsl:template match="methodname" mode="cpp">
1162 <span>
1163 <xsl:apply-templates select="." mode="common.html.attributes"/>
1164 <xsl:call-template name="id.attribute"/>
1165 <xsl:apply-templates mode="cpp"/>
1166 </span>
1167</xsl:template>
1168
1169<xsl:template match="methodparam" mode="cpp">
1170 <xsl:if test="preceding-sibling::methodparam">
1171 <xsl:text>, </xsl:text>
1172 </xsl:if>
1173 <span>
1174 <xsl:apply-templates select="." mode="common.html.attributes"/>
1175 <xsl:call-template name="id.attribute"/>
1176 <xsl:apply-templates mode="cpp"/>
1177 </span>
1178</xsl:template>
1179
1180<xsl:template match="parameter" mode="cpp">
1181 <span>
1182 <xsl:apply-templates select="." mode="common.html.attributes"/>
1183 <xsl:call-template name="id.attribute"/>
1184 <xsl:apply-templates mode="cpp"/>
1185 </span>
1186</xsl:template>
1187
1188<xsl:template mode="cpp" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
1189 <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
1190 <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
1191 <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
1192
1193 <code>
1194 <xsl:apply-templates select="." mode="common.html.attributes"/>
1195 <xsl:call-template name="id.attribute"/>
1196 <xsl:if test="parent::classsynopsis">
1197 <xsl:text>  </xsl:text>
1198 </xsl:if>
1199 <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
1200
1201 <!-- type -->
1202 <xsl:if test="local-name($notmod[1]) != 'methodname'">
1203 <xsl:apply-templates select="$notmod[1]" mode="cpp"/>
1204 </xsl:if>
1205
1206 <xsl:apply-templates select="methodname" mode="cpp"/>
1207 <xsl:text>(</xsl:text>
1208 <xsl:apply-templates select="methodparam" mode="cpp"/>
1209 <xsl:text>)</xsl:text>
1210 <xsl:if test="exceptionname">
1211 <xsl:text>
1212.
1213</xsl:text>
1214 <xsl:text>    throws </xsl:text>
1215 <xsl:apply-templates select="exceptionname" mode="cpp"/>
1216 </xsl:if>
1217 <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
1218 <xsl:text> </xsl:text>
1219 <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
1220 </xsl:if>
1221 <xsl:text>;</xsl:text>
1222 </code>
1223 <xsl:call-template name="synop-break"/>
1224</xsl:template>
1225
1226<!-- ===== IDL ========================================================= -->
1227
1228<xsl:template match="classsynopsis" mode="idl">
1229 <xsl:text>.sp
1230</xsl:text><xsl:text>.nf
1231</xsl:text><pre>
1232 <xsl:apply-templates select="." mode="common.html.attributes"/>
1233 <xsl:call-template name="id.attribute"/>
1234 <xsl:text>interface </xsl:text>
1235 <xsl:apply-templates select="ooclass[1]" mode="idl"/>
1236 <xsl:if test="ooclass[preceding-sibling::*]">
1237 <xsl:text>: </xsl:text>
1238 <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="idl"/>
1239 <xsl:if test="oointerface|ooexception">
1240 <xsl:text>
1241.
1242</xsl:text>
1243 <xsl:text>    </xsl:text>
1244 </xsl:if>
1245 </xsl:if>
1246 <xsl:if test="oointerface">
1247 <xsl:text> implements</xsl:text>
1248 <xsl:apply-templates select="oointerface" mode="idl"/>
1249 <xsl:if test="ooexception">
1250 <xsl:text>
1251.
1252</xsl:text>
1253 <xsl:text>    </xsl:text>
1254 </xsl:if>
1255 </xsl:if>
1256 <xsl:if test="ooexception">
1257 <xsl:text> throws</xsl:text>
1258 <xsl:apply-templates select="ooexception" mode="idl"/>
1259 </xsl:if>
1260 <xsl:text> {</xsl:text>
1261 <xsl:text>
1262.
1263</xsl:text>
1264 <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="idl"/>
1265 <xsl:text>}</xsl:text>
1266 </pre><xsl:text/><xsl:text>.fi
1267</xsl:text>
1268</xsl:template>
1269
1270<xsl:template match="classsynopsisinfo" mode="idl">
1271 <xsl:apply-templates mode="idl"/>
1272</xsl:template>
1273
1274<xsl:template match="ooclass|oointerface|ooexception" mode="idl">
1275 <xsl:if test="preceding-sibling::*">
1276 <xsl:text>, </xsl:text>
1277 </xsl:if>
1278 <span>
1279 <xsl:apply-templates select="." mode="common.html.attributes"/>
1280 <xsl:call-template name="id.attribute"/>
1281 <xsl:apply-templates mode="idl"/>
1282 </span>
1283</xsl:template>
1284
1285<xsl:template match="modifier|package" mode="idl">
1286 <span>
1287 <xsl:apply-templates select="." mode="common.html.attributes"/>
1288 <xsl:call-template name="id.attribute"/>
1289 <xsl:apply-templates mode="idl"/>
1290 <xsl:if test="following-sibling::*">
1291 <xsl:text> </xsl:text>
1292 </xsl:if>
1293 </span>
1294</xsl:template>
1295
1296<xsl:template match="classname" mode="idl">
1297 <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
1298 <xsl:text>, </xsl:text>
1299 </xsl:if>
1300 <span>
1301 <xsl:apply-templates select="." mode="common.html.attributes"/>
1302 <xsl:call-template name="id.attribute"/>
1303 <xsl:apply-templates mode="idl"/>
1304 </span>
1305</xsl:template>
1306
1307<xsl:template match="interfacename" mode="idl">
1308 <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
1309 <xsl:text>, </xsl:text>
1310 </xsl:if>
1311 <span>
1312 <xsl:apply-templates select="." mode="common.html.attributes"/>
1313 <xsl:call-template name="id.attribute"/>
1314 <xsl:apply-templates mode="idl"/>
1315 </span>
1316</xsl:template>
1317
1318<xsl:template match="exceptionname" mode="idl">
1319 <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
1320 <xsl:text>, </xsl:text>
1321 </xsl:if>
1322 <span>
1323 <xsl:apply-templates select="." mode="common.html.attributes"/>
1324 <xsl:call-template name="id.attribute"/>
1325 <xsl:apply-templates mode="idl"/>
1326 </span>
1327</xsl:template>
1328
1329<xsl:template match="fieldsynopsis" mode="idl">
1330 <code>
1331 <xsl:apply-templates select="." mode="common.html.attributes"/>
1332 <xsl:call-template name="id.attribute"/>
1333 <xsl:if test="parent::classsynopsis">
1334 <xsl:text>  </xsl:text>
1335 </xsl:if>
1336 <xsl:apply-templates mode="idl"/>
1337 <xsl:text>;</xsl:text>
1338 </code>
1339 <xsl:call-template name="synop-break"/>
1340</xsl:template>
1341
1342<xsl:template match="type" mode="idl">
1343 <span>
1344 <xsl:apply-templates select="." mode="common.html.attributes"/>
1345 <xsl:call-template name="id.attribute"/>
1346 <xsl:apply-templates mode="idl"/>
1347 <xsl:text> </xsl:text>
1348 </span>
1349</xsl:template>
1350
1351<xsl:template match="varname" mode="idl">
1352 <span>
1353 <xsl:apply-templates select="." mode="common.html.attributes"/>
1354 <xsl:call-template name="id.attribute"/>
1355 <xsl:apply-templates mode="idl"/>
1356 <xsl:text> </xsl:text>
1357 </span>
1358</xsl:template>
1359
1360<xsl:template match="initializer" mode="idl">
1361 <span>
1362 <xsl:apply-templates select="." mode="common.html.attributes"/>
1363 <xsl:call-template name="id.attribute"/>
1364 <xsl:text>= </xsl:text>
1365 <xsl:apply-templates mode="idl"/>
1366 </span>
1367</xsl:template>
1368
1369<xsl:template match="void" mode="idl">
1370 <span>
1371 <xsl:apply-templates select="." mode="common.html.attributes"/>
1372 <xsl:call-template name="id.attribute"/>
1373 <xsl:text>void </xsl:text>
1374 </span>
1375</xsl:template>
1376
1377<xsl:template match="methodname" mode="idl">
1378 <span>
1379 <xsl:apply-templates select="." mode="common.html.attributes"/>
1380 <xsl:call-template name="id.attribute"/>
1381 <xsl:apply-templates mode="idl"/>
1382 </span>
1383</xsl:template>
1384
1385<xsl:template match="methodparam" mode="idl">
1386 <xsl:if test="preceding-sibling::methodparam">
1387 <xsl:text>, </xsl:text>
1388 </xsl:if>
1389 <span>
1390 <xsl:apply-templates select="." mode="common.html.attributes"/>
1391 <xsl:call-template name="id.attribute"/>
1392 <xsl:apply-templates mode="idl"/>
1393 </span>
1394</xsl:template>
1395
1396<xsl:template match="parameter" mode="idl">
1397 <span>
1398 <xsl:apply-templates select="." mode="common.html.attributes"/>
1399 <xsl:call-template name="id.attribute"/>
1400 <xsl:apply-templates mode="idl"/>
1401 </span>
1402</xsl:template>
1403
1404<xsl:template mode="idl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
1405 <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
1406 <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
1407 <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
1408 <code>
1409 <xsl:apply-templates select="." mode="common.html.attributes"/>
1410 <xsl:call-template name="id.attribute"/>
1411 <xsl:if test="parent::classsynopsis">
1412 <xsl:text>  </xsl:text>
1413 </xsl:if>
1414 <xsl:apply-templates select="$start-modifiers" mode="idl"/>
1415
1416 <!-- type -->
1417 <xsl:if test="local-name($notmod[1]) != 'methodname'">
1418 <xsl:apply-templates select="$notmod[1]" mode="idl"/>
1419 </xsl:if>
1420
1421 <xsl:apply-templates select="methodname" mode="idl"/>
1422 <xsl:text>(</xsl:text>
1423 <xsl:apply-templates select="methodparam" mode="idl"/>
1424 <xsl:text>)</xsl:text>
1425 <xsl:if test="exceptionname">
1426 <xsl:text>
1427.
1428</xsl:text>
1429 <xsl:text>    raises(</xsl:text>
1430 <xsl:apply-templates select="exceptionname" mode="idl"/>
1431 <xsl:text>)</xsl:text>
1432 </xsl:if>
1433 <xsl:if test="modifier[preceding-sibling::*[local-name(.) != 'modifier']]">
1434 <xsl:text> </xsl:text>
1435 <xsl:apply-templates select="$end-modifiers" mode="idl"/>
1436 </xsl:if>
1437 <xsl:text>;</xsl:text>
1438 </code>
1439 <xsl:call-template name="synop-break"/>
1440</xsl:template>
1441
1442<!-- ===== Perl ======================================================== -->
1443
1444<xsl:template match="classsynopsis" mode="perl">
1445 <xsl:text>.sp
1446</xsl:text><xsl:text>.nf
1447</xsl:text><pre>
1448 <xsl:apply-templates select="." mode="common.html.attributes"/>
1449 <xsl:call-template name="id.attribute"/>
1450 <xsl:text>package </xsl:text>
1451 <xsl:apply-templates select="ooclass[1]" mode="perl"/>
1452 <xsl:text>;</xsl:text>
1453 <xsl:text>
1454.
1455</xsl:text>
1456
1457 <xsl:if test="ooclass[preceding-sibling::*]">
1458 <xsl:text>@ISA = (</xsl:text>
1459 <xsl:apply-templates select="ooclass[preceding-sibling::*]" mode="perl"/>
1460 <xsl:text>);</xsl:text>
1461 <xsl:text>
1462.
1463</xsl:text>
1464 </xsl:if>
1465
1466 <xsl:apply-templates select="constructorsynopsis |destructorsynopsis |fieldsynopsis |methodsynopsis |classsynopsisinfo" mode="perl"/>
1467 </pre><xsl:text/><xsl:text>.fi
1468</xsl:text>
1469</xsl:template>
1470
1471<xsl:template match="classsynopsisinfo" mode="perl">
1472 <xsl:apply-templates mode="perl"/>
1473</xsl:template>
1474
1475<xsl:template match="ooclass|oointerface|ooexception" mode="perl">
1476 <xsl:if test="preceding-sibling::*">
1477 <xsl:text>, </xsl:text>
1478 </xsl:if>
1479 <span>
1480 <xsl:apply-templates select="." mode="common.html.attributes"/>
1481 <xsl:call-template name="id.attribute"/>
1482 <xsl:apply-templates mode="perl"/>
1483 </span>
1484</xsl:template>
1485
1486<xsl:template match="modifier|package" mode="perl">
1487 <span>
1488 <xsl:apply-templates select="." mode="common.html.attributes"/>
1489 <xsl:call-template name="id.attribute"/>
1490 <xsl:apply-templates mode="perl"/>
1491 <xsl:if test="following-sibling::*">
1492 <xsl:text> </xsl:text>
1493 </xsl:if>
1494 </span>
1495</xsl:template>
1496
1497<xsl:template match="classname" mode="perl">
1498 <xsl:if test="local-name(preceding-sibling::*[1]) = 'classname'">
1499 <xsl:text>, </xsl:text>
1500 </xsl:if>
1501 <span>
1502 <xsl:apply-templates select="." mode="common.html.attributes"/>
1503 <xsl:call-template name="id.attribute"/>
1504 <xsl:apply-templates mode="perl"/>
1505 </span>
1506</xsl:template>
1507
1508<xsl:template match="interfacename" mode="perl">
1509 <xsl:if test="local-name(preceding-sibling::*[1]) = 'interfacename'">
1510 <xsl:text>, </xsl:text>
1511 </xsl:if>
1512 <span>
1513 <xsl:apply-templates select="." mode="common.html.attributes"/>
1514 <xsl:call-template name="id.attribute"/>
1515 <xsl:apply-templates mode="perl"/>
1516 </span>
1517</xsl:template>
1518
1519<xsl:template match="exceptionname" mode="perl">
1520 <xsl:if test="local-name(preceding-sibling::*[1]) = 'exceptionname'">
1521 <xsl:text>, </xsl:text>
1522 </xsl:if>
1523 <span>
1524 <xsl:apply-templates select="." mode="common.html.attributes"/>
1525 <xsl:call-template name="id.attribute"/>
1526 <xsl:apply-templates mode="perl"/>
1527 </span>
1528</xsl:template>
1529
1530<xsl:template match="fieldsynopsis" mode="perl">
1531 <code>
1532 <xsl:apply-templates select="." mode="common.html.attributes"/>
1533 <xsl:call-template name="id.attribute"/>
1534 <xsl:if test="parent::classsynopsis">
1535 <xsl:text>  </xsl:text>
1536 </xsl:if>
1537 <xsl:apply-templates mode="perl"/>
1538 <xsl:text>;</xsl:text>
1539 </code>
1540 <xsl:call-template name="synop-break"/>
1541</xsl:template>
1542
1543<xsl:template match="type" mode="perl">
1544 <span>
1545 <xsl:apply-templates select="." mode="common.html.attributes"/>
1546 <xsl:call-template name="id.attribute"/>
1547 <xsl:apply-templates mode="perl"/>
1548 <xsl:text> </xsl:text>
1549 </span>
1550</xsl:template>
1551
1552<xsl:template match="varname" mode="perl">
1553 <span>
1554 <xsl:apply-templates select="." mode="common.html.attributes"/>
1555 <xsl:call-template name="id.attribute"/>
1556 <xsl:apply-templates mode="perl"/>
1557 <xsl:text> </xsl:text>
1558 </span>
1559</xsl:template>
1560
1561<xsl:template match="initializer" mode="perl">
1562 <span>
1563 <xsl:apply-templates select="." mode="common.html.attributes"/>
1564 <xsl:call-template name="id.attribute"/>
1565 <xsl:text>= </xsl:text>
1566 <xsl:apply-templates mode="perl"/>
1567 </span>
1568</xsl:template>
1569
1570<xsl:template match="void" mode="perl">
1571 <span>
1572 <xsl:apply-templates select="." mode="common.html.attributes"/>
1573 <xsl:call-template name="id.attribute"/>
1574 <xsl:text>void </xsl:text>
1575 </span>
1576</xsl:template>
1577
1578<xsl:template match="methodname" mode="perl">
1579 <span>
1580 <xsl:apply-templates select="." mode="common.html.attributes"/>
1581 <xsl:call-template name="id.attribute"/>
1582 <xsl:apply-templates mode="perl"/>
1583 </span>
1584</xsl:template>
1585
1586<xsl:template match="methodparam" mode="perl">
1587 <xsl:if test="preceding-sibling::methodparam">
1588 <xsl:text>, </xsl:text>
1589 </xsl:if>
1590 <span>
1591 <xsl:apply-templates select="." mode="common.html.attributes"/>
1592 <xsl:call-template name="id.attribute"/>
1593 <xsl:apply-templates mode="perl"/>
1594 </span>
1595</xsl:template>
1596
1597<xsl:template match="parameter" mode="perl">
1598 <span>
1599 <xsl:apply-templates select="." mode="common.html.attributes"/>
1600 <xsl:call-template name="id.attribute"/>
1601 <xsl:apply-templates mode="perl"/>
1602 </span>
1603</xsl:template>
1604
1605<xsl:template mode="perl" match="constructorsynopsis|destructorsynopsis|methodsynopsis">
1606 <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[local-name(.) != 'modifier']]"/>
1607 <xsl:variable name="notmod" select="*[local-name(.) != 'modifier']"/>
1608 <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[local-name(.) != 'modifier']]"/>
1609
1610 <code>
1611 <xsl:apply-templates select="." mode="common.html.attributes"/>
1612 <xsl:call-template name="id.attribute"/>
1613 <xsl:text>sub </xsl:text>
1614
1615 <xsl:apply-templates select="methodname" mode="perl"/>
1616 <xsl:text> { ... };</xsl:text>
1617 </code>
1618 <xsl:call-template name="synop-break"/>
1619</xsl:template>
1620
1621<!-- Used when not occurring as a child of classsynopsis -->
1622<xsl:template match="ooclass|oointerface|ooexception">
1623 <xsl:apply-templates/>
1624</xsl:template>
1625
1626<!-- ==================================================================== -->
1627
1628<!-- * DocBook 5 allows linking elements (link, olink, and xref) -->
1629<!-- * within the OO *synopsis elements (classsynopsis, fieldsynopsis, -->
1630<!-- * methodsynopsis, constructorsynopsis, destructorsynopsis) and -->
1631<!-- * their children. So we need to have mode="java|cpp|idl|perl" -->
1632<!-- * per-mode matches for those linking elements in order for them -->
1633<!-- * to be processed as expected. -->
1634
1635<xsl:template match="link|olink|xref" mode="java">
1636 <xsl:apply-templates select="."/>
1637</xsl:template>
1638
1639<xsl:template match="link|olink|xref" mode="cpp">
1640 <xsl:apply-templates select="."/>
1641</xsl:template>
1642
1643<xsl:template match="link|olink|xref" mode="idl">
1644 <xsl:apply-templates select="."/>
1645</xsl:template>
1646
1647<xsl:template match="link|olink|xref" mode="perl">
1648 <xsl:apply-templates select="."/>
1649</xsl:template>
1650
1651<xsl:template match="link|olink|xref" mode="ansi-nontabular">
1652 <xsl:apply-templates select="."/>
1653</xsl:template>
1654
1655<xsl:template match="link|olink|xref" mode="ansi-tabular">
1656 <xsl:apply-templates select="."/>
1657</xsl:template>
1658
1659<xsl:template match="link|olink|xref" mode="kr-nontabular">
1660 <xsl:apply-templates select="."/>
1661</xsl:template>
1662
1663<xsl:template match="link|olink|xref" mode="kr-tabular">
1664 <xsl:apply-templates select="."/>
1665</xsl:template>
1666
1667</xsl:stylesheet>
1668
Note: See TracBrowser for help on using the repository browser.