1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Step 1: Read-Print -->
3 <!-- input document must be in the following format -->
6 <stdin>...stdin text...</stdin>
7 <stdout> ... ignored, omitted ... </stdout>
8 <state> ignored, preserved </state>
13 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
14 <xsl:import href="reader.xslt" />
15 <xsl:import href="printer.xslt" />
16 <xsl:output method='xml' encoding='utf-8' indent='yes'/>
17 <xsl:template match="mal" name="rep">
19 <stdin></stdin> <!-- clear stdin -->
20 <xsl:copy-of select="state" /> <!-- preserve state -->
21 <stdout><xsl:call-template name="PRINT" /></stdout> <!-- copy stdin to stdout -->
25 <xsl:template name="PRINT">
26 <xsl:variable name="context">
27 <xsl:variable name="ctx">
28 <xsl:call-template name="EVAL" />
30 <xsl:for-each select="$ctx">
31 <xsl:variable name="str">
32 <xsl:call-template name="malprinter-pr_str"><xsl:with-param name="readably" select="true()"/></xsl:call-template>
34 <xsl:value-of select="$str" />
37 <xsl:for-each select="$context"><xsl:copy-of select="." /></xsl:for-each>
40 <xsl:template name="EVAL">
41 <xsl:variable name="context">
42 <xsl:call-template name="READ" />
44 <xsl:for-each select="$context"><xsl:copy-of select="." /></xsl:for-each>
47 <xsl:template name="READ">
48 <xsl:variable name="context">
50 <xsl:copy-of select="stdin/text()" />
53 <xsl:variable name="form">
54 <xsl:for-each select="$context">
55 <xsl:call-template name="malreader-read_str"></xsl:call-template>
58 <xsl:for-each select="$form">
60 <xsl:message terminate="yes">
61 <xsl:value-of select="error" />
64 <xsl:copy-of select="." />