2 <!DOCTYPE xsl:stylesheet [
<!ENTITY RE
" "> ]
>
3 <xsl:stylesheet xmlns:
xsl=
"http://www.w3.org/1999/XSL/Transform" version='
1.0'
>
4 <!--#############################################################################
5 | $Id: synop-oop.mod.xsl,v 1.1.1.1 2003/03/14 10:42:53 rcasellas Exp $
6 |- #############################################################################
10 + ############################################################################## -->
14 <xsl:template match=
"classsynopsis">
15 <!-- PARAM language : -->
16 <xsl:param name=
"language">
18 <xsl:when test=
"@language">
19 <xsl:value-of select=
"@language"/>
22 <xsl:value-of select=
"$default-classsynopsis-language"/>
28 <xsl:when test=
"$language='java'"> <xsl:apply-templates select=
"." mode=
"java"/> </xsl:when>
29 <xsl:when test=
"$language='perl'"> <xsl:apply-templates select=
"." mode=
"perl"/> </xsl:when>
30 <xsl:when test=
"$language='idl'"> <xsl:apply-templates select=
"." mode=
"idl"/> </xsl:when>
31 <xsl:when test=
"$language='cpp'"> <xsl:apply-templates select=
"." mode=
"cpp"/> </xsl:when>
33 <xsl:message>Unrecognized language on classsynopsis:
<xsl:value-of select=
"$language"/> </xsl:message>
34 <xsl:apply-templates select=
".">
35 <xsl:with-param name=
"language" select=
"$default-classsynopsis-language"/>
36 </xsl:apply-templates>
45 <!-- ===== Java ======================================================== -->
47 <xsl:template match=
"classsynopsis" mode=
"java">
48 <pre class=
"{name(.)}">
49 <xsl:apply-templates select=
"ooclass[1]" mode=
"java"/>
50 <xsl:if test=
"ooclass[position() > 1]">
51 <xsl:text> extends
</xsl:text>
52 <xsl:apply-templates select=
"ooclass[position() > 1]" mode=
"java"/>
53 <xsl:if test=
"oointerface|ooexception">
54 <xsl:text>&RE; </xsl:text>
57 <xsl:if test=
"oointerface">
58 <xsl:text>implements
</xsl:text>
59 <xsl:apply-templates select=
"oointerface" mode=
"java"/>
60 <xsl:if test=
"ooexception">
61 <xsl:text>&RE; </xsl:text>
64 <xsl:if test=
"ooexception">
65 <xsl:text>throws
</xsl:text>
66 <xsl:apply-templates select=
"ooexception" mode=
"java"/>
68 <xsl:text> {
&RE;&RE;</xsl:text>
69 <xsl:apply-templates select=
"constructorsynopsis
73 |classsynopsisinfo" mode=
"java"/>
74 <xsl:text>}
</xsl:text>
78 <xsl:template match=
"classsynopsisinfo" mode=
"java">
79 <xsl:apply-templates mode=
"java"/>
82 <xsl:template match=
"ooclass|oointerface|ooexception" mode=
"java">
84 <xsl:when test=
"position() > 1">
85 <xsl:text>,
</xsl:text>
88 <xsl:text> </xsl:text>
92 <xsl:apply-templates mode=
"java"/>
96 <xsl:template match=
"modifier" mode=
"java">
98 <xsl:apply-templates mode=
"java"/>
99 <xsl:text> </xsl:text>
103 <xsl:template match=
"classname" mode=
"java">
104 <xsl:if test=
"name(preceding-sibling::*[1]) = 'classname'">
105 <xsl:text>,
</xsl:text>
108 <xsl:apply-templates mode=
"java"/>
112 <xsl:template match=
"interfacename" mode=
"java">
113 <xsl:if test=
"name(preceding-sibling::*[1]) = 'interfacename'">
114 <xsl:text>,
</xsl:text>
117 <xsl:apply-templates mode=
"java"/>
121 <xsl:template match=
"exceptionname" mode=
"java">
122 <xsl:if test=
"name(preceding-sibling::*[1]) = 'exceptionname'">
123 <xsl:text>,
</xsl:text>
126 <xsl:apply-templates mode=
"java"/>
130 <xsl:template match=
"fieldsynopsis" mode=
"java">
132 <xsl:text> </xsl:text>
133 <xsl:apply-templates mode=
"java"/>
134 <xsl:text>;
</xsl:text>
138 <xsl:template match=
"type" mode=
"java">
140 <xsl:apply-templates mode=
"java"/>
141 <xsl:text> </xsl:text>
145 <xsl:template match=
"varname" mode=
"java">
147 <xsl:apply-templates mode=
"java"/>
148 <xsl:text> </xsl:text>
152 <xsl:template match=
"initializer" mode=
"java">
154 <xsl:text>=
</xsl:text>
155 <xsl:apply-templates mode=
"java"/>
159 <xsl:template match=
"void" mode=
"java">
161 <xsl:text>void
</xsl:text>
165 <xsl:template match=
"methodname" mode=
"java">
167 <xsl:apply-templates mode=
"java"/>
173 <xsl:template match=
"methodparam" mode=
"java">
174 <!-- PARAM: indent := 0 -->
175 <xsl:param name=
"indent">0</xsl:param>
176 <xsl:if test=
"position() > 1">
177 <xsl:text>,
&RE;</xsl:text>
178 <xsl:if test=
"$indent > 0">
179 <!-- RCAS FIXME: copy-string does not exist
180 <xsl:call-template name="copy-string">
181 <xsl:with-param name="string"> </xsl:with-param>
182 <xsl:with-param name="count" select="$indent + 1"/>
187 <xsl:apply-templates mode=
"java"/>
192 <xsl:template match=
"parameter" mode=
"java">
193 <xsl:apply-templates mode=
"java"/>
196 <xsl:template mode=
"java"
197 match=
"constructorsynopsis|destructorsynopsis|methodsynopsis">
198 <xsl:variable name=
"modifiers" select=
"modifier"/>
199 <xsl:variable name=
"notmod" select=
"*[name(.) != 'modifier']"/>
200 <xsl:variable name=
"decl">
201 <xsl:text> </xsl:text>
202 <xsl:apply-templates select=
"$modifiers" mode=
"java"/>
205 <xsl:if test=
"name($notmod[1]) != 'methodname'">
206 <xsl:apply-templates select=
"$notmod[1]" mode=
"java"/>
209 <xsl:apply-templates select=
"methodname" mode=
"java"/>
213 <xsl:copy-of select=
"$decl"/>
214 <xsl:text>(
</xsl:text>
215 <xsl:apply-templates select=
"methodparam" mode=
"java">
216 <xsl:with-param name=
"indent" select=
"string-length($decl)"/>
217 </xsl:apply-templates>
218 <xsl:text>)
</xsl:text>
219 <xsl:if test=
"exceptionname">
220 <xsl:text>&RE; throws
</xsl:text>
221 <xsl:apply-templates select=
"exceptionname" mode=
"java"/>
223 <xsl:text>;
</xsl:text>
227 <!-- ===== C++ ========================================================= -->
229 <xsl:template match=
"classsynopsis" mode=
"cpp">
230 <pre class=
"{name(.)}">
231 <xsl:apply-templates select=
"ooclass[1]" mode=
"cpp"/>
232 <xsl:if test=
"ooclass[position() > 1]">
233 <xsl:text>:
</xsl:text>
234 <xsl:apply-templates select=
"ooclass[position() > 1]" mode=
"cpp"/>
235 <xsl:if test=
"oointerface|ooexception">
236 <xsl:text>&RE; </xsl:text>
239 <xsl:if test=
"oointerface">
240 <xsl:text> implements
</xsl:text>
241 <xsl:apply-templates select=
"oointerface" mode=
"cpp"/>
242 <xsl:if test=
"ooexception">
243 <xsl:text>&RE; </xsl:text>
246 <xsl:if test=
"ooexception">
247 <xsl:text> throws
</xsl:text>
248 <xsl:apply-templates select=
"ooexception" mode=
"cpp"/>
250 <xsl:text> {
&RE;&RE;</xsl:text>
251 <xsl:apply-templates select=
"constructorsynopsis
255 |classsynopsisinfo" mode=
"cpp"/>
256 <xsl:text>}
</xsl:text>
260 <xsl:template match=
"classsynopsisinfo" mode=
"cpp">
261 <xsl:apply-templates mode=
"cpp"/>
264 <xsl:template match=
"ooclass|oointerface|ooexception" mode=
"cpp">
265 <xsl:if test=
"position() > 1">
266 <xsl:text>,
</xsl:text>
269 <xsl:apply-templates mode=
"cpp"/>
273 <xsl:template match=
"modifier" mode=
"cpp">
275 <xsl:apply-templates mode=
"cpp"/>
276 <xsl:text> </xsl:text>
280 <xsl:template match=
"classname" mode=
"cpp">
281 <xsl:if test=
"name(preceding-sibling::*[1]) = 'classname'">
282 <xsl:text>,
</xsl:text>
285 <xsl:apply-templates mode=
"cpp"/>
289 <xsl:template match=
"interfacename" mode=
"cpp">
290 <xsl:if test=
"name(preceding-sibling::*[1]) = 'interfacename'">
291 <xsl:text>,
</xsl:text>
294 <xsl:apply-templates mode=
"cpp"/>
298 <xsl:template match=
"exceptionname" mode=
"cpp">
299 <xsl:if test=
"name(preceding-sibling::*[1]) = 'exceptionname'">
300 <xsl:text>,
</xsl:text>
303 <xsl:apply-templates mode=
"cpp"/>
307 <xsl:template match=
"fieldsynopsis" mode=
"cpp">
309 <xsl:text> </xsl:text>
310 <xsl:apply-templates mode=
"cpp"/>
311 <xsl:text>;
</xsl:text>
315 <xsl:template match=
"type" mode=
"cpp">
317 <xsl:apply-templates mode=
"cpp"/>
318 <xsl:text> </xsl:text>
322 <xsl:template match=
"varname" mode=
"cpp">
324 <xsl:apply-templates mode=
"cpp"/>
325 <xsl:text> </xsl:text>
329 <xsl:template match=
"initializer" mode=
"cpp">
331 <xsl:text>=
</xsl:text>
332 <xsl:apply-templates mode=
"cpp"/>
336 <xsl:template match=
"void" mode=
"cpp">
338 <xsl:text>void
</xsl:text>
342 <xsl:template match=
"methodname" mode=
"cpp">
344 <xsl:apply-templates mode=
"cpp"/>
348 <xsl:template match=
"methodparam" mode=
"cpp">
349 <xsl:if test=
"position() > 1">
350 <xsl:text>,
</xsl:text>
353 <xsl:apply-templates mode=
"cpp"/>
357 <xsl:template match=
"parameter" mode=
"cpp">
359 <xsl:apply-templates mode=
"cpp"/>
363 <xsl:template mode=
"cpp"
364 match=
"constructorsynopsis|destructorsynopsis|methodsynopsis">
365 <xsl:variable name=
"modifiers" select=
"modifier"/>
366 <xsl:variable name=
"notmod" select=
"*[name(.) != 'modifier']"/>
367 <xsl:variable name=
"type">
370 <xsl:text> </xsl:text>
371 <xsl:apply-templates select=
"$modifiers" mode=
"cpp"/>
374 <xsl:if test=
"name($notmod[1]) != 'methodname'">
375 <xsl:apply-templates select=
"$notmod[1]" mode=
"cpp"/>
378 <xsl:apply-templates select=
"methodname" mode=
"cpp"/>
379 <xsl:text>(
</xsl:text>
380 <xsl:apply-templates select=
"methodparam" mode=
"cpp"/>
381 <xsl:text>)
</xsl:text>
382 <xsl:if test=
"exceptionname">
383 <xsl:text>&RE; throws
</xsl:text>
384 <xsl:apply-templates select=
"exceptionname" mode=
"cpp"/>
386 <xsl:text>;
</xsl:text>
390 <!-- ===== IDL ========================================================= -->
392 <xsl:template match=
"classsynopsis" mode=
"idl">
393 <pre class=
"{name(.)}">
394 <xsl:text>interface
</xsl:text>
395 <xsl:apply-templates select=
"ooclass[1]" mode=
"idl"/>
396 <xsl:if test=
"ooclass[position() > 1]">
397 <xsl:text>:
</xsl:text>
398 <xsl:apply-templates select=
"ooclass[position() > 1]" mode=
"idl"/>
399 <xsl:if test=
"oointerface|ooexception">
400 <xsl:text>&RE; </xsl:text>
403 <xsl:if test=
"oointerface">
404 <xsl:text> implements
</xsl:text>
405 <xsl:apply-templates select=
"oointerface" mode=
"idl"/>
406 <xsl:if test=
"ooexception">
407 <xsl:text>&RE; </xsl:text>
410 <xsl:if test=
"ooexception">
411 <xsl:text> throws
</xsl:text>
412 <xsl:apply-templates select=
"ooexception" mode=
"idl"/>
414 <xsl:text> {
&RE;&RE;</xsl:text>
415 <xsl:apply-templates select=
"constructorsynopsis
419 |classsynopsisinfo" mode=
"idl"/>
420 <xsl:text>}
</xsl:text>
424 <xsl:template match=
"classsynopsisinfo" mode=
"idl">
425 <xsl:apply-templates mode=
"idl"/>
428 <xsl:template match=
"ooclass|oointerface|ooexception" mode=
"idl">
429 <xsl:if test=
"position() > 1">
430 <xsl:text>,
</xsl:text>
433 <xsl:apply-templates mode=
"idl"/>
437 <xsl:template match=
"modifier" mode=
"idl">
439 <xsl:apply-templates mode=
"idl"/>
440 <xsl:text> </xsl:text>
444 <xsl:template match=
"classname" mode=
"idl">
445 <xsl:if test=
"name(preceding-sibling::*[1]) = 'classname'">
446 <xsl:text>,
</xsl:text>
449 <xsl:apply-templates mode=
"idl"/>
453 <xsl:template match=
"interfacename" mode=
"idl">
454 <xsl:if test=
"name(preceding-sibling::*[1]) = 'interfacename'">
455 <xsl:text>,
</xsl:text>
458 <xsl:apply-templates mode=
"idl"/>
462 <xsl:template match=
"exceptionname" mode=
"idl">
463 <xsl:if test=
"name(preceding-sibling::*[1]) = 'exceptionname'">
464 <xsl:text>,
</xsl:text>
467 <xsl:apply-templates mode=
"idl"/>
471 <xsl:template match=
"fieldsynopsis" mode=
"idl">
473 <xsl:text> </xsl:text>
474 <xsl:apply-templates mode=
"idl"/>
475 <xsl:text>;
</xsl:text>
479 <xsl:template match=
"type" mode=
"idl">
481 <xsl:apply-templates mode=
"idl"/>
482 <xsl:text> </xsl:text>
486 <xsl:template match=
"varname" mode=
"idl">
488 <xsl:apply-templates mode=
"idl"/>
489 <xsl:text> </xsl:text>
493 <xsl:template match=
"initializer" mode=
"idl">
495 <xsl:text>=
</xsl:text>
496 <xsl:apply-templates mode=
"idl"/>
500 <xsl:template match=
"void" mode=
"idl">
502 <xsl:text>void
</xsl:text>
506 <xsl:template match=
"methodname" mode=
"idl">
508 <xsl:apply-templates mode=
"idl"/>
512 <xsl:template match=
"methodparam" mode=
"idl">
513 <xsl:if test=
"position() > 1">
514 <xsl:text>,
</xsl:text>
517 <xsl:apply-templates mode=
"idl"/>
521 <xsl:template match=
"parameter" mode=
"idl">
523 <xsl:apply-templates mode=
"idl"/>
527 <xsl:template mode=
"idl"
528 match=
"constructorsynopsis|destructorsynopsis|methodsynopsis">
529 <xsl:variable name=
"modifiers" select=
"modifier"/>
530 <xsl:variable name=
"notmod" select=
"*[name(.) != 'modifier']"/>
531 <xsl:variable name=
"type">
534 <xsl:text> </xsl:text>
535 <xsl:apply-templates select=
"$modifiers" mode=
"idl"/>
538 <xsl:if test=
"name($notmod[1]) != 'methodname'">
539 <xsl:apply-templates select=
"$notmod[1]" mode=
"idl"/>
542 <xsl:apply-templates select=
"methodname" mode=
"idl"/>
543 <xsl:text>(
</xsl:text>
544 <xsl:apply-templates select=
"methodparam" mode=
"idl"/>
545 <xsl:text>)
</xsl:text>
546 <xsl:if test=
"exceptionname">
547 <xsl:text>&RE; raises(
</xsl:text>
548 <xsl:apply-templates select=
"exceptionname" mode=
"idl"/>
549 <xsl:text>)
</xsl:text>
551 <xsl:text>;
</xsl:text>
559 <!-- ===== Perl ======================================================== -->
561 <xsl:template match=
"classsynopsis" mode=
"perl">
562 <pre class=
"{name(.)}">
563 <xsl:text>package
</xsl:text>
564 <xsl:apply-templates select=
"ooclass[1]" mode=
"perl"/>
565 <xsl:text>;
&RE;</xsl:text>
567 <xsl:if test=
"ooclass[position() > 1]">
568 <xsl:text>@ISA = (
</xsl:text>
569 <xsl:apply-templates select=
"ooclass[position() > 1]" mode=
"perl"/>
570 <xsl:text>);
&RE;</xsl:text>
573 <xsl:apply-templates select=
"constructorsynopsis
577 |classsynopsisinfo" mode=
"perl"/>
581 <xsl:template match=
"classsynopsisinfo" mode=
"perl">
582 <xsl:apply-templates mode=
"perl"/>
585 <xsl:template match=
"ooclass|oointerface|ooexception" mode=
"perl">
586 <xsl:if test=
"position() > 1">
587 <xsl:text>,
</xsl:text>
590 <xsl:apply-templates mode=
"perl"/>
594 <xsl:template match=
"modifier" mode=
"perl">
596 <xsl:apply-templates mode=
"perl"/>
597 <xsl:text> </xsl:text>
601 <xsl:template match=
"classname" mode=
"perl">
602 <xsl:if test=
"name(preceding-sibling::*[1]) = 'classname'">
603 <xsl:text>,
</xsl:text>
606 <xsl:apply-templates mode=
"perl"/>
610 <xsl:template match=
"interfacename" mode=
"perl">
611 <xsl:if test=
"name(preceding-sibling::*[1]) = 'interfacename'">
612 <xsl:text>,
</xsl:text>
615 <xsl:apply-templates mode=
"perl"/>
619 <xsl:template match=
"exceptionname" mode=
"perl">
620 <xsl:if test=
"name(preceding-sibling::*[1]) = 'exceptionname'">
621 <xsl:text>,
</xsl:text>
624 <xsl:apply-templates mode=
"perl"/>
628 <xsl:template match=
"fieldsynopsis" mode=
"perl">
630 <xsl:text> </xsl:text>
631 <xsl:apply-templates mode=
"perl"/>
632 <xsl:text>;
</xsl:text>
636 <xsl:template match=
"type" mode=
"perl">
638 <xsl:apply-templates mode=
"perl"/>
639 <xsl:text> </xsl:text>
643 <xsl:template match=
"varname" mode=
"perl">
645 <xsl:apply-templates mode=
"perl"/>
646 <xsl:text> </xsl:text>
650 <xsl:template match=
"initializer" mode=
"perl">
652 <xsl:text>=
</xsl:text>
653 <xsl:apply-templates mode=
"perl"/>
657 <xsl:template match=
"void" mode=
"perl">
659 <xsl:text>void
</xsl:text>
665 <xsl:template match=
"methodname" mode=
"perl">
666 <xsl:apply-templates mode=
"perl"/>
669 <xsl:template match=
"methodparam" mode=
"perl">
670 <xsl:if test=
"position() > 1"> <xsl:text>,
</xsl:text> </xsl:if>
671 <xsl:apply-templates mode=
"perl"/>
675 <xsl:template match=
"parameter" mode=
"perl">
676 <xsl:apply-templates mode=
"perl"/>
680 <xsl:template mode=
"perl" match=
"constructorsynopsis|destructorsynopsis|methodsynopsis">
681 <xsl:variable name=
"modifiers" select=
"modifier"/>
682 <xsl:variable name=
"notmod" select=
"*[name(.) != 'modifier']"/>
683 <xsl:variable name=
"type"> </xsl:variable>
685 <xsl:text>sub
</xsl:text>
687 <xsl:apply-templates select=
"methodname" mode=
"perl"/>
688 <xsl:text> { ... };
</xsl:text>