Update OpenVMS makefile
[wxWidgets.git] / utils / ifacecheck / gccxml.xsl
1 <?xml version="1.0"?>
2
3 <!-- This file was taken from http://www.gccxml.org
4      where it was contributed by Ivan Kissiov.
5
6      This is useful to 'see' the structure of the gccXML output.
7      Usage:
8
9         xsltproc gccxml.xsl file_created_by_gccxml.xml
10 -->
11
12 <xsl:stylesheet
13         xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
14         version = "1.0">
15     <xsl:output method="html"/>
16
17     <xsl:template match = "GCC_XML">
18
19         <!-- =============================================== -->
20     <html>
21     <table border="0">
22                 <tr><td>A</td><td ><a href="#TA">Array Types</a></td></tr>
23                 <tr><td>B</td><td ><a href="#TB">Builtins</a></td></tr>
24                 <tr><td>Co</td><td ><a href="#TC">Constructors</a></td></tr>
25                 <tr><td>Cvt</td><td ><a href="#TCT">Converter</a></td></tr>
26                 <tr><td>Q</td><td ><a href="#TQ">Cvq Types</a></td></tr>
27                 <tr><td>Z</td><td ><a href="#TZ">Classes</a></td></tr>
28                 <tr><td>D</td><td ><a href="#TD">Destructors</a></td></tr>
29                 <tr><td>E</td><td ><a href="#TE">Enumerations</a></td></tr>
30                 <tr><td>Fd</td><td ><a href="#TFd">Fields</a></td></tr>
31                 <tr><td>Fu</td><td ><a href="#TF">Functions</a></td></tr>
32                 <tr><td>FT</td><td ><a href="#TFT">Function Types</a></td></tr>
33                 <tr><td>M</td><td ><a href="#TM">Methods</a></td></tr>
34                 <tr><td>MT</td><td ><a href="#TMT">Method Typess</a></td></tr>
35                 <tr><td>N</td><td ><a href="#TN">Namespaces</a></td></tr>
36                 <tr><td>OpM</td><td ><a href="#TOM">Operator Methods</a></td></tr>
37                 <tr><td>OpF</td><td ><a href="#TOF">Operator Functions</a></td></tr>
38                 <tr><td>O</td><td ><a href="#TO">Offset Types</a></td></tr>
39                 <tr><td>P</td><td ><a href="#TP">Pointer Types</a></td></tr>
40                 <tr><td>R</td><td ><a href="#TR">Reference Types</a></td></tr>
41                 <tr><td>S</td><td ><a href="#TS">Structures</a></td></tr>
42                 <tr><td>TT</td><td ><a href="#TT">Typedefs</a></td></tr>
43                 <tr><td>U</td><td ><a href="#TU">Unions</a></td></tr>
44                 <tr><td>V</td><td ><a href="#TV">Variables</a></td></tr>
45         </table><hr/>
46
47         <!-- =============================================== -->
48     <table border="1">
49                 <a name="TB"></a>
50                 <thead>
51                         <tr align="center" colspan="5">Builtin Types</tr>
52                         <tr>
53                                 <td align="center">T</td>
54                                 <td align="center">id</td>
55                                 <td align="center">name</td>
56                         </tr>
57                 </thead>
58                         <xsl:apply-templates select="FundamentalType">
59                                 <xsl:sort select="@id"/>
60                         </xsl:apply-templates>
61                 </table><hr/>
62
63         <!-- =============================================== -->
64                 <table border="1">
65                 <a name="TN"></a>
66                 <thead>
67                         <tr align="center" colspan="5">Namespaces</tr>
68                         <tr>
69                                 <td align="center">T</td>
70                                 <td align="center">id</td>
71                                 <td align="center">name</td>
72                                 <td align="center">context</td>
73                                 <td align="center">members</td>
74                         </tr>
75                 </thead>
76                         <xsl:apply-templates select="Namespace">
77                                 <xsl:sort select="@name"/>
78                         </xsl:apply-templates>
79                 </table><hr/>
80
81                 <!-- =============================================== -->
82                 <table border="1">
83                 <a name="TZ"></a>
84                 <thead>
85                         <tr align="center" colspan="5">Classes</tr>
86                         <tr>
87                                 <td align="center">T</td>
88                                 <td align="center">id</td>
89                                 <td align="center">name</td>
90                                 <td align="center">context</td>
91                                 <td align="center">bases</td>
92                                 <td align="center">members</td>
93                                 <td align="center">file</td>
94                                 <td align="center">line</td>
95                         </tr>
96                 </thead>
97                         <xsl:apply-templates select="Class">
98                                 <xsl:sort select="@name"/>
99                         </xsl:apply-templates>
100                 </table><hr/>
101
102                 <!-- =============================================== -->
103                 <table border="1">
104                 <a name="TS"></a>
105                 <thead>
106                         <tr align="center" colspan="5">Structures</tr>
107                         <tr>
108                                 <td align="center">T</td>
109                                 <td align="center">id</td>
110                                 <td align="center">name</td>
111                                 <td align="center">context</td>
112                                 <td align="center">bases</td>
113                                 <td align="center">members</td>
114                                 <td align="center">file</td>
115                                 <td align="center">line</td>
116                         </tr>
117                 </thead>
118                         <xsl:apply-templates select="Struct">
119                                 <xsl:sort select="@name"/>
120                         </xsl:apply-templates>
121                 </table><hr/>
122
123                 <!-- =============================================== -->
124                 <table border="1">
125                 <a name="TU"></a>
126                 <thead>
127                         <tr align="center" colspan="5">Unions</tr>
128                         <tr>
129                                 <td align="center">T</td>
130                                 <td align="center">id</td>
131                                 <td align="center">name</td>
132                                 <td align="center">context</td>
133                                 <td align="center">bases</td>
134                                 <td align="center">members</td>
135                                 <td align="center">file</td>
136                                 <td align="center">line</td>
137                         </tr>
138                 </thead>
139                         <xsl:apply-templates select="Union">
140                                 <xsl:sort select="@name"/>
141                         </xsl:apply-templates>
142                 </table><hr/>
143
144                 <!-- =============================================== -->
145                 <table border="1">
146                 <a name="TFd"></a>
147                 <thead>
148                         <tr align="center" colspan="5">Fields</tr>
149                         <tr>
150                                 <td align="center">T</td>
151                                 <td align="center">id</td>
152                                 <td align="center">name</td>
153                                 <td align="center">context</td>
154                                 <td align="center">type</td>
155                                 <td align="center">bits</td>
156                                 <td align="center">access</td>
157                                 <td align="center">file</td>
158                                 <td align="center">line</td>
159                         </tr>
160                 </thead>
161                         <xsl:apply-templates select="Field">
162                                 <xsl:sort select="@name"/>
163                         </xsl:apply-templates>
164                 </table><hr/>
165
166                 <!-- =============================================== -->
167                 <table border="1">
168                 <a name="TT"></a>
169                 <thead>
170                         <tr align="center" colspan="5">Typedefs</tr>
171                         <tr>
172                                 <td align="center">T</td>
173                                 <td align="center">id</td>
174                                 <td align="center">name</td>
175                                 <td align="center">context</td>
176                                 <td align="center">type</td>
177                         </tr>
178                 </thead>
179                         <xsl:apply-templates select="Typedef">
180                                 <xsl:sort select="@name"/>
181                         </xsl:apply-templates>
182                 </table><hr/>
183
184                 <!-- =============================================== -->
185                 <table border="1">
186                 <a name="TA"></a>
187                 <thead>
188                         <tr align="center" colspan="2">Arrays</tr>
189                         <tr>
190                                 <td align="center">T</td>
191                                 <td align="center">id</td>
192                                 <td align="center">type</td>
193                                 <td align="center">min</td>
194                                 <td align="center">max</td>
195                         </tr>
196                 </thead>
197                         <xsl:apply-templates select="ArrayType">
198                                 <xsl:sort select="@id"/>
199                         </xsl:apply-templates>
200                 </table><hr/>
201
202
203                 <!-- =============================================== -->
204                 <table border="1">
205                 <a name="TP"></a>
206                 <thead>
207                         <tr align="center" colspan="2">Pointers</tr>
208                         <tr>
209                                 <td align="center">T</td>
210                                 <td align="center">id</td>
211                                 <td align="center">type</td>
212                         </tr>
213                 </thead>
214                         <xsl:apply-templates select="PointerType">
215                                 <xsl:sort select="@id"/>
216                         </xsl:apply-templates>
217                 </table><hr/>
218
219                 <!-- =============================================== -->
220                 <table border="1">
221                 <a name="TO"></a>
222                 <thead>
223                         <tr align="center" colspan="2">Offset Types</tr>
224                         <tr>
225                                 <td align="center">T</td>
226                                 <td align="center">id</td>
227                                 <td align="center">basetype</td>
228                                 <td align="center">type</td>
229                         </tr>
230                 </thead>
231                         <xsl:apply-templates select="OffsetType">
232                                 <xsl:sort select="@id"/>
233                         </xsl:apply-templates>
234                 </table><hr/>
235
236                 <!-- =============================================== -->
237                 <table border="1">
238                 <a name="TR"></a>
239                 <thead>
240                         <tr align="center" colspan="2">References</tr>
241                         <tr>
242                                 <td align="center">T</td>
243                                 <td align="center">id</td>
244                                 <td align="center">type</td>
245                         </tr>
246                 </thead>
247                         <xsl:apply-templates select="ReferenceType">
248                                 <xsl:sort select="@id"/>
249                         </xsl:apply-templates>
250                 </table><hr/>
251
252                 <!-- =============================================== -->
253                 <table border="1">
254                 <a name="TQ"></a>
255                 <thead>
256                         <tr align="center" colspan="2">CVQ Types</tr>
257                         <tr>
258                                 <td align="center">T</td>
259                                 <td align="center">id</td>
260                                 <td align="center">type</td>
261                         </tr>
262                 </thead>
263                         <xsl:apply-templates select="CvQualifiedType">
264                                 <xsl:sort select="@id"/>
265                         </xsl:apply-templates>
266                 </table><hr/>
267
268                 <!-- =============================================== -->
269                 <table border="1">
270                 <a name="TV"></a>
271                 <thead>
272                         <tr align="center" colspan="5">Variables</tr>
273                         <tr>
274                                 <td align="center">T</td>
275                                 <td align="center">id</td>
276                                 <td align="center">name</td>
277                                 <td align="center">context</td>
278                                 <td align="center">type</td>
279                                 <td align="center">access</td>
280                                 <td align="center">file</td>
281                                 <td align="center">line</td>
282                         </tr>
283                 </thead>
284                         <xsl:apply-templates select="Variable">
285                                 <xsl:sort select="@name"/>
286                         </xsl:apply-templates>
287                 </table><hr/>
288
289                 <!-- =============================================== -->
290                 <table border="1">
291                 <a name="TM"></a>
292                 <thead>
293                         <tr align="center" colspan="5">Methods</tr>
294                         <tr>
295                                 <td align="center">T</td>
296                                 <td align="center">id</td>
297                                 <td align="center">name</td>
298                                 <td align="center">context</td>
299                                 <td align="center">returns</td>
300                                 <td align="center">throws</td>
301                                 <td align="center">arguments</td>
302                                 <td align="center">access</td>
303                                 <td align="center">static</td>
304                 <td align="center">const</td> <!--MINE-->
305                                 <td align="center">file</td>
306                                 <td align="center">line</td>
307                         </tr>
308                 </thead>
309                         <xsl:apply-templates select="Method">
310                                 <xsl:sort select="@name"/>
311                         </xsl:apply-templates>
312                 </table><hr/>
313
314                 <!-- =============================================== -->
315                 <table border="1">
316                 <a name="TOM"></a>
317                 <thead>
318                         <tr align="center" colspan="5">Operator Methods</tr>
319                         <tr>
320                                 <td align="center">T</td>
321                                 <td align="center">id</td>
322                                 <td align="center">name</td>
323                                 <td align="center">context</td>
324                                 <td align="center">returns</td>
325                                 <td align="center">throws</td>
326                                 <td align="center">arguments</td>
327                                 <td align="center">access</td>
328                                 <td align="center">static</td>
329                                 <td align="center">file</td>
330                                 <td align="center">line</td>
331                         </tr>
332                 </thead>
333                         <xsl:apply-templates select="OperatorMethod">
334                                 <xsl:sort select="@name"/>
335                         </xsl:apply-templates>
336                 </table><hr/>
337
338                 <!-- =============================================== -->
339                 <table border="1">
340                 <a name="TMT"></a>
341                 <thead>
342                         <tr align="center" colspan="5">Method Types</tr>
343                         <tr>
344                                 <td align="center">T</td>
345                                 <td align="center">id</td>
346                                 <td align="center">basetype</td>
347                                 <td align="center">returns</td>
348                                 <td align="center">arguments</td>
349                                 <td align="center">const</td>
350                         </tr>
351                 </thead>
352                         <xsl:apply-templates select="MethodType">
353                                 <xsl:sort select="@id"/>
354                         </xsl:apply-templates>
355                 </table><hr/>
356
357                 <!-- =============================================== -->
358                 <table border="1">
359                 <a name="TCT"></a>
360                 <thead>
361                         <tr align="center" colspan="5">Converters</tr>
362                         <tr>
363                                 <td align="center">T</td>
364                                 <td align="center">id</td>
365                                 <td align="center">name</td>
366                                 <td align="center">context</td>
367                                 <td align="center">returns</td>
368                                 <td align="center">throws</td>
369                                 <td align="center">access</td>
370                                 <td align="center">file</td>
371                                 <td align="center">line</td>
372                         </tr>
373                 </thead>
374                         <xsl:apply-templates select="Converter">
375                                 <xsl:sort select="@name"/>
376                         </xsl:apply-templates>
377                 </table><hr/>
378
379                 <!-- =============================================== -->
380                 <table border="1">
381                 <a name="TF"></a>
382                 <thead>
383                         <tr align="center" colspan="5">Functions</tr>
384                         <tr>
385                                 <td align="center">T</td>
386                                 <td align="center">id</td>
387                                 <td align="center">name</td>
388                                 <td align="center">context</td>
389                                 <td align="center">returns</td>
390                                 <td align="center">throws</td>
391                                 <td align="center">arguments</td>
392                                 <td align="center">file</td>
393                                 <td align="center">line</td>
394                         </tr>
395                 </thead>
396                         <xsl:apply-templates select="Function">
397                                 <xsl:sort select="@name"/>
398                         </xsl:apply-templates>
399                 </table><hr/>
400
401                 <!-- =============================================== -->
402                 <table border="1">
403                 <a name="TOF"></a>
404                 <thead>
405                         <tr align="center" colspan="5">Operator Functions</tr>
406                         <tr>
407                                 <td align="center">T</td>
408                                 <td align="center">id</td>
409                                 <td align="center">name</td>
410                                 <td align="center">context</td>
411                                 <td align="center">returns</td>
412                                 <td align="center">throws</td>
413                                 <td align="center">arguments</td>
414                                 <td align="center">file</td>
415                                 <td align="center">line</td>
416                         </tr>
417                 </thead>
418                         <xsl:apply-templates select="OperatorFunction">
419                                 <xsl:sort select="@name"/>
420                         </xsl:apply-templates>
421                 </table><hr/>
422
423                 <!-- =============================================== -->
424                 <table border="1">
425                 <a name="TFT"></a>
426                 <thead>
427                         <tr align="center" colspan="5">Function Types</tr>
428                         <tr>
429                                 <td align="center">T</td>
430                                 <td align="center">id</td>
431                                 <td align="center">returns</td>
432                                 <td align="center">arguments</td>
433                         </tr>
434                 </thead>
435                         <xsl:apply-templates select="FunctionType">
436                                 <xsl:sort select="@name"/>
437                         </xsl:apply-templates>
438                 </table><hr/>
439
440                 <!-- =============================================== -->
441                 <table border="1">
442                 <a name="TC"></a>
443                 <thead>
444                         <tr align="center" colspan="5">Constructors</tr>
445                         <tr>
446                                 <td align="center">T</td>
447                                 <td align="center">id</td>
448                                 <td align="center">name</td>
449                                 <td align="center">context</td>
450                                 <td align="center">throws</td>
451                                 <td align="center">arguments</td>
452                                 <td align="center">access</td>
453                                 <td align="center">artificial</td>
454                                 <td align="center">file</td>
455                                 <td align="center">line</td>
456                         </tr>
457                 </thead>
458                         <xsl:apply-templates select="Constructor">
459                                 <xsl:sort select="@name"/>
460                         </xsl:apply-templates>
461                 </table><hr/>
462
463                 <!-- =============================================== -->
464                 <table border="1">
465                 <a name="TD"></a>
466                 <thead>
467                         <tr align="center" colspan="5">Destructors</tr>
468                         <tr>
469                                 <td align="center">T</td>
470                                 <td align="center">id</td>
471                                 <td align="center">name</td>
472                                 <td align="center">context</td>
473                                 <td align="center">throws</td>
474                                 <td align="center">access</td>
475                                 <td align="center">virtual</td>
476                                 <td align="center">artificial</td>
477                                 <td align="center">file</td>
478                                 <td align="center">line</td>
479                         </tr>
480                 </thead>
481                         <xsl:apply-templates select="Destructor">
482                                 <xsl:sort select="@name"/>
483                         </xsl:apply-templates>
484                 </table><hr/>
485
486                 <!-- =============================================== -->
487                 <table border="1">
488                 <a name="TE"></a>
489                 <thead>
490                         <tr align="center" colspan="5">Enumerations</tr>
491                         <tr>
492                                 <td align="center">T</td>
493                                 <td align="center">id</td>
494                                 <td align="center">name</td>
495                                 <td align="center">context</td>
496                                 <td align="center">artificial</td>
497                                 <td align="center">file</td>
498                                 <td align="center">line</td>
499                         </tr>
500                 </thead>
501                         <xsl:apply-templates select="Enumeration">
502                                 <xsl:sort select="@name"/>
503                         </xsl:apply-templates>
504                 </table><hr/>
505
506                 <!-- =============================================== -->
507                 <table border="1">
508                 <thead>
509                         <tr align="center" colspan="5">File</tr>
510                         <tr>
511                                 <td align="center">T</td>
512                                 <td align="center">id</td>
513                                 <td align="center">name</td>
514                         </tr>
515                 </thead>
516                         <xsl:apply-templates select="File">
517                                 <xsl:sort select="@name"/>
518                         </xsl:apply-templates>
519                 </table><hr/>
520         </html>
521     </xsl:template>
522
523         <!-- ====================================================================== -->
524     <xsl:template match = "Class">
525                 <tr>
526                         <td>Z</td>
527                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
528                         <td><xsl:value-of select="@name"/></td>
529                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
530                         <td>
531                                 <xsl:call-template name="tokenize">
532                                         <xsl:with-param name="string" select="@bases" />
533                                 </xsl:call-template>
534                         </td>
535                         <td>
536                                 <xsl:call-template name="tokenize">
537                                         <xsl:with-param name="string" select="@members" />
538                                 </xsl:call-template>
539                         </td>
540                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
541                         <td><xsl:value-of select="@line"/></td>
542                 </tr>
543     </xsl:template>
544
545         <!-- =============================================== -->
546     <xsl:template match = "Struct">
547                 <tr>
548                         <td>S</td>
549                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
550                         <td><xsl:value-of select="@name"/></td>
551                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
552                         <td>
553                                 <xsl:call-template name="tokenize">
554                                                 <xsl:with-param name="string" select="@bases" />
555                                 </xsl:call-template>
556                         </td>
557                         <td>
558                                 <xsl:call-template name="tokenize">
559                                                 <xsl:with-param name="string" select="@members" />
560                                 </xsl:call-template>
561                         </td>
562                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
563                         <td><xsl:value-of select="@line"/></td>
564                 </tr>
565     </xsl:template>
566
567         <!-- =============================================== -->
568     <xsl:template match = "Union">
569                 <tr>
570                         <td>U</td>
571                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
572                         <td><xsl:value-of select="@name"/></td>
573                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
574                         <td>
575                                 <xsl:call-template name="tokenize">
576                                                 <xsl:with-param name="string" select="@bases" />
577                                 </xsl:call-template>
578                         </td>
579                         <td>
580                                 <xsl:call-template name="tokenize">
581                                                 <xsl:with-param name="string" select="@members" />
582                                 </xsl:call-template>
583                         </td>
584                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
585                         <td><xsl:value-of select="@line"/></td>
586                 </tr>
587     </xsl:template>
588
589         <!-- =============================================== -->
590     <xsl:template match = "Namespace">
591                 <tr>
592                         <td>N</td>
593                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
594                         <td><xsl:value-of select="@name"/></td>
595                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
596                         <td>
597                                 <xsl:call-template name="tokenize">
598                                                 <xsl:with-param name="string" select="@members" />
599                                 </xsl:call-template>
600                         </td>
601                 </tr>
602     </xsl:template>
603
604         <!-- =============================================== -->
605     <xsl:template match = "Field">
606                 <tr>
607                         <td>Fd</td>
608                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
609                         <td><xsl:value-of select="@name"/></td>
610                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
611                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
612                         <td><xsl:value-of select="@access"/></td>
613                         <td><xsl:value-of select="@bits"/></td>
614                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
615                         <td><xsl:value-of select="@line"/></td>
616                 </tr>
617     </xsl:template>
618
619         <!-- =============================================== -->
620     <xsl:template match = "Typedef">
621                 <tr>
622                         <td>T</td>
623                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
624                         <td><xsl:value-of select="@name"/></td>
625                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
626                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
627                 </tr>
628     </xsl:template>
629
630         <!-- =============================================== -->
631     <xsl:template match = "ArrayType">
632                 <tr>
633                         <td>A</td>
634                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
635                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
636                         <td><a name="{@min}"><xsl:value-of select="@min"/></a></td>
637                         <td><a name="{@max}"><xsl:value-of select="@max"/></a></td>
638                 </tr>
639     </xsl:template>
640
641         <!-- =============================================== -->
642     <xsl:template match = "PointerType">
643                 <tr>
644                         <td>P</td>
645                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
646                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
647                 </tr>
648     </xsl:template>
649
650         <!-- =============================================== -->
651     <xsl:template match = "OffsetType">
652                 <tr>
653                         <td>O</td>
654                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
655                         <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
656                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
657                 </tr>
658     </xsl:template>
659
660         <!-- =============================================== -->
661     <xsl:template match = "ReferenceType">
662                 <tr>
663                         <td>R</td>
664                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
665                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
666                 </tr>
667     </xsl:template>
668
669         <!-- =============================================== -->
670     <xsl:template match = "CvQualifiedType">
671                 <tr>
672                         <td>Q</td>
673                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
674                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
675                 </tr>
676     </xsl:template>
677
678         <!-- =============================================== -->
679     <xsl:template match = "FundamentalType">
680                 <tr>
681                         <td>B</td>
682                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
683                         <td><xsl:value-of select="@name"/></td>
684                 </tr>
685     </xsl:template>
686
687         <!-- =============================================== -->
688     <xsl:template match = "Variable">
689                 <tr>
690                         <td>V</td>
691                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
692                         <td><xsl:value-of select="@name"/></td>
693                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
694                         <td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
695                         <td><xsl:value-of select="@access"/></td>
696                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
697                         <td><xsl:value-of select="@line"/></td>
698                 </tr>
699     </xsl:template>
700
701         <!-- =============================================== -->
702     <xsl:template match = "Method">
703                 <tr>
704                         <td>M</td>
705                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
706                         <td><xsl:value-of select="@name"/></td>
707                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
708                         <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
709                         <td>
710                                 <xsl:call-template name="tokenize">
711                                         <xsl:with-param name="string" select="@throw" />
712                                 </xsl:call-template>
713                         </td>
714                         <td><xsl:value-of select="@demangled"/></td>
715                         <td><xsl:value-of select="@access"/></td>
716                         <td>
717                                 <xsl:choose>
718                                         <xsl:when test="@static='1'">true</xsl:when>
719                                         <xsl:otherwise>false</xsl:otherwise>
720                                 </xsl:choose>
721                         </td>
722             <td>
723                 <xsl:choose>
724                     <xsl:when test="@const='1'">true</xsl:when>
725                     <xsl:otherwise>false</xsl:otherwise>
726                 </xsl:choose>
727             </td>
728                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
729                         <td><xsl:value-of select="@line"/></td>
730                 </tr>
731     </xsl:template>
732
733         <!-- =============================================== -->
734     <xsl:template match = "MethodType">
735                 <tr>
736                         <td>MT</td>
737                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
738                         <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
739                         <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
740                         <td><xsl:apply-templates select="Argument"/></td>
741                         <td>
742                                 <xsl:choose>
743                                         <xsl:when test="@const='1'">true</xsl:when>
744                                         <xsl:otherwise>false</xsl:otherwise>
745                                 </xsl:choose>
746                         </td>
747                 </tr>
748     </xsl:template>
749
750         <!-- =============================================== -->
751     <xsl:template match = "OperatorMethod">
752                 <tr>
753                         <td>OpM</td>
754                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
755                         <td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
756                         <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
757                         <td>
758                                 <xsl:call-template name="tokenize">
759                                         <xsl:with-param name="string" select="@throw" />
760                                 </xsl:call-template>
761                         </td>
762                         <td><xsl:apply-templates select="Argument"/></td>
763                         <td><xsl:value-of select="@access"/></td>
764                         <td>
765                                 <xsl:choose>
766                                         <xsl:when test="@static='1'">true</xsl:when>
767                                         <xsl:otherwise>false</xsl:otherwise>
768                                 </xsl:choose>
769                         </td>
770                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
771                         <td><xsl:value-of select="@line"/></td>
772                 </tr>
773     </xsl:template>
774
775         <!-- =============================================== -->
776     <xsl:template match = "Converter">
777                 <tr>
778                         <td>Cnv</td>
779                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
780                         <td><xsl:value-of select="@name"/></td>
781                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
782                         <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
783                         <td>
784                                 <xsl:call-template name="tokenize">
785                                         <xsl:with-param name="string" select="@throw" />
786                                 </xsl:call-template>
787                         </td>
788                         <td><xsl:value-of select="@access"/></td>
789                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
790                         <td><xsl:value-of select="@line"/></td>
791                 </tr>
792     </xsl:template>
793
794         <!-- =============================================== -->
795     <xsl:template match = "Function">
796                 <tr>
797                         <td>F</td>
798                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
799                         <td><xsl:value-of select="@name"/></td>
800                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
801                         <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
802                         <td>
803                                 <xsl:call-template name="tokenize">
804                                         <xsl:with-param name="string" select="@throw" />
805                                 </xsl:call-template>
806                         </td>
807                         <td><xsl:apply-templates select="Argument"/></td>
808                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
809                         <td><xsl:value-of select="@line"/></td>
810                 </tr>
811     </xsl:template>
812
813         <!-- =============================================== -->
814     <xsl:template match = "OperatorFunction">
815                 <tr>
816                         <td>OpF</td>
817                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
818                         <td><xsl:value-of select="@name"/></td>
819                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
820                         <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
821                         <td>
822                                 <xsl:call-template name="tokenize">
823                                         <xsl:with-param name="string" select="@throw" />
824                                 </xsl:call-template>
825                         </td>
826                         <td><xsl:apply-templates select="Argument"/></td>
827                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
828                         <td><xsl:value-of select="@line"/></td>
829                 </tr>
830     </xsl:template>
831
832         <!-- =============================================== -->
833     <xsl:template match = "FunctionType">
834                 <tr>
835                         <td>FT</td>
836                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
837                         <td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
838                         <td><xsl:apply-templates select="Argument"/></td>
839                 </tr>
840     </xsl:template>
841
842         <!-- =============================================== -->
843     <xsl:template match = "Destructor">
844                 <tr>
845                         <td>D</td>
846                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
847                         <td><xsl:value-of select="@name"/></td>
848                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
849                         <td>
850                                 <xsl:call-template name="tokenize">
851                                         <xsl:with-param name="string" select="@throw" />
852                                 </xsl:call-template>
853                         </td>
854                         <td><xsl:value-of select="@access"/></td>
855                         <td>
856                                 <xsl:choose>
857                                         <xsl:when test="@virtual='1'">true</xsl:when>
858                                         <xsl:otherwise>false</xsl:otherwise>
859                                 </xsl:choose>
860                         </td>
861                         <td>
862                                 <xsl:choose>
863                                         <xsl:when test="@artificial='1'">true</xsl:when>
864                                         <xsl:otherwise>false</xsl:otherwise>
865                                 </xsl:choose>
866                         </td>
867                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
868                         <td><xsl:value-of select="@line"/></td>
869                 </tr>
870     </xsl:template>
871
872         <!-- =============================================== -->
873     <xsl:template match = "Constructor">
874                 <tr>
875                         <td>Co</td>
876                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
877                         <td><xsl:value-of select="@name"/></td>
878                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
879                         <td>
880                                 <xsl:call-template name="tokenize">
881                                         <xsl:with-param name="string" select="@throw" />
882                                 </xsl:call-template>
883                         </td>
884                         <td><xsl:apply-templates select="Argument"/></td>
885                         <td><xsl:value-of select="@access"/></td>
886                         <td>
887                                 <xsl:choose>
888                                         <xsl:when test="@artificial='1'">true</xsl:when>
889                                         <xsl:otherwise>false</xsl:otherwise>
890                                 </xsl:choose>
891                         </td>
892                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
893                         <td><xsl:value-of select="@line"/></td>
894                 </tr>
895     </xsl:template>
896
897         <!-- =============================================== -->
898     <xsl:template match = "Enumeration">
899                 <tr>
900                         <td>En</td>
901                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
902                         <td><xsl:value-of select="@name"/></td>
903                         <td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
904                         <td>
905                                 <xsl:choose>
906                                         <xsl:when test="@artificial='1'">true</xsl:when>
907                                         <xsl:otherwise>false</xsl:otherwise>
908                                 </xsl:choose>
909                         </td>
910                         <td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
911                         <td><xsl:value-of select="@line"/></td>
912                 </tr>
913     </xsl:template>
914
915         <!-- =============================================== -->
916     <xsl:template match = "File">
917                 <tr>
918                         <td>Fd</td>
919                         <td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
920                         <td><a href="{@name}"><xsl:value-of select="@name"/></a></td>
921                 </tr>
922     </xsl:template>
923
924         <!-- =============================================== -->
925     <xsl:template match = "Argument">
926                 <a href="#{@type}"><xsl:value-of select="@type"/></a>
927     </xsl:template>
928
929         <!--- ========== Tokenizer ================== -->
930         <xsl:template name="tokenize">
931            <xsl:param name="string" select="''" />
932            <xsl:param name="delimiters" select="' &#x9; '" />
933            <xsl:choose>
934                   <xsl:when test="not($string)" />
935                   <xsl:when test="not($delimiters)">
936                          <xsl:call-template name="_tokenize-characters">
937                                 <xsl:with-param name="string" select="$string" />
938                          </xsl:call-template>
939                   </xsl:when>
940                   <xsl:otherwise>
941                          <xsl:call-template name="_tokenize-delimiters">
942                                 <xsl:with-param name="string" select="$string" />
943                                 <xsl:with-param name="delimiters"       select="$delimiters" />
944                          </xsl:call-template>
945                   </xsl:otherwise>
946            </xsl:choose>
947         </xsl:template>
948
949         <!-- =============================================== -->
950         <xsl:template name="_tokenize-characters">
951            <xsl:param name="string" />
952            <xsl:if test="$string">
953                   <a href="#{$string}">
954                          <xsl:value-of select="substring($string, 1, 1)" />
955                   </a>
956                   <xsl:call-template name="_tokenize-characters">
957                          <xsl:with-param name="string"   select="substring($string, 2)" />
958                   </xsl:call-template>
959            </xsl:if>
960         </xsl:template>
961
962         <!-- =============================================== -->
963         <xsl:template name="_tokenize-delimiters">
964            <xsl:param name="string" />
965            <xsl:param name="delimiters" />
966            <xsl:variable name="delimiter"        select="substring($delimiters, 1, 1)" />
967            <xsl:choose>
968                   <xsl:when test="not($delimiter)">
969                          <a href="#{$string}">
970                                 <xsl:value-of select="$string" />
971                          </a>
972                   </xsl:when>
973                   <xsl:when test="contains($string, $delimiter)">
974                          <xsl:if test="not(starts-with($string, $delimiter))">
975                                 <xsl:call-template name="_tokenize-delimiters">
976                                    <xsl:with-param name="string"  select="substring-before($string, $delimiter)" />
977                                    <xsl:with-param name="delimiters"  select="substring($delimiters, 2)" />
978                                 </xsl:call-template>
979                          </xsl:if>
980                          <xsl:call-template name="_tokenize-delimiters">
981                                 <xsl:with-param name="string"   select="substring-after($string, $delimiter)" />
982                                 <xsl:with-param name="delimiters"       select="$delimiters" />
983                          </xsl:call-template>
984                   </xsl:when>
985
986                   <xsl:when test="starts-with($string, 'private:')">
987                         <xsl:call-template name="_tokenize-delimiters">
988                                 <xsl:with-param name="string"   select="substring($string, 9)" />
989                          </xsl:call-template>
990                   </xsl:when>
991
992                   <xsl:when test="starts-with($string, 'protected:')">
993                         <xsl:call-template name="_tokenize-delimiters">
994                                 <xsl:with-param name="string"   select="substring($string, 11)" />
995                          </xsl:call-template>
996                   </xsl:when>
997
998                   <xsl:otherwise>
999                          <xsl:call-template name="_tokenize-delimiters">
1000                                 <xsl:with-param name="string"   select="$string" />
1001                                 <xsl:with-param name="delimiters"       select="substring($delimiters, 2)" />
1002                          </xsl:call-template>
1003                   </xsl:otherwise>
1004            </xsl:choose>
1005         </xsl:template>
1006
1007 </xsl:stylesheet>