7.3 Primes

<..remove scrip indicators from primes..>
 <xsl:template match="span[
     (@class = ’begin-script’)
   and
     following-sibling::*[ not(@title = ’speech-extra’) ] [1]
     / descendant-or-self::*[ not( self::PROS ) ][1]
     /
          child::span / child::span[
             (@class = ’ch 2032’) or (@class = ’ch 2033’)
                                  or (@class = ’ch 2034’)
     ]
 ]" >
   <BREAK SIZE="small"/>
 </xsl:template>
-_-_-

<..remove scrip indicators from primes..>+
 <xsl:template match="span[
     (@class = ’end-script’)
   and
     preceding-sibling::*[ not(@title = ’speech-extra’) ] [1]
     / descendant-or-self::*[ not( self::PROS ) ][1]
     /
          child::span / child::span[
             (@class = ’ch 2032’) or (@class = ’ch 2033’)
                                  or (@class = ’ch 2034’)
     ]
 ]" >
   <BREAK SIZE="small"/>
 </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="msubsup[
     (count(
         child::mrow [ @class=’mrow-super’ ]
        / child::* [ not(@title = ’speech-extra’) ]
     ) = 1)
   and
     not(
         child::mrow [ @class=’mrow-super’ ]
        / child::* [ not(@title = ’speech-extra’) ]
        / descendant::*[ preceding-sibling::*
                         or following-sibling::*]
     )
   and
     child::mrow [ @class=’mrow-super’ ]
        / child::* [ not(@title = ’speech-extra’) ]
        / descendant-or-self::span[ @class=’char’ ]
        / child::span[
             (@class = ’ch 2032’) or (@class = ’ch 2033’)
                                  or (@class = ’ch 2034’)
          ]
 ]" >
   <msub>
     <mrow class="mrow-base">
        <xsl:apply-templates select="
              child::mrow[@class = ’mrow-base’] / *
           " />
        <BREAK SIZE="small"/>
        <xsl:apply-templates select="
              child::mrow[@class = ’mrow-super’]
              / child::* [ not(@title = ’speech-extra’) ]
           " />
     </mrow>
     <mrow class="mrow-sub">
        <xsl:apply-templates
              select="*[@class = ’mrow-sub’] /* " />
        <xsl:apply-templates select="
              child::mrow[@class = ’mrow-super’]
              / child::* [ @class = ’end-script’ ]
           " />
     </mrow>
   </msub>
 </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>