Author: jbeard Date: Sun Jun 27 03:47:55 2010 New Revision: 958322 URL: http://svn.apache.org/viewvc?rev=958322&view=rev Log: Intermediate commit. Not sure if this code works yet.
Added: commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-142/src/xslt/ir-compiler/constructEventComponentTreeFirstPass.xsl (with props) Added: commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-142/src/xslt/ir-compiler/constructEventComponentTreeFirstPass.xsl URL: http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-142/src/xslt/ir-compiler/constructEventComponentTreeFirstPass.xsl?rev=958322&view=auto ============================================================================== --- commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-142/src/xslt/ir-compiler/constructEventComponentTreeFirstPass.xsl (added) +++ commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-142/src/xslt/ir-compiler/constructEventComponentTreeFirstPass.xsl Sun Jun 27 03:47:55 2010 @@ -0,0 +1,80 @@ +<?xml version="1.0"?> +<!-- + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. +--> +<!-- +This stylesheet adds attributes isBasic="true" to basic states, and +isHistory="true" to history states. +--> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:s="http://www.w3.org/2005/07/scxml" + xmlns="http://www.w3.org/2005/07/scxml" + xmlns:c="http://commons.apache.org/scxml-js" + version="1.0"> + <xsl:output method="xml"/> + + <!-- identity transform --> + <xsl:template match="@*|node()"> + <xsl:copy> + <xsl:apply-templates select="@*|node()"/> + </xsl:copy> + </xsl:template> + + <!-- recursive template --> + <xsl:template name="genEventComponents"> + <xsl:param name="originalEventString" /> + <xsl:param name="remainingEventString" /> + <xsl:variable name="first" select="substring-before($remainingEventString, '.')" /> + + <xsl:choose> + <!-- base case --> + <xsl:when test="not($first)"> + <c:eventComponent name="{remainingEventString}" terminalId="{originalEventString}"/> + </xsl:when> + <!-- recursive step --> + <xsl:otherwise> + + <xsl:variable name="remaining" select="substring-after($remainingEventString, '.')" /> + + <c:eventComponent name="{first}"> + <xsl:call-template name="genEventComponents"> + <xsl:with-param name="remainingEventString" select="$remainingEventString"/> + <xsl:with-param name="originalEventString" select="$originalEventString"/> + </xsl:call-template> + </c:eventComponent> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template match="/s:scxml"> + <xsl:copy> + <xsl:apply-templates select="@*"/> + + <c:eventComponents> + <xsl:for-each select=".//@event"> + <xsl:call-template name="genEventComponents"> + <xsl:with-param name="remainingEventString" select="."/> + <xsl:with-param name="originalEventString" select="."/> + </xsl:call-template> + </xsl:for-each> + </c:eventComponents> + + <xsl:apply-templates select="node()"/> + </xsl:copy> + </xsl:template> + +</xsl:stylesheet> + Propchange: commons/sandbox/gsoc/2010/scxml-js/branches/SCXML-142/src/xslt/ir-compiler/constructEventComponentTreeFirstPass.xsl ------------------------------------------------------------------------------ svn:eol-style = native