| <!-- |
| /* |
| ******************************************************************************* |
| * Copyright (C) 2009-2011, International Business Machines Corporation and * |
| * others. All Rights Reserved. * |
| ******************************************************************************* |
| * This is an XSLT build file for ICU tools. |
| */ |
| --> |
| <!-- |
| List all C functions generated from the 'index.xml' |
| --> |
| <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> |
| <xsl:param name="docFolder" /> |
| |
| <xsl:template match="/"> |
| <list> |
| <xsl:variable name="files_node" select="/doxygenindex/compound[@kind='file']/@refid" /> |
| <xsl:for-each select="$files_node"> |
| <xsl:variable name="file" select="concat($docFolder, '/', . , '.xml')" /> |
| <xsl:variable name="funcs_node" select="document($file)/doxygen/compounddef/sectiondef/memberdef[@prot='public'][@kind='function']" /> |
| <xsl:for-each select="$funcs_node"> |
| <cppfunc> |
| <xsl:copy-of select="@id" /> |
| <xsl:attribute name="status"><xsl:value-of select="detaileddescription/para/xrefsect/xreftitle/text()"/></xsl:attribute> |
| <xsl:attribute name="version"><xsl:value-of select="detaileddescription/para/xrefsect/xrefdescription/para/text()"/></xsl:attribute> |
| <xsl:attribute name="prototype"><xsl:value-of select="concat(definition/text(), argsstring/text())" /></xsl:attribute> |
| <xsl:copy-of select="location/@file" /> |
| </cppfunc> |
| </xsl:for-each> |
| |
| <!-- now get #defines --> |
| <xsl:variable name="defs_node" select="document($file)/doxygen/compounddef/sectiondef/memberdef[@prot='public'][@kind='define']" /> |
| <xsl:for-each select="$defs_node"> |
| <cppfunc> |
| <xsl:copy-of select="@id" /> |
| <xsl:attribute name="status"><xsl:value-of select="detaileddescription/para/xrefsect/xreftitle/text()"/></xsl:attribute> |
| <xsl:attribute name="version"><xsl:value-of select="detaileddescription/para/xrefsect/xrefdescription/para/text()"/></xsl:attribute> |
| <xsl:attribute name="prototype">#define <xsl:value-of select="name/text()" /></xsl:attribute> |
| <xsl:copy-of select="location/@file" /> |
| </cppfunc> |
| </xsl:for-each> |
| |
| <!-- now enums --> |
| <xsl:variable name="enum_node" |
| select="document($file)/doxygen/compounddef/sectiondef/memberdef[@kind='enum'][@prot='public']" /> |
| <xsl:for-each select="$enum_node"> |
| |
| <!-- use a name, else '(anonymous)' --> |
| <xsl:variable name="enum_node_name"> |
| <xsl:choose> |
| <xsl:when test="contains(name/text(), '@')"> |
| (anonymous)</xsl:when> |
| <xsl:otherwise> |
| <xsl:value-of select="name/text()" /></xsl:otherwise></xsl:choose> |
| </xsl:variable> |
| |
| <!-- enum object --> |
| <xsl:variable name="enum_status" select="detaileddescription/para/xrefsect/xreftitle/text()"/> |
| <xsl:variable name="enum_version" select="detaileddescription/para/xrefsect/xrefdescription/para/text()"/> |
| |
| <!-- no anonymous file level enums --><!-- |
| <xsl:if test="not(contains(name/text(), '@'))"> |
| <cppfunc> |
| <xsl:copy-of select="@id" /> |
| <xsl:attribute name="status"><xsl:value-of select="$enum_status" /></xsl:attribute> |
| <xsl:attribute name="version"><xsl:value-of select="$enum_status" /></xsl:attribute> |
| <xsl:attribute name="prototype">enum <xsl:value-of |
| select="$enum_node_name" /> {}</xsl:attribute> |
| <xsl:copy-of select="location/@file" /> |
| </cppfunc> |
| </xsl:if> |
| |
| --><xsl:variable name="enum_node_file" select="location/@file" /> |
| |
| |
| <xsl:variable name="enum_member" select="enumvalue[@prot='public']"/> |
| |
| <xsl:for-each select="$enum_member"> |
| <cppfunc> |
| <xsl:copy-of select="@id" /> |
| <!-- status and version: only override if set. --> |
| <xsl:attribute name="status"><xsl:choose> |
| <xsl:when test="detaileddescription/para/xrefsect/xreftitle/text() != ''"><xsl:value-of select="detaileddescription/para/xrefsect/xreftitle/text()"/></xsl:when> |
| <xsl:otherwise><xsl:value-of select="$enum_status" /></xsl:otherwise> |
| </xsl:choose></xsl:attribute> |
| <xsl:attribute name="version"><xsl:choose> |
| <xsl:when test="detaileddescription/para/xrefsect/xrefdescription/para/text() != ''"><xsl:value-of select="detaileddescription/para/xrefsect/xrefdescription/para/text()"/></xsl:when> |
| <xsl:otherwise><xsl:value-of select="$enum_version" /></xsl:otherwise> |
| </xsl:choose></xsl:attribute> |
| <xsl:attribute name="prototype">enum <xsl:value-of select="$enum_node_name"/>::<xsl:value-of |
| select="name/text()" /></xsl:attribute> |
| <xsl:attribute name="file"><xsl:value-of select="$enum_node_file" /></xsl:attribute> |
| </cppfunc> |
| |
| </xsl:for-each> <!-- done with enum member --> |
| |
| |
| </xsl:for-each> <!-- done with enum --> |
| |
| |
| </xsl:for-each> |
| </list> |
| </xsl:template> |
| </xsl:stylesheet> |
| |
| |