… | |
… | |
352 | |
352 | |
353 | <xsl:template match="member[@array = 'yes']" mode="dec"> |
353 | <xsl:template match="member[@array = 'yes']" mode="dec"> |
354 | $r->{<xsl:value-of select="@name"/>} = (my $array = []); |
354 | $r->{<xsl:value-of select="@name"/>} = (my $array = []); |
355 | while (length $data) { |
355 | while (length $data) { |
356 | push @$array, dec_<xsl:value-of select="@type"/> |
356 | push @$array, dec_<xsl:value-of select="@type"/> |
357 | <xsl:text> </xsl:text> |
357 | <xsl:text> </xsl:text>; |
358 | <xsl:value-of select="@value"/>; |
|
|
359 | } |
358 | } |
360 | </xsl:template> |
359 | </xsl:template> |
361 | |
360 | |
362 | <xsl:template match="member" mode="dec"> |
361 | <xsl:template match="member" mode="dec"> |
363 | $r->{<xsl:value-of select="@name"/>} = dec_<xsl:value-of select="@type"/> |
362 | $r->{<xsl:value-of select="@name"/>} = dec_<xsl:value-of select="@type"/> |
364 | <xsl:text> </xsl:text> |
363 | <xsl:text> </xsl:text> |
365 | <xsl:value-of select="@value"/> |
364 | <xsl:value-of select="concat('q|',@value,'|')"/> |
366 | <xsl:if test="@guard-cond"> |
365 | <xsl:if test="@guard-cond"> |
367 | if ($r->{<xsl:value-of select="@guard-member"/>} <xsl:value-of select="@guard-cond"/>)</xsl:if> |
366 | if ($r->{<xsl:value-of select="@guard-member"/>} <xsl:value-of select="@guard-cond"/>)</xsl:if> |
368 | <xsl:text>;</xsl:text> |
367 | <xsl:text>;</xsl:text> |
369 | </xsl:template> |
368 | </xsl:template> |
370 | |
369 | |
371 | <xsl:template match="member" mode="enc"> |
370 | <xsl:template match="member" mode="enc"> |
372 | enc_<xsl:value-of select="@type"/> defined $_[0]{<xsl:value-of select="@name"/>} ? $_[0]{<xsl:value-of select="@name"/> |
371 | enc_<xsl:value-of select="@type"/> defined $_[0]{<xsl:value-of select="@name"/>} ? $_[0]{<xsl:value-of select="@name"/> |
373 | <xsl:text>} : (</xsl:text> |
372 | <xsl:text>} : (</xsl:text> |
374 | <xsl:value-of select="@value"/> |
373 | <xsl:value-of select="concat('q|',@value,'|')"/> |
375 | <xsl:text>);</xsl:text> |
374 | <xsl:text>);</xsl:text> |
376 | </xsl:template> |
375 | </xsl:template> |
377 | |
376 | |
378 | <xsl:template match="struct"> |
377 | <xsl:template match="struct"> |
379 | sub dec_<xsl:value-of select="@name"/> { |
378 | sub dec_<xsl:value-of select="@name"/> { |