<!--
bison.xsl - common templates for Bison XSLT.
- $Id$
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007-2013 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:bison="http://www.gnu.org/software/bison/">
-<xsl:key name="bison:ruleNumber"
- match="/bison-xml-report/grammar/rules/rule"
- use="@number"/>
+<xsl:key
+ name="bison:symbolByName"
+ match="/bison-xml-report/grammar/nonterminals/nonterminal"
+ use="@name"
+/>
+<xsl:key
+ name="bison:symbolByName"
+ match="/bison-xml-report/grammar/terminals/terminal"
+ use="@name"
+/>
+<xsl:key
+ name="bison:ruleByNumber"
+ match="/bison-xml-report/grammar/rules/rule"
+ use="@number"
+/>
+<xsl:key
+ name="bison:ruleByLhs"
+ match="/bison-xml-report/grammar/rules/rule[
+ @usefulness != 'useless-in-grammar']"
+ use="lhs"
+/>
+<xsl:key
+ name="bison:ruleByRhs"
+ match="/bison-xml-report/grammar/rules/rule[
+ @usefulness != 'useless-in-grammar']"
+ use="rhs/symbol"
+/>
<!-- For the specified state, output: #sr-conflicts,#rr-conflicts -->
<xsl:template match="state" mode="bison:count-conflicts">
<xsl:value-of select="string-length(translate($conflict-data, 's', ''))"/>
</xsl:template>
+<xsl:template name="space">
+ <xsl:param name="repeat">0</xsl:param>
+ <xsl:param name="fill" select="' '"/>
+ <xsl:if test="number($repeat) >= 1">
+ <xsl:call-template name="space">
+ <xsl:with-param name="repeat" select="$repeat - 1"/>
+ <xsl:with-param name="fill" select="$fill"/>
+ </xsl:call-template>
+ <xsl:value-of select="$fill"/>
+ </xsl:if>
+</xsl:template>
+
</xsl:stylesheet>