1<xsl:stylesheet version="1.0" 2 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 3 <xsl:output method="text"/> 4 5 <xsl:variable name="total" select="count(//reg)"/> 6 7 <xsl:template name="pad"> 8 <xsl:param name="count" select="0"/> 9 <xsl:text>0: 10</xsl:text> 11 <xsl:if test="$count > 1"> 12 <xsl:call-template name="pad"> 13 <xsl:with-param name="count" select="$count - 1"/> 14 </xsl:call-template> 15 </xsl:if> 16 </xsl:template> 17 18 <xsl:template name="reg"> 19 <xsl:param name="which" select="1"/> 20 <xsl:param name="nextnum" select="0"/> 21 <xsl:variable name="thisnum" select="@regnum"/> 22 <xsl:if test="$nextnum < number(@regnum)"> 23 <xsl:call-template name="pad"> 24 <xsl:with-param name="count" select="@regnum - $nextnum"/> 25 </xsl:call-template> 26 </xsl:if> 27 <xsl:value-of select="@bitsize"/> 28 <xsl:text>:</xsl:text> 29 <xsl:value-of select="@name"/> 30 <xsl:text> 31</xsl:text> 32 <xsl:if test="$which < $total"> 33 <xsl:for-each select="/descendant::reg[$which + 1]"> 34 <xsl:call-template name="reg"> 35 <xsl:with-param name="which" select="$which + 1"/> 36 <xsl:with-param name="nextnum" select="$thisnum + 1"/> 37 </xsl:call-template> 38 </xsl:for-each> 39 </xsl:if> 40 </xsl:template> 41 42 <xsl:template match="/"> 43 <xsl:for-each select="/descendant::reg[1]"> 44 <xsl:call-template name="reg"/> 45 </xsl:for-each> 46 </xsl:template> 47</xsl:stylesheet> 48