blob: fd3b46b6fc90064e8ed33d58ffb03ce66d8600ab [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (c) 2002 Douglas Gregor <doug.gregor -at- gmail.com>
Distributed under the Boost Software License, Version 1.0.
(See accompanying file LICENSE_1_0.txt or copy at
http://www.boost.org/LICENSE_1_0.txt)
-->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:include href="annotation.xsl"/>
<xsl:include href="template.xsl"/>
<xsl:include href="function.xsl"/>
<xsl:include href="type.xsl"/>
<xsl:include href="source-highlight.xsl"/>
<xsl:include href="utility.xsl"/>
<xsl:include href="lookup.xsl"/>
<xsl:include href="library.xsl"/>
<xsl:include href="index.xsl"/>
<xsl:include href="error.xsl"/>
<xsl:include href="macro.xsl"/>
<xsl:include href="testing/testsuite.xsl"/>
<xsl:include href="caramel/concept2docbook.xsl"/>
<xsl:template name="namespace-synopsis">
<xsl:param name="indentation" select="0"/>
<!-- Open namespace-->
<xsl:call-template name="indent">
<xsl:with-param name="indentation" select="$indentation"/>
</xsl:call-template>
<xsl:call-template name="source-highlight">
<xsl:with-param name="text" select="concat('namespace ',@name)"/>
</xsl:call-template>
<xsl:text> {</xsl:text>
<!-- Emit namespace types -->
<xsl:apply-templates select="class|class-specialization|
struct|struct-specialization|
union|union-specialization|
typedef|enum|data-member" mode="synopsis">
<xsl:with-param name="indentation" select="$indentation + 2"/>
</xsl:apply-templates>
<!-- Emit namespace functions -->
<xsl:apply-templates
select="free-function-group|function|overloaded-function"
mode="synopsis">
<xsl:with-param name="indentation" select="$indentation + 2"/>
</xsl:apply-templates>
<!-- Emit namespaces -->
<xsl:apply-templates select="namespace" mode="synopsis">
<xsl:with-param name="indentation" select="$indentation + 2"/>
</xsl:apply-templates>
<!-- Close namespace -->
<xsl:text>&#10;</xsl:text>
<xsl:call-template name="indent">
<xsl:with-param name="indentation" select="$indentation"/>
</xsl:call-template>
<xsl:text>}</xsl:text>
</xsl:template>
<!-- Emit namespace synopsis -->
<xsl:template match="namespace" mode="synopsis">
<xsl:param name="indentation" select="0"/>
<xsl:choose>
<xsl:when test="count(ancestor::namespace)=0">
<xsl:call-template name="namespace-synopsis">
<xsl:with-param name="indentation" select="$indentation"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:text>&#10;</xsl:text>
<xsl:call-template name="namespace-synopsis">
<xsl:with-param name="indentation" select="$indentation"/>
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!-- Emit namespace reference -->
<xsl:template match="namespace" mode="reference">
<xsl:apply-templates select="namespace|free-function-group"
mode="reference">
<xsl:with-param name="indentation" select="0"/>
</xsl:apply-templates>
<xsl:apply-templates select="class|class-specialization|
struct|struct-specialization|
union|union-specialization|enum|function|
overloaded-function|data-member|typedef"
mode="namespace-reference"/>
</xsl:template>
<!-- Eat extra documentation when in the synopsis or reference sections -->
<xsl:template match="para|section" mode="synopsis"/>
<xsl:template match="para|section" mode="reference"/>
<!-- Comment mode tries to wipe out any extra spacing in the output -->
<xsl:template match="purpose" mode="comment">
<xsl:apply-templates mode="comment"/>
</xsl:template>
<xsl:template match="simpara|para" mode="comment">
<xsl:apply-templates select="text()|*" mode="comment"/>
</xsl:template>
<xsl:template match="text()" mode="comment">
<xsl:value-of select="."/>
</xsl:template>
<xsl:template match="*" mode="comment">
<xsl:apply-templates select="." mode="annotation"/>
</xsl:template>
</xsl:stylesheet>