<?xml version="1.0"?>

<document>

  <include> MpIeee.hh     </include>
  
  <include global="false"> 
    ArithmosIO.hh 
  </include>


  <source name="partial">
    <keyword>long</keyword>
    <keyword>volatile</keyword>
    <keyword>volatile long</keyword>
    <keyword>const</keyword>
  </source>

  <source name="constfloat">
      <keyword>const float </keyword>
      <keyword>const double </keyword>
  </source>  
  
  <source name="sfloat">
    <keyword>float </keyword>
    <keyword>double </keyword>
    <keyword>long double </keyword>
    <keyword>volatile double </keyword>
    <keyword>volatile float </keyword>
    <keyword>volatile long double </keyword>
    <keyword>BASE</keyword>
  </source>

  <rhs name="afloat">
    <token> integer </token>
    <token> decimal </token>
  </rhs>

  <!--
    In the original proposal I used source tags for both int and BigInt, but
    this can give problems for source files which both use integers and BigInt's since
    we can't make a distinction between what has to be converted and what is allready done.
    If we still want to convert MpIeee into let's say mpIeee's we could add the mpIeee type to the
    source tags etc... 
  -->
  <target name="tfloat">
    <keyword> MpIeee </keyword>
  </target>
  <target name="tconstfloat">
    <keyword> const MpIeee </keyword>
  </target>




  <!-- the conversion rules -->
  <convert name="float to mpieee">
    <source name="sfloat"/>
    <target name="tfloat"/>
  </convert>

  <convert name="const float to mpieee">
    <source name="constfloat"/>
    <target name="tconstfloat"/>
  </convert>

  <convert name="decimal to mpieee">
    <rhs name="afloat"/>
    <target name="tfloat"/>
    <operation> toStringConstructor </operation>
  </convert>
  
</document>

