4.8 Primes

<..remove scrip indicators from primes..>
 <xsl:template match="span[
     (@class = ’begin-script’)
   and
     following-sibling::*[
          child::span / child::span[
             (@class = ’ch 2032’) or (@class = ’ch 2033’)
                                  or (@class = ’ch 2034’)
     ]    ]
 ]" >
 </xsl:template>
-_-_-

<..remove scrip indicators from primes..>+
 <xsl:template match="span[
     (@class = ’end-script’)
   and
     preceding-sibling::*[
          child::span / child::span[
             (@class = ’ch 2032’) or (@class = ’ch 2033’)
                                  or (@class = ’ch 2034’)
     ]    ]
 ]" >
 </xsl:template>
-_-_-
<span class="msup">  
  <span class="mrow-base">  
    <span class="mi">x</span>  
  </span>  
  <span class="mrow-super">  
    <span class="begin-script"> superscript </span>  
    <span class="mo-op">  
      <span class="char">  
        <span class="ch 2033">double prime</span>  
      </span>  
    </span>  
    <span class="end-script"> baseline </span>  
  </span>  
</span>

<..subsup prime..>
 <set name="subsup-prime" >
    <.open xslt script.>
    <.compress subsup prime.>
    <.close xslt script.>
 </set>
 <xslt name="." xml="." xsl="subsup-prime" />
-_-_-

<..compress subsup prime..>
 <xsl:template match="span[
     (@class = ’msubsup’)
   and
     (count(
         child::* [ @class=’mrow-super’ ]
        / child::span [ not(@title = ’speech-extra’) ] ) = 1)
   and
     (count(
        child::* [ @class=’mrow-super’ ]
           / child::span [ not(@title = ’speech-extra’) ]
           / child::span) = 1)
   and
     child::* [ @class=’mrow-super’ ]
        / child::span [ not(@title = ’speech-extra’) ]
        / child::span[ @class=’char’ ]
        / child::span[
             (@class = ’ch 2032’) or (@class = ’ch 2033’)
                                  or (@class = ’ch 2034’)
          ]
 ]" >
   <xsl:copy>
     <xsl:attribute name="class" >
        <xsl:text>msub</xsl:text>
     </xsl:attribute>
     <span class="mrow-base">
        <xsl:apply-templates select="
              *[@class = ’mrow-base’] / *
           " />
        <xsl:apply-templates select="
              *[@class = ’mrow-super’]
              / child::span [ not(@title = ’speech-extra’) ]
           " />
     </span>
     <xsl:apply-templates select="*[@class = ’mrow-sub’]" />
   </xsl:copy>
 </xsl:template>
-_-_-
<span class="msubsup">  
  <span class="mrow-base">  
    <span class="mi">x</span>  
  </span>  
  <span class="mrow-sub">  
    ......  
  </span>  
  <span class="mrow-super">  
    <span class="mid-script" title="speech-extra"> superscript </span>  
    <span class="mi">  
      <span class="char" title="ch-verbose">  
        <span class="ch 2032" title="ch-verbose">prime</span>  
      </span>  
    </span>  
  </span>  
</span>