mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 04:13:03 +00:00
* data/xslt/bison.xsl (bison:ruleNumber): Rename to...
(bison:ruleByNumber): ... this for clarity. * data/xslt/xml2dot.xsl (xsl:template match="item"): Update. * data/xslt/xml2text.xsl (xsl:template match="item"): Update. (xsl:template match="reduction"): Update. (xsl:template match="item"): Update. (xsl:template match="reduction"): Update. In the XML output, don't print the list of rules where symbols appear. Compute it in XSLT instead. Discussed at <http://lists.gnu.org/archive/html/bison-patches/2007-09/msg00024.html>. * data/xslt/bison.xsl (bison:ruleByLhs): New. (bison:ruleByRhs): New. * data/xslt/xml2text.xsl (xsl:template match="terminal"): Use bison:ruleByRhs. (xsl:template match="terminal/rule"): Remove. (xsl:template match="nonterminal"): Use bison:ruleByLhs and bison:ruleByRhs. (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"): Remove. * data/xslt/xml2xhtml.xsl (xsl:template match="terminal"): Use bison:ruleByRhs and mode="number-link" for rule template. (xsl:template match="terminal/rule"): Remove. (xsl:template match="nonterminal"): Use bison:ruleByLhs and bison:ruleByRhs and mode="number-link" for rule template. (xsl:template match="nonterminal/left/rule|nonterminal/right/rule"): Rewrite as... (xsl:template match="rule" mode="number-link"): ... this. * src/print-xml.c (print_grammar): Don't print the list of rules.
This commit is contained in:
@@ -326,45 +326,41 @@
|
||||
<xsl:template match="terminal">
|
||||
<b><xsl:value-of select="@name"/></b>
|
||||
<xsl:value-of select="concat(' (', @token-number, ')')"/>
|
||||
<xsl:apply-templates select="rule"/>
|
||||
<xsl:for-each select="key('bison:ruleByRhs', @name)">
|
||||
<xsl:apply-templates select="." mode="number-link"/>
|
||||
</xsl:for-each>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="terminal/rule">
|
||||
<xsl:text> </xsl:text>
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:value-of select="concat('#rule_', .)"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="."/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="nonterminal">
|
||||
<b><xsl:value-of select="@name"/></b>
|
||||
<xsl:value-of select="concat(' (', @symbol-number, ')')"/>
|
||||
<xsl:text> </xsl:text>
|
||||
<xsl:if test="left/rule">
|
||||
<xsl:if test="key('bison:ruleByLhs', @name)">
|
||||
<xsl:text>on left:</xsl:text>
|
||||
<xsl:for-each select="key('bison:ruleByLhs', @name)">
|
||||
<xsl:apply-templates select="." mode="number-link"/>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="left/rule"/>
|
||||
<xsl:if test="left/rule and right/rule">
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:if test="right/rule">
|
||||
<xsl:if test="key('bison:ruleByRhs', @name)">
|
||||
<xsl:if test="key('bison:ruleByLhs', @name)">
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:if>
|
||||
<xsl:text>on right:</xsl:text>
|
||||
<xsl:for-each select="key('bison:ruleByRhs', @name)">
|
||||
<xsl:apply-templates select="." mode="number-link"/>
|
||||
</xsl:for-each>
|
||||
</xsl:if>
|
||||
<xsl:apply-templates select="right/rule"/>
|
||||
<xsl:text> </xsl:text>
|
||||
</xsl:template>
|
||||
|
||||
<xsl:template match="nonterminal/left/rule|nonterminal/right/rule">
|
||||
<xsl:template match="rule" mode="number-link">
|
||||
<xsl:text> </xsl:text>
|
||||
<a>
|
||||
<xsl:attribute name="href">
|
||||
<xsl:value-of select="concat('#rule_', .)"/>
|
||||
<xsl:value-of select="concat('#rule_', @number)"/>
|
||||
</xsl:attribute>
|
||||
<xsl:value-of select="."/>
|
||||
<xsl:value-of select="@number"/>
|
||||
</a>
|
||||
</xsl:template>
|
||||
|
||||
@@ -451,11 +447,14 @@
|
||||
<xsl:param name="pad"/>
|
||||
<xsl:param name="prev-rule-number"
|
||||
select="preceding-sibling::item[1]/@rule-number"/>
|
||||
<xsl:apply-templates select="key('bison:ruleNumber', current()/@rule-number)">
|
||||
<xsl:apply-templates
|
||||
select="key('bison:ruleByNumber', current()/@rule-number)"
|
||||
>
|
||||
<xsl:with-param name="itemset" select="'true'"/>
|
||||
<xsl:with-param name="pad" select="$pad"/>
|
||||
<xsl:with-param name="prev-lhs"
|
||||
select="key('bison:ruleNumber', $prev-rule-number)/lhs[text()]"/>
|
||||
select="key('bison:ruleByNumber', $prev-rule-number)/lhs[text()]"
|
||||
/>
|
||||
<xsl:with-param name="point" select="@point"/>
|
||||
<xsl:with-param name="lookaheads">
|
||||
<xsl:apply-templates select="lookaheads"/>
|
||||
@@ -644,7 +643,8 @@
|
||||
</a>
|
||||
<xsl:text> (</xsl:text>
|
||||
<xsl:value-of
|
||||
select="key('bison:ruleNumber', current()/@rule)/lhs[text()]"/>
|
||||
select="key('bison:ruleByNumber', current()/@rule)/lhs[text()]"
|
||||
/>
|
||||
<xsl:text>)</xsl:text>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
|
||||
Reference in New Issue
Block a user