<?xml version='1.0' encoding='ISO-8859-1' standalone='no'?>
<!DOCTYPE interface-description SYSTEM 'file:///usr/pkgsrc/lang/oo2c/work.macaroon/oo2c_32-2.0.11/rsrc/OOC/xml/interface-description.dtd'>
<interface-description name='LRealStr' id=''>
  <import-decl name='ConvTypes' id='ConvTypes' export='no' module='ConvTypes'/>
  <type-decl name='ConvResults' id='ConvResults' export='yes'>
    <oberon-doc>
      <summary>One of <oberon-const href='#strAllRight'>strAllRight</oberon-const>, <oberon-const href='#strOutOfRange'>strOutOfRange</oberon-const>, <oberon-const href='#strWrongFormat'>strWrongFormat</oberon-const>, or <oberon-const href='#strEmpty'>strEmpty</oberon-const>.</summary>
      <p pad-after='yes' no-indent='yes'>One of <oberon-const href='#strAllRight'>strAllRight</oberon-const>, <oberon-const href='#strOutOfRange'>strOutOfRange</oberon-const>, <oberon-const href='#strWrongFormat'>strWrongFormat</oberon-const>, or <oberon-const href='#strEmpty'>strEmpty</oberon-const>.</p>
    </oberon-doc>
    <type>
      <type-name module='ConvTypes' name='ConvResults' href='ConvTypes#ConvResults'/>
    </type>
  </type-decl>
  <const-decl name='strAllRight' id='strAllRight' export='yes' value='unknown'>
    <oberon-doc>
      <summary>The string format is correct for the corresponding conversion.</summary>
      <p pad-after='yes' no-indent='yes'>The string format is correct for the corresponding conversion.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='strOutOfRange' id='strOutOfRange' export='yes' value='unknown'>
    <oberon-doc>
      <summary>The string is well-formed but the value cannot be represented.</summary>
      <p pad-after='yes' no-indent='yes'>The string is well-formed but the value cannot be represented.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='strWrongFormat' id='strWrongFormat' export='yes' value='unknown'>
    <oberon-doc>
      <summary>The string is in the wrong format for the conversion.</summary>
      <p pad-after='yes' no-indent='yes'>The string is in the wrong format for the conversion.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='strEmpty' id='strEmpty' export='yes' value='unknown'>
    <oberon-doc>
      <summary>The given string is empty.</summary>
      <p pad-after='yes' no-indent='yes'>The given string is empty.</p>
    </oberon-doc>
  </const-decl>
  <procedure name='StrToReal' id='StrToReal' export='yes'>
    <formal-parameters>
      <parameter-decl name='str' id='StrToReal.str' export='no' variable-parameter='no'>
        <type>
          <array>
            <element-type>
              <type-name module='#predef' name='CHAR'/>
            </element-type>
          </array>
        </type>
      </parameter-decl>
      <parameter-decl name='real' id='StrToReal.real' export='no' variable-parameter='yes'>
        <type>
          <type-name module='#predef' name='LONGREAL'/>
        </type>
      </parameter-decl>
      <parameter-decl name='res' id='StrToReal.res' export='no' variable-parameter='yes'>
        <type>
          <type-name module='#predef' name='ConvResults'/>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='RealToFloat' id='RealToFloat' export='yes'>
    <oberon-doc>
      <summary>Assign to <oberon-param href='#RealToFloat.str'>str</oberon-param> the possibly truncated string corresponding to the value of <oberon-param href='#RealToFloat.real'>real</oberon-param> in floating-point form.</summary>
      <p pad-after='yes' no-indent='yes'>Assign to <oberon-param href='#RealToFloat.str'>str</oberon-param> the possibly truncated string corresponding to the value of <oberon-param href='#RealToFloat.real'>real</oberon-param> in floating-point form.  A sign is included only for negative values.  One significant digit is included in the whole number part.  The signed exponent part is included only if the exponent value is not 0.  If the value of <oberon-param href='#RealToFloat.sigFigs'>sigFigs</oberon-param> is greater than 0, that number of significant digits is included, otherwise an implementation-defined number of significant digits.  The decimal point shall is not included if there are no significant digits in the fractional part.</p>
      <p pad-after='yes' no-indent='no'>For example:</p>
      <example pad-after='yes'>value:   3923009     39.23009     0.0003923009
sigFigs
1        4E+6        4E+1         4E-4 
2        3.9E+6      3.9E+1       3.9E-4
5        3.9230E+6   3.9230E+1    3.9230E-4
</example>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='real' id='RealToFloat.real' export='no' variable-parameter='no'>
        <type>
          <type-name module='#predef' name='LONGREAL'/>
        </type>
      </parameter-decl>
      <parameter-decl name='sigFigs' id='RealToFloat.sigFigs' export='no' variable-parameter='no'>
        <type>
          <type-name module='#predef' name='INTEGER'/>
        </type>
      </parameter-decl>
      <parameter-decl name='str' id='RealToFloat.str' export='no' variable-parameter='yes'>
        <type>
          <array>
            <element-type>
              <type-name module='#predef' name='CHAR'/>
            </element-type>
          </array>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='RealToEng' id='RealToEng' export='yes'>
    <oberon-doc>
      <summary>Converts the value of <oberon-param href='#RealToEng.real'>real</oberon-param> to floating-point string form, with <oberon-param href='#RealToEng.sigFigs'>sigFigs</oberon-param> significant figures, and copies the possibly truncated result to <oberon-param href='#RealToEng.str'>str</oberon-param>.</summary>
      <p pad-after='yes' no-indent='yes'>Converts the value of <oberon-param href='#RealToEng.real'>real</oberon-param> to floating-point string form, with <oberon-param href='#RealToEng.sigFigs'>sigFigs</oberon-param> significant figures, and copies the possibly truncated result to <oberon-param href='#RealToEng.str'>str</oberon-param>.  The number is scaled with one to three digits in the whole number part and with an exponent that is a multiple of three.  For example:</p>
      <example pad-after='yes'>value:   3923009     39.23009   0.0003923009
sigFigs
1        4E+6        40         400E-6 
2        3.9E+6      39         390E-6
5        3.9230E+6   39.230     392.30E-6     
</example>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='real' id='RealToEng.real' export='no' variable-parameter='no'>
        <type>
          <type-name module='#predef' name='LONGREAL'/>
        </type>
      </parameter-decl>
      <parameter-decl name='sigFigs' id='RealToEng.sigFigs' export='no' variable-parameter='no'>
        <type>
          <type-name module='#predef' name='INTEGER'/>
        </type>
      </parameter-decl>
      <parameter-decl name='str' id='RealToEng.str' export='no' variable-parameter='yes'>
        <type>
          <array>
            <element-type>
              <type-name module='#predef' name='CHAR'/>
            </element-type>
          </array>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='RealToFixed' id='RealToFixed' export='yes'>
    <oberon-doc>
      <summary>The call <samp>RealToFixed(real,place,str)</samp> assigns to <oberon-param href='#RealToFixed.str'>str</oberon-param> the possibly truncated string corresponding to the value of <oberon-param href='#RealToFixed.real'>real</oberon-param> in fixed-point form.</summary>
      <p pad-after='yes' no-indent='yes'>The call <samp>RealToFixed(real,place,str)</samp> assigns to <oberon-param href='#RealToFixed.str'>str</oberon-param> the possibly truncated string corresponding to the value of <oberon-param href='#RealToFixed.real'>real</oberon-param> in fixed-point form.  A sign is included only for negative values.  At least one digit is included in the whole number part.  The value is rounded to the given value of <oberon-param href='#RealToFixed.place'>place</oberon-param> relative to the decimal point.  The decimal point is suppressed if <oberon-param href='#RealToFixed.place'>place</oberon-param> is less than <samp>0</samp>.  For example:</p>
      <example pad-after='yes'>value:    3923009         3.923009   0.0003923009
sigFigs
-5        3920000         0          0 
-2        3923010         0          0
-1        3923009         4          0 
0         3923009.        4.         0. 
1         3923009.0       3.9        0.0
4         3923009.0000    3.9230     0.0004       
</example>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='real' id='RealToFixed.real' export='no' variable-parameter='no'>
        <type>
          <type-name module='#predef' name='LONGREAL'/>
        </type>
      </parameter-decl>
      <parameter-decl name='place' id='RealToFixed.place' export='no' variable-parameter='no'>
        <type>
          <type-name module='#predef' name='INTEGER'/>
        </type>
      </parameter-decl>
      <parameter-decl name='str' id='RealToFixed.str' export='no' variable-parameter='yes'>
        <type>
          <array>
            <element-type>
              <type-name module='#predef' name='CHAR'/>
            </element-type>
          </array>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <procedure name='RealToStr' id='RealToStr' export='yes'>
    <oberon-doc>
      <summary>If the sign and magnitude of <oberon-param href='#RealToStr.real'>real</oberon-param> can be shown within the capacity of <oberon-param href='#RealToStr.str'>str</oberon-param>, the call <samp>RealToStr(real,str)</samp> behaves as the call <samp>RealToFixed(real,place,str)</samp>, with a value of <samp>place</samp> chosen to fill exactly the remainder of <oberon-param href='#RealToStr.str'>str</oberon-param>.</summary>
      <p pad-after='yes' no-indent='yes'>If the sign and magnitude of <oberon-param href='#RealToStr.real'>real</oberon-param> can be shown within the capacity of <oberon-param href='#RealToStr.str'>str</oberon-param>, the call <samp>RealToStr(real,str)</samp> behaves as the call <samp>RealToFixed(real,place,str)</samp>, with a value of <samp>place</samp> chosen to fill exactly the remainder of <oberon-param href='#RealToStr.str'>str</oberon-param>.  Otherwise, the call behaves as the call <samp>RealToFloat(real,sigFigs,str)</samp>, with a value of <samp>sigFigs</samp> of at least one, but otherwise limited to the number of significant digits that can be included together with the sign and exponent part in <oberon-param href='#RealToStr.str'>str</oberon-param>.</p>
    </oberon-doc>
    <formal-parameters>
      <parameter-decl name='real' id='RealToStr.real' export='no' variable-parameter='no'>
        <type>
          <type-name module='#predef' name='LONGREAL'/>
        </type>
      </parameter-decl>
      <parameter-decl name='str' id='RealToStr.str' export='no' variable-parameter='yes'>
        <type>
          <array>
            <element-type>
              <type-name module='#predef' name='CHAR'/>
            </element-type>
          </array>
        </type>
      </parameter-decl>
    </formal-parameters>
  </procedure>
  <import-decl name='-RT0' id='-RT0' export='no' module='RT0'/>
  <import-decl name='-Object' id='-Object' export='no' module='Object'/>
  <import-decl name='-Exception' id='-Exception' export='no' module='Exception'/>
  <module-ref name='ConvTypes'>
    <ref-target type='html' relative-uri='ConvTypes.html'/>
  </module-ref>
</interface-description>
