mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
html: don't define several times the same anchors
Currently when we output useless rules, they appear before the grammar, but using the same invocation. As a result, the anchor is defined twice, and the wrong one, being first, is honored. * data/xslt/xml2xhtml.xsl (rule): Take a new 'anchor' parameter to decide whether being an anchor, or a target. Let it be true when output the grammar. * tests/report.at: Adjust.
This commit is contained in:
@@ -227,6 +227,7 @@
|
|||||||
<xsl:text> </xsl:text>
|
<xsl:text> </xsl:text>
|
||||||
<p class="pre">
|
<p class="pre">
|
||||||
<xsl:call-template name="style-rule-set">
|
<xsl:call-template name="style-rule-set">
|
||||||
|
<xsl:with-param name="anchor" select="'true'" />
|
||||||
<xsl:with-param
|
<xsl:with-param
|
||||||
name="rule-set" select="rules/rule[@usefulness!='useless-in-grammar']"
|
name="rule-set" select="rules/rule[@usefulness!='useless-in-grammar']"
|
||||||
/>
|
/>
|
||||||
@@ -238,9 +239,11 @@
|
|||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
<xsl:template name="style-rule-set">
|
<xsl:template name="style-rule-set">
|
||||||
|
<xsl:param name="anchor"/>
|
||||||
<xsl:param name="rule-set"/>
|
<xsl:param name="rule-set"/>
|
||||||
<xsl:for-each select="$rule-set">
|
<xsl:for-each select="$rule-set">
|
||||||
<xsl:apply-templates select=".">
|
<xsl:apply-templates select=".">
|
||||||
|
<xsl:with-param name="anchor" select="$anchor"/>
|
||||||
<xsl:with-param name="pad" select="'3'"/>
|
<xsl:with-param name="pad" select="'3'"/>
|
||||||
<xsl:with-param name="prev-lhs">
|
<xsl:with-param name="prev-lhs">
|
||||||
<xsl:if test="position()>1">
|
<xsl:if test="position()>1">
|
||||||
@@ -488,7 +491,12 @@
|
|||||||
</xsl:apply-templates>
|
</xsl:apply-templates>
|
||||||
</xsl:template>
|
</xsl:template>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
anchor = 'true': define as an <a> anchor.
|
||||||
|
itemset = 'true': show the items.
|
||||||
|
-->
|
||||||
<xsl:template match="rule">
|
<xsl:template match="rule">
|
||||||
|
<xsl:param name="anchor"/>
|
||||||
<xsl:param name="itemset"/>
|
<xsl:param name="itemset"/>
|
||||||
<xsl:param name="pad"/>
|
<xsl:param name="pad"/>
|
||||||
<xsl:param name="prev-lhs"/>
|
<xsl:param name="prev-lhs"/>
|
||||||
@@ -499,17 +507,21 @@
|
|||||||
<xsl:text> </xsl:text>
|
<xsl:text> </xsl:text>
|
||||||
</xsl:if>
|
</xsl:if>
|
||||||
|
|
||||||
<xsl:if test="$itemset != 'true'">
|
|
||||||
<a>
|
|
||||||
<xsl:attribute name="name">
|
|
||||||
<xsl:value-of select="concat('rule_', @number)"/>
|
|
||||||
</xsl:attribute>
|
|
||||||
</a>
|
|
||||||
</xsl:if>
|
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text> </xsl:text>
|
||||||
|
|
||||||
<xsl:choose>
|
<xsl:choose>
|
||||||
<xsl:when test="$itemset = 'true'">
|
<xsl:when test="$anchor = 'true'">
|
||||||
|
<a>
|
||||||
|
<xsl:attribute name="name">
|
||||||
|
<xsl:value-of select="concat('rule_', @number)"/>
|
||||||
|
</xsl:attribute>
|
||||||
|
<xsl:call-template name="lpad">
|
||||||
|
<xsl:with-param name="str" select="string(@number)"/>
|
||||||
|
<xsl:with-param name="pad" select="number($pad)"/>
|
||||||
|
</xsl:call-template>
|
||||||
|
</a>
|
||||||
|
</xsl:when>
|
||||||
|
<xsl:otherwise>
|
||||||
<a>
|
<a>
|
||||||
<xsl:attribute name="href">
|
<xsl:attribute name="href">
|
||||||
<xsl:value-of select="concat('#rule_', @number)"/>
|
<xsl:value-of select="concat('#rule_', @number)"/>
|
||||||
@@ -519,12 +531,6 @@
|
|||||||
<xsl:with-param name="pad" select="number($pad)"/>
|
<xsl:with-param name="pad" select="number($pad)"/>
|
||||||
</xsl:call-template>
|
</xsl:call-template>
|
||||||
</a>
|
</a>
|
||||||
</xsl:when>
|
|
||||||
<xsl:otherwise>
|
|
||||||
<xsl:call-template name="lpad">
|
|
||||||
<xsl:with-param name="str" select="string(@number)"/>
|
|
||||||
<xsl:with-param name="pad" select="number($pad)"/>
|
|
||||||
</xsl:call-template>
|
|
||||||
</xsl:otherwise>
|
</xsl:otherwise>
|
||||||
</xsl:choose>
|
</xsl:choose>
|
||||||
<xsl:text> </xsl:text>
|
<xsl:text> </xsl:text>
|
||||||
|
|||||||
@@ -1205,25 +1205,25 @@ if test x"$XSLTPROC" != x""; then
|
|||||||
|
|
||||||
<h2><a name="grammar" id="grammar"></a> Grammar</h2>
|
<h2><a name="grammar" id="grammar"></a> Grammar</h2>
|
||||||
<p class="pre">
|
<p class="pre">
|
||||||
<a name="rule_0" id="rule_0"></a> 0 <span class="i">$accept</span> → <span class="i">unit</span> <b>"end of file"</b>
|
<a name="rule_0" id="rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">unit</span> <b>"end of file"</b>
|
||||||
|
|
||||||
<a name="rule_1" id="rule_1"></a> 1 <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
|
<a name="rule_1" id="rule_1"> 1</a> <span class="i">unit</span> → <span class="i">assignments</span> <span class="i">exp</span>
|
||||||
|
|
||||||
<a name="rule_2" id="rule_2"></a> 2 <span class="i">assignments</span> → %empty
|
<a name="rule_2" id="rule_2"> 2</a> <span class="i">assignments</span> → %empty
|
||||||
<a name="rule_3" id="rule_3"></a> 3 | <span class="i">assignments</span> <span class="i">assignment</span>
|
<a name="rule_3" id="rule_3"> 3</a> | <span class="i">assignments</span> <span class="i">assignment</span>
|
||||||
|
|
||||||
<a name="rule_4" id="rule_4"></a> 4 <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
|
<a name="rule_4" id="rule_4"> 4</a> <span class="i">assignment</span> → <span class="i">id</span> <b>":="</b> <span class="i">exp</span>
|
||||||
|
|
||||||
<a name="rule_5" id="rule_5"></a> 5 <span class="i">id</span> → <b>"identifier"</b>
|
<a name="rule_5" id="rule_5"> 5</a> <span class="i">id</span> → <b>"identifier"</b>
|
||||||
|
|
||||||
<a name="rule_6" id="rule_6"></a> 6 <span class="i">@1</span> → %empty
|
<a name="rule_6" id="rule_6"> 6</a> <span class="i">@1</span> → %empty
|
||||||
|
|
||||||
<a name="rule_7" id="rule_7"></a> 7 <span class="i">@2</span> → %empty
|
<a name="rule_7" id="rule_7"> 7</a> <span class="i">@2</span> → %empty
|
||||||
|
|
||||||
<a name="rule_8" id="rule_8"></a> 8 <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
|
<a name="rule_8" id="rule_8"> 8</a> <span class="i">exp</span> → <b>"incr"</b> <span class="i">exp</span> <span class="i">@1</span> <span class="i">@2</span> <span class="i">exp</span>
|
||||||
<a name="rule_9" id="rule_9"></a> 9 | <b>"("</b> <span class="i">exp</span> <b>")"</b>
|
<a name="rule_9" id="rule_9"> 9</a> | <b>"("</b> <span class="i">exp</span> <b>")"</b>
|
||||||
<a name="rule_10" id="rule_10"></a> 10 | <b>"identifier"</b>
|
<a name="rule_10" id="rule_10"> 10</a> | <b>"identifier"</b>
|
||||||
<a name="rule_11" id="rule_11"></a> 11 | <b>"number"</b>
|
<a name="rule_11" id="rule_11"> 11</a> | <b>"number"</b>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
|
<h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
|
||||||
@@ -2158,7 +2158,7 @@ if test x"$XSLTPROC" != x""; then
|
|||||||
<h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
|
<h3><a name="rules_useless_in_grammar" id="rules_useless_in_grammar"></a> Rules useless in grammar</h3>
|
||||||
<h2><a name="rules_useless_in_parser" id="rules_useless_in_parser"></a> Rules useless in parser due to conflicts</h2>
|
<h2><a name="rules_useless_in_parser" id="rules_useless_in_parser"></a> Rules useless in parser due to conflicts</h2>
|
||||||
<p class="pre">
|
<p class="pre">
|
||||||
<a name="rule_3" id="rule_3"></a> 3 <span class="i">exp</span> → <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
|
<a href="#rule_3"> 3</a> <span class="i">exp</span> → <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
|
<h2><a name="conflicts" id="conflicts"></a> Conflicts</h2>
|
||||||
@@ -2169,13 +2169,13 @@ if test x"$XSLTPROC" != x""; then
|
|||||||
|
|
||||||
</p><h2><a name="grammar" id="grammar"></a> Grammar</h2>
|
</p><h2><a name="grammar" id="grammar"></a> Grammar</h2>
|
||||||
<p class="pre">
|
<p class="pre">
|
||||||
<a name="rule_0" id="rule_0"></a> 0 <span class="i">$accept</span> → <span class="i">exp</span> <b>$end</b>
|
<a name="rule_0" id="rule_0"> 0</a> <span class="i">$accept</span> → <span class="i">exp</span> <b>$end</b>
|
||||||
|
|
||||||
<a name="rule_1" id="rule_1"></a> 1 <span class="i">exp</span> → <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span>
|
<a name="rule_1" id="rule_1"> 1</a> <span class="i">exp</span> → <span class="i">exp</span> <b>"⊕"</b> <span class="i">exp</span>
|
||||||
<a name="rule_2" id="rule_2"></a> 2 | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
|
<a name="rule_2" id="rule_2"> 2</a> | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
|
||||||
<a name="rule_3" id="rule_3"></a> 3 | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
|
<a name="rule_3" id="rule_3"> 3</a> | <span class="i">exp</span> <b>"+"</b> <span class="i">exp</span>
|
||||||
<a name="rule_4" id="rule_4"></a> 4 | <b>"number"</b>
|
<a name="rule_4" id="rule_4"> 4</a> | <b>"number"</b>
|
||||||
<a name="rule_5" id="rule_5"></a> 5 | <b>"Ñùṃéℝô"</b>
|
<a name="rule_5" id="rule_5"> 5</a> | <b>"Ñùṃéℝô"</b>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
|
<h3><a name="terminals" id="terminals"></a> Terminals, with rules where they appear</h3>
|
||||||
|
|||||||
Reference in New Issue
Block a user