<xsl:template match="modifier" mode="java">
<xsl:apply-templates mode="java"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</xsl:template>
<xsl:template match="classname" mode="java">
<xsl:template mode="java"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="decl">
<xsl:text> </xsl:text>
- <xsl:apply-templates select="$modifiers" mode="java"/>
+ <xsl:apply-templates select="$start-modifiers" mode="java"/>
<!-- type -->
<xsl:if test="name($notmod[1]) != 'methodname'">
<xsl:text>&RE; throws </xsl:text>
<xsl:apply-templates select="exceptionname" mode="java"/>
</xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="java"/>
+ </xsl:if>
<xsl:text>;</xsl:text>
</fo:block>
<xsl:call-template name="synop-break"/>
<xsl:template match="modifier" mode="cpp">
<xsl:apply-templates mode="cpp"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</xsl:template>
<xsl:template match="classname" mode="cpp">
<xsl:template mode="cpp"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<fo:block wrap-option='no-wrap'
white-space-collapse='false'
linefeed-treatment="preserve"
xsl:use-attribute-sets="monospace.verbatim.properties">
<xsl:text> </xsl:text>
- <xsl:apply-templates select="$modifiers" mode="cpp"/>
+ <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
<!-- type -->
<xsl:if test="name($notmod[1]) != 'methodname'">
<xsl:text>&RE; throws </xsl:text>
<xsl:apply-templates select="exceptionname" mode="cpp"/>
</xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+ </xsl:if>
<xsl:text>;</xsl:text>
</fo:block>
<xsl:call-template name="synop-break"/>
<xsl:template match="modifier" mode="idl">
<xsl:apply-templates mode="idl"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</xsl:template>
<xsl:template match="classname" mode="idl">
<xsl:template mode="idl"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<fo:block wrap-option='no-wrap'
white-space-collapse='false'
linefeed-treatment="preserve"
xsl:use-attribute-sets="monospace.verbatim.properties">
<xsl:text> </xsl:text>
- <xsl:apply-templates select="$modifiers" mode="idl"/>
+ <xsl:apply-templates select="$start-modifiers" mode="idl"/>
<!-- type -->
<xsl:if test="name($notmod[1]) != 'methodname'">
<xsl:apply-templates select="exceptionname" mode="idl"/>
<xsl:text>)</xsl:text>
</xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+ </xsl:if>
<xsl:text>;</xsl:text>
</fo:block>
<xsl:call-template name="synop-break"/>
<xsl:template match="modifier" mode="perl">
<xsl:apply-templates mode="perl"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</xsl:template>
<xsl:template match="classname" mode="perl">
<xsl:template mode="perl"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<fo:block wrap-option='no-wrap'
white-space-collapse='false'
<xsl:template match="modifier" mode="java">
<span class="{name(.)}">
<xsl:apply-templates mode="java"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</span>
</xsl:template>
<xsl:template mode="java"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="decl">
<xsl:if test="parent::classsynopsis">
<xsl:text> </xsl:text>
</xsl:if>
- <xsl:apply-templates select="$modifiers" mode="java"/>
+ <xsl:apply-templates select="$start-modifiers" mode="java"/>
<!-- type -->
<xsl:if test="name($notmod[1]) != 'methodname'">
<xsl:text> throws </xsl:text>
<xsl:apply-templates select="exceptionname" mode="java"/>
</xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="java"/>
+ </xsl:if>
<xsl:text>;</xsl:text>
</code>
<xsl:call-template name="synop-break"/>
<xsl:template match="modifier" mode="cpp">
<span class="{name(.)}">
<xsl:apply-templates mode="cpp"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</span>
</xsl:template>
<xsl:template mode="cpp"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<code class="{name(.)}">
<xsl:if test="parent::classsynopsis">
<xsl:text> </xsl:text>
</xsl:if>
- <xsl:apply-templates select="$modifiers" mode="cpp"/>
+ <xsl:apply-templates select="$start-modifiers" mode="cpp"/>
<!-- type -->
<xsl:if test="name($notmod[1]) != 'methodname'">
<xsl:text> throws </xsl:text>
<xsl:apply-templates select="exceptionname" mode="cpp"/>
</xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="cpp"/>
+ </xsl:if>
<xsl:text>;</xsl:text>
</code>
<xsl:call-template name="synop-break"/>
<xsl:template match="modifier" mode="idl">
<span class="{name(.)}">
<xsl:apply-templates mode="idl"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</span>
</xsl:template>
<xsl:template mode="idl"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
-
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<code class="{name(.)}">
<xsl:if test="parent::classsynopsis">
<xsl:text> </xsl:text>
</xsl:if>
- <xsl:apply-templates select="$modifiers" mode="idl"/>
+ <xsl:apply-templates select="$start-modifiers" mode="idl"/>
<!-- type -->
<xsl:if test="name($notmod[1]) != 'methodname'">
<xsl:apply-templates select="exceptionname" mode="idl"/>
<xsl:text>)</xsl:text>
</xsl:if>
+ <xsl:if test="modifier[preceding-sibling::*[name(.) != 'modifier']]">
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="$end-modifiers" mode="idl"/>
+ </xsl:if>
<xsl:text>;</xsl:text>
</code>
<xsl:call-template name="synop-break"/>
<xsl:template match="modifier" mode="perl">
<span class="{name(.)}">
<xsl:apply-templates mode="perl"/>
- <xsl:text> </xsl:text>
+ <xsl:if test="following-sibling::*">
+ <xsl:text> </xsl:text>
+ </xsl:if>
</span>
</xsl:template>
<xsl:template mode="perl"
match="constructorsynopsis|destructorsynopsis|methodsynopsis">
- <xsl:variable name="modifiers" select="modifier"/>
+ <xsl:variable name="start-modifiers" select="modifier[following-sibling::*[name(.) != 'modifier']]"/>
<xsl:variable name="notmod" select="*[name(.) != 'modifier']"/>
+ <xsl:variable name="end-modifiers" select="modifier[preceding-sibling::*[name(.) != 'modifier']]"/>
<code class="{name(.)}">
<xsl:text>sub </xsl:text>