]> git.saurik.com Git - bison.git/blobdiff - data/xslt/bison.xsl
build: restore C90 compatibility
[bison.git] / data / xslt / bison.xsl
index ce3fe0f36ff3b3d63eb201254ef75e3083d7a2e3..10e3305bd7fdc22f976e4ff78b2920e93db38fc3 100644 (file)
@@ -2,9 +2,8 @@
 
 <!--
     bison.xsl - common templates for Bison XSLT.
 
 <!--
     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.
 
 
     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/">
 
   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">
 
 <!-- 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: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) &gt;= 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>
 </xsl:stylesheet>