wxWidgets/utils/ifacecheck/gccxml.xsl

1008 lines
30 KiB
XML

<?xml version="1.0"?>
<!-- This file was taken from http://www.gccxml.org
where it was contributed by Ivan Kissiov.
This is useful to 'see' the structure of the gccXML output.
Usage:
xsltproc gccxml.xsl file_created_by_gccxml.xml
-->
<xsl:stylesheet
xmlns:xsl = "http://www.w3.org/1999/XSL/Transform"
version = "1.0">
<xsl:output method="html"/>
<xsl:template match = "GCC_XML">
<!-- =============================================== -->
<html>
<table border="0">
<tr><td>A</td><td ><a href="#TA">Array Types</a></td></tr>
<tr><td>B</td><td ><a href="#TB">Builtins</a></td></tr>
<tr><td>Co</td><td ><a href="#TC">Constructors</a></td></tr>
<tr><td>Cvt</td><td ><a href="#TCT">Converter</a></td></tr>
<tr><td>Q</td><td ><a href="#TQ">Cvq Types</a></td></tr>
<tr><td>Z</td><td ><a href="#TZ">Classes</a></td></tr>
<tr><td>D</td><td ><a href="#TD">Destructors</a></td></tr>
<tr><td>E</td><td ><a href="#TE">Enumerations</a></td></tr>
<tr><td>Fd</td><td ><a href="#TFd">Fields</a></td></tr>
<tr><td>Fu</td><td ><a href="#TF">Functions</a></td></tr>
<tr><td>FT</td><td ><a href="#TFT">Function Types</a></td></tr>
<tr><td>M</td><td ><a href="#TM">Methods</a></td></tr>
<tr><td>MT</td><td ><a href="#TMT">Method Typess</a></td></tr>
<tr><td>N</td><td ><a href="#TN">Namespaces</a></td></tr>
<tr><td>OpM</td><td ><a href="#TOM">Operator Methods</a></td></tr>
<tr><td>OpF</td><td ><a href="#TOF">Operator Functions</a></td></tr>
<tr><td>O</td><td ><a href="#TO">Offset Types</a></td></tr>
<tr><td>P</td><td ><a href="#TP">Pointer Types</a></td></tr>
<tr><td>R</td><td ><a href="#TR">Reference Types</a></td></tr>
<tr><td>S</td><td ><a href="#TS">Structures</a></td></tr>
<tr><td>TT</td><td ><a href="#TT">Typedefs</a></td></tr>
<tr><td>U</td><td ><a href="#TU">Unions</a></td></tr>
<tr><td>V</td><td ><a href="#TV">Variables</a></td></tr>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TB"></a>
<thead>
<tr align="center" colspan="5">Builtin Types</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
</tr>
</thead>
<xsl:apply-templates select="FundamentalType">
<xsl:sort select="@id"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TN"></a>
<thead>
<tr align="center" colspan="5">Namespaces</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">members</td>
</tr>
</thead>
<xsl:apply-templates select="Namespace">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TZ"></a>
<thead>
<tr align="center" colspan="5">Classes</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">bases</td>
<td align="center">members</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Class">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TS"></a>
<thead>
<tr align="center" colspan="5">Structures</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">bases</td>
<td align="center">members</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Struct">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TU"></a>
<thead>
<tr align="center" colspan="5">Unions</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">bases</td>
<td align="center">members</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Union">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TFd"></a>
<thead>
<tr align="center" colspan="5">Fields</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">type</td>
<td align="center">bits</td>
<td align="center">access</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Field">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TT"></a>
<thead>
<tr align="center" colspan="5">Typedefs</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">type</td>
</tr>
</thead>
<xsl:apply-templates select="Typedef">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TA"></a>
<thead>
<tr align="center" colspan="2">Arrays</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">type</td>
<td align="center">min</td>
<td align="center">max</td>
</tr>
</thead>
<xsl:apply-templates select="ArrayType">
<xsl:sort select="@id"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TP"></a>
<thead>
<tr align="center" colspan="2">Pointers</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">type</td>
</tr>
</thead>
<xsl:apply-templates select="PointerType">
<xsl:sort select="@id"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TO"></a>
<thead>
<tr align="center" colspan="2">Offset Types</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">basetype</td>
<td align="center">type</td>
</tr>
</thead>
<xsl:apply-templates select="OffsetType">
<xsl:sort select="@id"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TR"></a>
<thead>
<tr align="center" colspan="2">References</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">type</td>
</tr>
</thead>
<xsl:apply-templates select="ReferenceType">
<xsl:sort select="@id"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TQ"></a>
<thead>
<tr align="center" colspan="2">CVQ Types</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">type</td>
</tr>
</thead>
<xsl:apply-templates select="CvQualifiedType">
<xsl:sort select="@id"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TV"></a>
<thead>
<tr align="center" colspan="5">Variables</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">type</td>
<td align="center">access</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Variable">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TM"></a>
<thead>
<tr align="center" colspan="5">Methods</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">returns</td>
<td align="center">throws</td>
<td align="center">arguments</td>
<td align="center">access</td>
<td align="center">static</td>
<td align="center">const</td> <!--MINE-->
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Method">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TOM"></a>
<thead>
<tr align="center" colspan="5">Operator Methods</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">returns</td>
<td align="center">throws</td>
<td align="center">arguments</td>
<td align="center">access</td>
<td align="center">static</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="OperatorMethod">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TMT"></a>
<thead>
<tr align="center" colspan="5">Method Types</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">basetype</td>
<td align="center">returns</td>
<td align="center">arguments</td>
<td align="center">const</td>
</tr>
</thead>
<xsl:apply-templates select="MethodType">
<xsl:sort select="@id"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TCT"></a>
<thead>
<tr align="center" colspan="5">Converters</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">returns</td>
<td align="center">throws</td>
<td align="center">access</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Converter">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TF"></a>
<thead>
<tr align="center" colspan="5">Functions</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">returns</td>
<td align="center">throws</td>
<td align="center">arguments</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Function">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TOF"></a>
<thead>
<tr align="center" colspan="5">Operator Functions</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">returns</td>
<td align="center">throws</td>
<td align="center">arguments</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="OperatorFunction">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TFT"></a>
<thead>
<tr align="center" colspan="5">Function Types</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">returns</td>
<td align="center">arguments</td>
</tr>
</thead>
<xsl:apply-templates select="FunctionType">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TC"></a>
<thead>
<tr align="center" colspan="5">Constructors</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">throws</td>
<td align="center">arguments</td>
<td align="center">access</td>
<td align="center">artificial</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Constructor">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TD"></a>
<thead>
<tr align="center" colspan="5">Destructors</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">throws</td>
<td align="center">access</td>
<td align="center">virtual</td>
<td align="center">artificial</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Destructor">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<a name="TE"></a>
<thead>
<tr align="center" colspan="5">Enumerations</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
<td align="center">context</td>
<td align="center">artificial</td>
<td align="center">file</td>
<td align="center">line</td>
</tr>
</thead>
<xsl:apply-templates select="Enumeration">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
<!-- =============================================== -->
<table border="1">
<thead>
<tr align="center" colspan="5">File</tr>
<tr>
<td align="center">T</td>
<td align="center">id</td>
<td align="center">name</td>
</tr>
</thead>
<xsl:apply-templates select="File">
<xsl:sort select="@name"/>
</xsl:apply-templates>
</table><hr/>
</html>
</xsl:template>
<!-- ====================================================================== -->
<xsl:template match = "Class">
<tr>
<td>Z</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@bases" />
</xsl:call-template>
</td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@members" />
</xsl:call-template>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Struct">
<tr>
<td>S</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@bases" />
</xsl:call-template>
</td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@members" />
</xsl:call-template>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Union">
<tr>
<td>U</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@bases" />
</xsl:call-template>
</td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@members" />
</xsl:call-template>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Namespace">
<tr>
<td>N</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@members" />
</xsl:call-template>
</td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Field">
<tr>
<td>Fd</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
<td><xsl:value-of select="@access"/></td>
<td><xsl:value-of select="@bits"/></td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Typedef">
<tr>
<td>T</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "ArrayType">
<tr>
<td>A</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
<td><a name="{@min}"><xsl:value-of select="@min"/></a></td>
<td><a name="{@max}"><xsl:value-of select="@max"/></a></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "PointerType">
<tr>
<td>P</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "OffsetType">
<tr>
<td>O</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "ReferenceType">
<tr>
<td>R</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "CvQualifiedType">
<tr>
<td>Q</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "FundamentalType">
<tr>
<td>B</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Variable">
<tr>
<td>V</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td><a href="#{@type}"><xsl:value-of select="@type"/></a></td>
<td><xsl:value-of select="@access"/></td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Method">
<tr>
<td>M</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@throw" />
</xsl:call-template>
</td>
<td><xsl:value-of select="@demangled"/></td>
<td><xsl:value-of select="@access"/></td>
<td>
<xsl:choose>
<xsl:when test="@static='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="@const='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "MethodType">
<tr>
<td>MT</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
<td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
<td><xsl:apply-templates select="Argument"/></td>
<td>
<xsl:choose>
<xsl:when test="@const='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "OperatorMethod">
<tr>
<td>OpM</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@basetype}"><xsl:value-of select="@basetype"/></a></td>
<td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@throw" />
</xsl:call-template>
</td>
<td><xsl:apply-templates select="Argument"/></td>
<td><xsl:value-of select="@access"/></td>
<td>
<xsl:choose>
<xsl:when test="@static='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Converter">
<tr>
<td>Cnv</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@throw" />
</xsl:call-template>
</td>
<td><xsl:value-of select="@access"/></td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Function">
<tr>
<td>F</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@throw" />
</xsl:call-template>
</td>
<td><xsl:apply-templates select="Argument"/></td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "OperatorFunction">
<tr>
<td>OpF</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@throw" />
</xsl:call-template>
</td>
<td><xsl:apply-templates select="Argument"/></td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "FunctionType">
<tr>
<td>FT</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="#{@returns}"><xsl:value-of select="@returns"/></a></td>
<td><xsl:apply-templates select="Argument"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Destructor">
<tr>
<td>D</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@throw" />
</xsl:call-template>
</td>
<td><xsl:value-of select="@access"/></td>
<td>
<xsl:choose>
<xsl:when test="@virtual='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td>
<xsl:choose>
<xsl:when test="@artificial='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Constructor">
<tr>
<td>Co</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td>
<xsl:call-template name="tokenize">
<xsl:with-param name="string" select="@throw" />
</xsl:call-template>
</td>
<td><xsl:apply-templates select="Argument"/></td>
<td><xsl:value-of select="@access"/></td>
<td>
<xsl:choose>
<xsl:when test="@artificial='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Enumeration">
<tr>
<td>En</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><xsl:value-of select="@name"/></td>
<td><a href="#{@context}"><xsl:value-of select="@context"/></a></td>
<td>
<xsl:choose>
<xsl:when test="@artificial='1'">true</xsl:when>
<xsl:otherwise>false</xsl:otherwise>
</xsl:choose>
</td>
<td><a href="#{@file}"><xsl:value-of select="@file"/></a></td>
<td><xsl:value-of select="@line"/></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "File">
<tr>
<td>Fd</td>
<td><a name="{@id}"><xsl:value-of select="@id"/></a></td>
<td><a href="{@name}"><xsl:value-of select="@name"/></a></td>
</tr>
</xsl:template>
<!-- =============================================== -->
<xsl:template match = "Argument">
<a href="#{@type}"><xsl:value-of select="@type"/></a>
</xsl:template>
<!--- ========== Tokenizer ================== -->
<xsl:template name="tokenize">
<xsl:param name="string" select="''" />
<xsl:param name="delimiters" select="' &#x9; '" />
<xsl:choose>
<xsl:when test="not($string)" />
<xsl:when test="not($delimiters)">
<xsl:call-template name="_tokenize-characters">
<xsl:with-param name="string" select="$string" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="_tokenize-delimiters">
<xsl:with-param name="string" select="$string" />
<xsl:with-param name="delimiters" select="$delimiters" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- =============================================== -->
<xsl:template name="_tokenize-characters">
<xsl:param name="string" />
<xsl:if test="$string">
<a href="#{$string}">
<xsl:value-of select="substring($string, 1, 1)" />
</a>
<xsl:call-template name="_tokenize-characters">
<xsl:with-param name="string" select="substring($string, 2)" />
</xsl:call-template>
</xsl:if>
</xsl:template>
<!-- =============================================== -->
<xsl:template name="_tokenize-delimiters">
<xsl:param name="string" />
<xsl:param name="delimiters" />
<xsl:variable name="delimiter" select="substring($delimiters, 1, 1)" />
<xsl:choose>
<xsl:when test="not($delimiter)">
<a href="#{$string}">
<xsl:value-of select="$string" />
</a>
</xsl:when>
<xsl:when test="contains($string, $delimiter)">
<xsl:if test="not(starts-with($string, $delimiter))">
<xsl:call-template name="_tokenize-delimiters">
<xsl:with-param name="string" select="substring-before($string, $delimiter)" />
<xsl:with-param name="delimiters" select="substring($delimiters, 2)" />
</xsl:call-template>
</xsl:if>
<xsl:call-template name="_tokenize-delimiters">
<xsl:with-param name="string" select="substring-after($string, $delimiter)" />
<xsl:with-param name="delimiters" select="$delimiters" />
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($string, 'private:')">
<xsl:call-template name="_tokenize-delimiters">
<xsl:with-param name="string" select="substring($string, 9)" />
</xsl:call-template>
</xsl:when>
<xsl:when test="starts-with($string, 'protected:')">
<xsl:call-template name="_tokenize-delimiters">
<xsl:with-param name="string" select="substring($string, 11)" />
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="_tokenize-delimiters">
<xsl:with-param name="string" select="$string" />
<xsl:with-param name="delimiters" select="substring($delimiters, 2)" />
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>