<xsl:apply-templates select="patternsType/*[1]" mode="noannot"/>
<xsl:apply-templates select="inductiveTerm/*[1]" mode="noannot"/>
<xsl:variable name="nop"><xsl:value-of select="document(concat(string($absPath),$Turi))/InductiveDefinition/@noParams"/></xsl:variable>
+<piecewise>
<xsl:for-each select="pattern">
<xsl:variable name="pos" select="position()"/>
<xsl:variable name="nopar"><xsl:apply-templates select="document(concat(string($absPath),$Turi))/InductiveDefinition/InductiveType[position()=number($Tindex)+1]/Constructor[position()=number($pos)]/*[1]" mode="counting"><xsl:with-param name="noparams" select="$nop"/></xsl:apply-templates></xsl:variable>
+<piece>
+ <xsl:apply-templates select="./*[1]" mode="abstparams"><xsl:with-param name="noparams" select="$nopar"/><xsl:with-param name="target" select="1"/><xsl:with-param name="binder">LAMBDA</xsl:with-param></xsl:apply-templates>
+
<xsl:choose>
<xsl:when test="$nopar = 0">
<m:ci>
</m:apply>
</xsl:otherwise>
</xsl:choose>
- <xsl:apply-templates select="./*[1]" mode="abstparams"><xsl:with-param name="noparams" select="$nopar"/><xsl:with-param name="target" select="1"/><xsl:with-param name="binder">LAMBDA</xsl:with-param></xsl:apply-templates>
- </xsl:for-each>
+</piece>
+ </xsl:for-each>
+</piecewise>
</m:apply>
</xsl:template>
<FONT color="red">CASE </FONT>
<xsl:apply-templates mode="inline" select="*[position()=3]"/>
<FONT color="red"> OF </FONT>
- <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
+ <xsl:for-each select="piecewise/piece">
<xsl:choose>
<xsl:when test="not(position() = 1)">
<xsl:text> | </xsl:text>
</xsl:when>
</xsl:choose>
- <xsl:apply-templates mode="inline" select="."/>
+ <xsl:apply-templates mode="inline" select="./*[2]"/>
<xsl:call-template name="mksymbol-1">
<xsl:with-param name="symbol" select="'RightArrow'"/>
<xsl:with-param name="color" select="'green'"/>
<xsl:with-param name="size" select="'+0'"/>
</xsl:call-template>
<xsl:apply-templates mode="inline"
- select="following-sibling::*[position()= 1]"/>
+ select="./*[1]"/>
</xsl:for-each>
</xsl:when>
<!-- FIX -->
<xsl:with-param name="current_indent" select="$current_indent + 8"/>
</xsl:apply-templates>
<xsl:text> OF </xsl:text>
- <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
+ <xsl:for-each select="piecewise/piece">
<br/>
<xsl:call-template name="make_indent">
<xsl:with-param name="current_indent" select="$current_indent + 2"/>
<xsl:text>| </xsl:text>
</xsl:otherwise>
</xsl:choose>
- <xsl:apply-templates select="."/>
+ <xsl:apply-templates select="./*[2]"/>
<xsl:call-template name="mksymbol-1">
<xsl:with-param name="symbol" select="'RightArrow'"/>
<xsl:with-param name="color" select="'green'"/>
<xsl:with-param name="size" select="'+0'"/>
</xsl:call-template>
<xsl:variable name="body_size">
- <xsl:apply-templates
- select="following-sibling::*[1]/*[1]" mode="charcount"/>
+ <xsl:apply-templates select="./*[2]" mode="charcount"/>
</xsl:variable>
<xsl:choose>
<xsl:when test="$body_size > $framewidth">
</m:mrow>
</m:mtd>
</m:mtr>
- <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
- <xsl:variable name="charlength"><xsl:apply-templates select="." mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
+ <xsl:for-each select="piecewise/piece">
+ <xsl:variable name="charlength"><xsl:apply-templates select="./*[2]" mode="charcount"><xsl:with-param name="nosibling" select="1"/></xsl:apply-templates></xsl:variable>
<m:mtr>
<m:mtd>
<m:mrow>
</xsl:otherwise>
</xsl:choose>
<m:mphantom><m:mtext>_</m:mtext></m:mphantom>
- <xsl:apply-templates select="."/>
+ <xsl:apply-templates select="./*[2]"/>
<xsl:if test="$framewidth > $charlength">
<m:mo mathcolor="Green">⇒</m:mo>
- <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
+ <xsl:apply-templates select="./*[1]"/>
</xsl:if>
</m:mrow>
</m:mtd>
<m:mrow>
<m:mphantom><m:mtext>|_</m:mtext></m:mphantom>
<m:mo mathcolor="Green">⇒</m:mo>
- <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
+ <xsl:apply-templates select="./*[1]"/>
</m:mrow>
</m:mtd>
</m:mtr>
<xsl:apply-templates select="*[position()=3]"/>
<m:mphantom><m:mtext>_</m:mtext></m:mphantom>
<m:mo>OF</m:mo>
- <xsl:for-each select="*[position() mod 2 = 0 and position()>3]">
+ <xsl:for-each select="piecewise/piece">
<xsl:choose>
<xsl:when test="position() != 1">
<m:mo stretchy="false">|</m:mo>
</xsl:when>
</xsl:choose>
- <xsl:apply-templates select="."/>
+ <xsl:apply-templates select="./*[2]"/>
<m:mo mathcolor="Green">⇒</m:mo>
- <xsl:apply-templates select="following-sibling::*[position()= 1]"/>
+ <xsl:apply-templates select="./*[1]"/>
</xsl:for-each>
<m:mphantom><m:mtext>_</m:mtext></m:mphantom>
<m:mo>END</m:mo>