Mercurial > hg > ooxml
comparison tokenise.xsl @ 53:8000dbed09df
better, now failing on [1]\!'AES,DIVIDEND'
author | Henry S. Thompson <ht@markup.co.uk> |
---|---|
date | Tue, 16 May 2017 19:09:03 +0100 |
parents | 9bb415e0adc9 |
children | 191c95187e87 |
comparison
equal
deleted
inserted
replaced
52:9bb415e0adc9 | 53:8000dbed09df |
---|---|
47 <xsl:param name="i" required="yes" as="xs:integer"/> | 47 <xsl:param name="i" required="yes" as="xs:integer"/> |
48 <xsl:param name="row" required="yes" as="xs:integer"/> | 48 <xsl:param name="row" required="yes" as="xs:integer"/> |
49 <xsl:param name="col" required="yes" as="xs:integer"/> | 49 <xsl:param name="col" required="yes" as="xs:integer"/> |
50 <xsl:param name="soFar" as="element(*)*"/> | 50 <xsl:param name="soFar" as="element(*)*"/> |
51 <xsl:variable name="last" select="$soFar[count($soFar)]"></xsl:variable> | 51 <xsl:variable name="last" select="$soFar[count($soFar)]"></xsl:variable> |
52 <xsl:if test="$row=5 and $col=1"><xsl:message>tok1: <xsl:value-of select="$n"/>|<xsl:value-of select="$i"/>|<xsl:value-of select="if ($i=1) then string-join($tokens,'\') else $tokens[$i]"/>|<xsl:value-of select="if ($last instance of element()) then name($last) else 'bogus'"/>|<xsl:value-of select="string($last)"/></xsl:message></xsl:if> | 52 <xsl:if test="false()"><xsl:message>tok1@<xsl:value-of select="$row"/>,<xsl:value-of select="$col"/>: <xsl:value-of select="$n"/>|<xsl:value-of select="$i"/>|<xsl:value-of select="if ($i=1) then string-join($tokens,'\') else string-join(($tokens[$i],':',$tokens[$i]/@nr,',',$tokens[$i+1],':',$tokens[$i+1]/@nr,',',$tokens[$i+2],':',$tokens[$i+2]/@nr),'')"/>|<xsl:value-of select="if ($last instance of element()) then name($last) else 'bogus'"/>|<xsl:value-of select="string($last)"/></xsl:message></xsl:if> |
53 <!-- Tail-recursion incrementing index $i into $tokens --> | 53 <!-- Tail-recursion incrementing index $i into $tokens --> |
54 <xsl:sequence select=" | 54 <xsl:sequence select=" |
55 if ($i gt $n) | 55 if ($i gt $n) |
56 then $soFar | 56 then $soFar |
57 else | 57 else |
117 <xsl:function name="e:oddx"> | 117 <xsl:function name="e:oddx"> |
118 <xsl:param name="tokens" as="element(xf:group)*"/> | 118 <xsl:param name="tokens" as="element(xf:group)*"/> |
119 <xsl:param name="i" as="xs:integer"/> | 119 <xsl:param name="i" as="xs:integer"/> |
120 <xsl:param name="soFar" as="xs:string"/><!-- Will always be a lonely ' --> | 120 <xsl:param name="soFar" as="xs:string"/><!-- Will always be a lonely ' --> |
121 <!-- Amalgamate bits of type 9 and 10 as <v> for wrapping in <e> --> | 121 <!-- Amalgamate bits of type 9 and 10 as <v> for wrapping in <e> --> |
122 <xsl:variable name="content" select="e:amalgamate($tokens,$i,$soFar,10,$soFar)"/> | 122 <xsl:variable name="content" select="e:amalgamate($tokens,$i,$soFar,(10,9),$soFar)"/> |
123 <xsl:variable name="x"><v><xsl:value-of select=" | 123 <xsl:variable name="x"><v><xsl:value-of select=" |
124 if ($tokens[$content?1]=$soFar) | 124 if ($tokens[$content?1]=$soFar) |
125 then $content?2 | 125 then concat($content?2,$soFar) |
126 else e:shouldnt('oddx',$tokens[$content?1])"/></v></xsl:variable> | 126 else e:shouldnt('oddx',$tokens[$content?1])"/></v></xsl:variable> |
127 <xsl:sequence select="[$content?1+1,$x/*]"/> | 127 <xsl:sequence select="[$content?1+1,$x/*]"/> |
128 </xsl:function> | 128 </xsl:function> |
129 | 129 |
130 <xsl:function name="e:amalgamate" as="array(*)"> | 130 <xsl:function name="e:amalgamate" as="array(*)"> |