Alessandro Bonazzi 8c43d5cf2f Patch level : 12.00
Files correlati     : cg0.exe cg0700a.msk cg0700b.msk cg3.exe cg4.exe

Bug                 :

Commento:
Merge 1.0 libraries
2025-04-06 00:42:21 +02:00

134 lines
4.8 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0" xmlns:exslt="http://exslt.org/common">
<xsl:output method="xml"/>
<xsl:template match="document">
<xsl:element name="document">
<xsl:copy-of select="/document/metaproperties"/>
<xsl:apply-templates select="/document/operator-stack/operator[@instruction=1]">
<xsl:with-param name="selection-criteria">
<xsl:copy-of select="/document/paradigm"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:element>
</xsl:template>
<xsl:template match="operand[@type='domain']">
<xsl:param name="selection-criteria"/>
<xsl:variable name="butterfly"><xsl:value-of select="."/></xsl:variable>
<xsl:for-each select="/document/attributes/name[@name=$butterfly]/value">
<xsl:variable name="koala"><xsl:value-of select="@value"/></xsl:variable>
<xsl:variable name="pidgeon">
<xsl:element name="paradigm">
<xsl:copy-of select="exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$butterfly and @value=$koala]]"/>
</xsl:element>
</xsl:variable>
<xsl:if test="count(exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$butterfly and @value=$koala]]) &gt; 0">
<xsl:element name="node">
<xsl:attribute name="heading"><xsl:value-of select="@value"/></xsl:attribute>
</xsl:element>
<xsl:element name="forms">
<xsl:copy-of select="exslt:node-set($pidgeon)/paradigm/form"/>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:template>
<xsl:template match="operand[@type='branch']">
<xsl:param name="selection-criteria"/>
<xsl:variable name="catapilla"><xsl:value-of select="."/></xsl:variable>
<xsl:apply-templates select="/document/operator-stack/operator[@instruction=$catapilla]">
<xsl:with-param name="selection-criteria">
<xsl:copy-of select="$selection-criteria"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:template>
<xsl:template match="operator[@opcode='tabular']">
<xsl:param name="selection-criteria"/>
<xsl:variable name="horizontal">
<xsl:apply-templates select="operand[@arg='1']">
<xsl:with-param name="selection-criteria">
<xsl:copy-of select="$selection-criteria"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:variable>
<xsl:variable name="vertical">
<xsl:apply-templates select="operand[@arg='2']">
<xsl:with-param name="selection-criteria">
<xsl:copy-of select="$selection-criteria"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:variable>
<xsl:element name="horizontal">
<xsl:copy-of select="$horizontal"/>
</xsl:element>
<xsl:element name="vertical">
<xsl:copy-of select="$vertical"/>
</xsl:element>
<xsl:element name="cells">
<xsl:for-each select="exslt:node-set($horizontal)//forms">
<xsl:variable name="horizontal-forms">
<xsl:copy-of select="form"/>
</xsl:variable>
<xsl:for-each select="exslt:node-set($vertical)//forms">
<xsl:variable name="vertical-forms">
<xsl:copy-of select="form"/>
</xsl:variable>
<xsl:variable name="pidgeon">
<xsl:element name="paradigm">
<xsl:copy-of select="exslt:node-set($horizontal-forms)[./form = exslt:node-set($vertical-forms)/form]"/>
</xsl:element>
</xsl:variable>
a
<!--
<xsl:copy-of select="pidgeon"/>
-->
</xsl:for-each>
</xsl:for-each>
</xsl:element>
</xsl:template>
<xsl:template match="operator[@opcode='hierarchical']">
<xsl:param name="selection-criteria"/>
<xsl:variable name="horse"><xsl:value-of select="@instruction"/></xsl:variable>
<xsl:element name="node">
<xsl:attribute name="heading"><xsl:value-of select="operand[@arg='1']"/></xsl:attribute>
<xsl:variable name="grub"><xsl:value-of select="operand[@arg='1']"/></xsl:variable>
<xsl:for-each select="/document/attributes/name[@name=$grub]/value">
<xsl:variable name="koala"><xsl:value-of select="@value"/></xsl:variable>
<xsl:variable name="pidgeon">
<xsl:element name="paradigm">
<xsl:copy-of select="exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$grub and @value=$koala]]"/>
</xsl:element>
</xsl:variable>
<xsl:if test="count(exslt:node-set($selection-criteria)/paradigm/form[./attribute[@name=$grub and @value=$koala]]) &gt; 0">
<xsl:element name="node">
<xsl:attribute name="heading"><xsl:value-of select="@value"/></xsl:attribute>
<xsl:apply-templates select="/document/operator-stack/operator[@instruction=$horse]/operand[@arg='2']">
<xsl:with-param name="selection-criteria">
<xsl:copy-of select="$pidgeon"/>
</xsl:with-param>
</xsl:apply-templates>
</xsl:element>
</xsl:if>
</xsl:for-each>
</xsl:element>
</xsl:template>
</xsl:stylesheet>