<?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='IO:TextRider' id=''>
  <oberon-doc>
    <summary>This is a port of the writer part of <oberon-module href='TextRider#'>TextRider</oberon-module> to <oberon-module href='IO#'>IO</oberon-module>.</summary>
    <p pad-after='yes' no-indent='yes'>This is a port of the writer part of <oberon-module href='TextRider#'>TextRider</oberon-module> to <oberon-module href='IO#'>IO</oberon-module>.  Reader and scanner were dropped.  Don't use the riders with non-blocking channels.</p>
  </oberon-doc>
  <import-decl name='CharClass' id='CharClass' export='no' module='CharClass'/>
  <import-decl name='LRealStr' id='LRealStr' export='no' module='LRealStr'/>
  <import-decl name='Object' id='Object' export='no' module='Object'/>
  <import-decl name='IO' id='IO' export='no' module='IO'/>
  <const-decl name='maxLengthEol' id='maxLengthEol' export='yes' value='unknown'>
    <oberon-doc>
      <summary>Maximum length of an end of line character sequence.</summary>
      <p pad-after='yes' no-indent='yes'>Maximum length of an end of line character sequence.  This value is system dependent, and always larger or equal to 2.</p>
    </oberon-doc>
  </const-decl>
  <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'/>
  <class name='Writer'>
    <type-decl name='Writer' id='Writer' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='WriterDesc' href='#WriterDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='WriterDesc' id='WriterDesc' export='yes'>
      <type>
        <record>
          <field-decl name='channel' id='WriterDesc.channel' export='read-only'>
            <oberon-doc>
              <summary>The channel on which this writer is operating.</summary>
              <p pad-after='yes' no-indent='yes'>The channel on which this writer is operating.</p>
            </oberon-doc>
            <type>
              <type-name module='IO' name='ByteChannel' href='IO#ByteChannel'/>
            </type>
          </field-decl>
          <field-decl name='error' id='WriterDesc.error' export='read-only'>
            <oberon-doc>
              <summary>If any of the write methods encounters an error, then the corresponding exception is stored here.</summary>
              <p pad-after='yes' no-indent='yes'>If any of the write methods encounters an error, then the corresponding exception is stored here.  This field is sticky.  That is, is stays <code>NIL</code> until the first error, and it keeps the first error's exception.</p>
            </oberon-doc>
            <type>
              <type-name module='IO' name='Error' href='IO#Error'/>
            </type>
          </field-decl>
        </record>
      </type>
    </type-decl>
    <procedure name='InitWriter' id='InitWriter' export='yes'>
      <formal-parameters>
        <parameter-decl name='w' id='InitWriter.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </parameter-decl>
        <parameter-decl name='ch' id='InitWriter.ch' export='no' variable-parameter='no'>
          <type>
            <type-name module='IO' name='ByteChannel' href='IO#ByteChannel'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='ConnectWriter' id='ConnectWriter' export='yes'>
      <oberon-doc>
        <pre-cond pad-after='yes'>
          <p pad-after='no' no-indent='yes'><oberon-param href='#ConnectWriter.ch'>ch</oberon-param> is in blocking mode.</p>
        </pre-cond>
      </oberon-doc>
      <formal-parameters>
        <parameter-decl name='ch' id='ConnectWriter.ch' export='no' variable-parameter='no'>
          <type>
            <type-name module='IO' name='ByteChannel' href='IO#ByteChannel'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='Writer' href='#Writer'/>
        </result-type>
      </formal-parameters>
    </procedure>
    <procedure name='SetEol' id='WriterDesc.SetEol' export='yes'>
      <oberon-doc>
        <summary>Sets new end of line marker.</summary>
        <p pad-after='yes' no-indent='yes'>Sets new end of line marker.  If the passed string marker does not fit into the writer's field <samp>w.eol</samp>, then nothing is done.  The empty marker is permitted.  The default value for newly created writer is <oberon-var href='CharClass#systemEol'>CharClass.systemEol</oberon-var>.</p>
        <pre-cond pad-after='yes'>
          <p pad-after='no' no-indent='yes'>(0 &lt;= markerLen &lt; LEN (marker)) &amp; (markerLen &lt;= maxLengthEol)</p>
        </pre-cond>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.SetEol.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='marker' id='WriterDesc.SetEol.marker' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='markerLen' id='WriterDesc.SetEol.markerLen' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='INTEGER'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteString' id='WriterDesc.WriteString' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteString.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='s' id='WriterDesc.WriteString.s' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteStringRegion' id='WriterDesc.WriteStringRegion' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteStringRegion.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='s' id='WriterDesc.WriteStringRegion.s' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='start' id='WriterDesc.WriteStringRegion.start' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='end' id='WriterDesc.WriteStringRegion.end' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteObject' id='WriterDesc.WriteObject' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteObject.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='obj' id='WriterDesc.WriteObject.obj' export='no' variable-parameter='no'>
          <type>
            <type-name module='Object' name='Object' href='Object#Object'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteBool' id='WriterDesc.WriteBool' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteBool.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='bool' id='WriterDesc.WriteBool.bool' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='BOOLEAN'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteChar' id='WriterDesc.WriteChar' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteChar.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='ch' id='WriterDesc.WriteChar.ch' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='CHAR'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteLInt' id='WriterDesc.WriteLInt' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteLInt.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='lint' id='WriterDesc.WriteLInt.lint' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteLInt.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteSInt' id='WriterDesc.WriteSInt' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteSInt.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='sint' id='WriterDesc.WriteSInt.sint' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='SHORTINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteSInt.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteInt' id='WriterDesc.WriteInt' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteInt.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='int' id='WriterDesc.WriteInt.int' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='INTEGER'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteInt.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteHex' id='WriterDesc.WriteHex' export='yes'>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteHex.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='lint' id='WriterDesc.WriteHex.lint' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='d' id='WriterDesc.WriteHex.d' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteLReal' id='WriterDesc.WriteLReal' export='yes'>
      <oberon-doc>
        <summary>Writes the value <oberon-param href='#WriterDesc.WriteLReal.lreal'>lreal</oberon-param> in the format produced by <oberon-proc href='LRealStr#RealToFloat'>LRealStr.RealToFloat</oberon-proc>.</summary>
        <p pad-after='yes' no-indent='yes'>Writes the value <oberon-param href='#WriterDesc.WriteLReal.lreal'>lreal</oberon-param> in the format produced by <oberon-proc href='LRealStr#RealToFloat'>LRealStr.RealToFloat</oberon-proc>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteLReal.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='lreal' id='WriterDesc.WriteLReal.lreal' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGREAL'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteLReal.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='k' id='WriterDesc.WriteLReal.k' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteReal' id='WriterDesc.WriteReal' export='yes'>
      <oberon-doc>
        <summary>As <oberon-proc href='#WriterDesc.WriteLReal'>Writer.WriteLReal</oberon-proc>.</summary>
        <p pad-after='yes' no-indent='yes'>As <oberon-proc href='#WriterDesc.WriteLReal'>Writer.WriteLReal</oberon-proc>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteReal.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='real' id='WriterDesc.WriteReal.real' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='REAL'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteReal.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='k' id='WriterDesc.WriteReal.k' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteLRealFix' id='WriterDesc.WriteLRealFix' export='yes'>
      <oberon-doc>
        <summary>Writes the value <oberon-param href='#WriterDesc.WriteLRealFix.lreal'>lreal</oberon-param> in the format produced by <oberon-proc href='LRealStr#RealToFixed'>LRealStr.RealToFixed</oberon-proc>.</summary>
        <p pad-after='yes' no-indent='yes'>Writes the value <oberon-param href='#WriterDesc.WriteLRealFix.lreal'>lreal</oberon-param> in the format produced by <oberon-proc href='LRealStr#RealToFixed'>LRealStr.RealToFixed</oberon-proc>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteLRealFix.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='lreal' id='WriterDesc.WriteLRealFix.lreal' export='no' variable-parameter='yes'>
          <type>
            <type-name module='#predef' name='LONGREAL'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteLRealFix.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='k' id='WriterDesc.WriteLRealFix.k' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteRealFix' id='WriterDesc.WriteRealFix' export='yes'>
      <oberon-doc>
        <summary>As <oberon-proc href='#WriterDesc.WriteLRealFix'>Writer.WriteLRealFix</oberon-proc>.</summary>
        <p pad-after='yes' no-indent='yes'>As <oberon-proc href='#WriterDesc.WriteLRealFix'>Writer.WriteLRealFix</oberon-proc>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteRealFix.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='real' id='WriterDesc.WriteRealFix.real' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='REAL'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteRealFix.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='k' id='WriterDesc.WriteRealFix.k' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteLRealEng' id='WriterDesc.WriteLRealEng' export='yes'>
      <oberon-doc>
        <summary>Writes the value <oberon-param href='#WriterDesc.WriteLRealEng.lreal'>lreal</oberon-param> in the format produced by <oberon-proc href='LRealStr#RealToEng'>LRealStr.RealToEng</oberon-proc>.</summary>
        <p pad-after='yes' no-indent='yes'>Writes the value <oberon-param href='#WriterDesc.WriteLRealEng.lreal'>lreal</oberon-param> in the format produced by <oberon-proc href='LRealStr#RealToEng'>LRealStr.RealToEng</oberon-proc>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteLRealEng.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='lreal' id='WriterDesc.WriteLRealEng.lreal' export='no' variable-parameter='yes'>
          <type>
            <type-name module='#predef' name='LONGREAL'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteLRealEng.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='k' id='WriterDesc.WriteLRealEng.k' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteRealEng' id='WriterDesc.WriteRealEng' export='yes'>
      <oberon-doc>
        <summary>As <oberon-proc href='#WriterDesc.WriteLRealEng'>Writer.WriteLRealEng</oberon-proc>.</summary>
        <p pad-after='yes' no-indent='yes'>As <oberon-proc href='#WriterDesc.WriteLRealEng'>Writer.WriteLRealEng</oberon-proc>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteRealEng.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='real' id='WriterDesc.WriteRealEng.real' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='REAL'/>
          </type>
        </parameter-decl>
        <parameter-decl name='n' id='WriterDesc.WriteRealEng.n' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='k' id='WriterDesc.WriteRealEng.k' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteSet' id='WriterDesc.WriteSet' export='yes'>
      <oberon-doc>
        <summary>Write <oberon-param href='#WriterDesc.WriteSet.s'>s</oberon-param> in Oberon-2 set notation.</summary>
        <p pad-after='yes' no-indent='yes'>Write <oberon-param href='#WriterDesc.WriteSet.s'>s</oberon-param> in Oberon-2 set notation.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteSet.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
        <parameter-decl name='s' id='WriterDesc.WriteSet.s' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='SET'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='WriteLn' id='WriterDesc.WriteLn' export='yes'>
      <oberon-doc>
        <summary>Write a newline.</summary>
        <p pad-after='yes' no-indent='yes'>Write a newline.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='w' id='WriterDesc.WriteLn.w' export='no' variable-parameter='no'>
          <type>
            <type-name name='Writer' href='#Writer'/>
          </type>
        </receiver-decl>
      </formal-parameters>
    </procedure>
  </class>
  <module-ref name='CharClass'>
    <ref-target type='html' relative-uri='../CharClass.html'/>
  </module-ref>
  <module-ref name='Object'>
    <ref-target type='html' relative-uri='../Object.html'/>
  </module-ref>
  <module-ref name='LRealStr'>
    <ref-target type='html' relative-uri='../LRealStr.html'/>
  </module-ref>
  <module-ref name='TextRider'>
    <ref-target type='html' relative-uri='../TextRider.html'/>
  </module-ref>
  <module-ref name='IO'>
    <ref-target type='html' relative-uri='../IO.html'/>
  </module-ref>
</interface-description>
