left up right
Typical Changes of State Call
 <xsl:call-template name="three">
  <xsl:with-param name="str" 
    select="substring($str,2)"/>  Rest of string passed on
  <xsl:with-param name="max" select="$max"/>
  <xsl:with-param name="pos" select="$pos"/>
  <xsl:with-param name="sofar" select="concat($sofar,$char)"/> Add char  to sofar
 </xsl:call-template>


Pass on whole string when sign or fullstop terminates number 
  <xsl:with-param name="str" select="substring($str,1)"/> 

Call template exit when number completed 
 <xsl:call-template name="exit">