<?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='StringSearch:SubstringBF' id=''>
  <import-decl name='Object' id='Object' export='no' module='Object'/>
  <import-decl name='StringSearch' id='StringSearch' export='no' module='StringSearch'/>
  <const-decl name='ignoreCase' id='ignoreCase' export='yes' value='unknown'>
    <oberon-doc>
      <summary>See <oberon-const href='StringSearch#ignoreCase'>StringSearch.ignoreCase</oberon-const>.</summary>
      <p pad-after='yes' no-indent='yes'>See <oberon-const href='StringSearch#ignoreCase'>StringSearch.ignoreCase</oberon-const>.</p>
    </oberon-doc>
  </const-decl>
  <const-decl name='copyString' id='copyString' export='yes' value='unknown'>
    <oberon-doc>
      <summary>See <oberon-const href='StringSearch#copyString'>StringSearch.copyString</oberon-const>.</summary>
      <p pad-after='yes' no-indent='yes'>See <oberon-const href='StringSearch#copyString'>StringSearch.copyString</oberon-const>.</p>
    </oberon-doc>
  </const-decl>
  <var-decl name='factory' id='factory' export='read-only'>
    <type>
      <type-name name='Factory' href='#Factory'/>
    </type>
  </var-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='Factory'>
    <type-decl name='Factory' id='Factory' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='FactoryDesc' href='#FactoryDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='FactoryDesc' id='FactoryDesc' export='yes'>
      <oberon-doc>
        <summary>This class implements a brute-force substring matcher.</summary>
        <p pad-after='yes' no-indent='yes'>This class implements a brute-force substring matcher.  With a pattern length of <var>M</var> and a string length of <var>N</var>, a substring search can require up to O(N*M) operations.</p>
      </oberon-doc>
      <type>
        <record/>
      </type>
    </type-decl>
    <procedure name='InitFactory' id='InitFactory' export='yes'>
      <formal-parameters>
        <parameter-decl name='f' id='InitFactory.f' export='no' variable-parameter='no'>
          <type>
            <type-name name='Factory' href='#Factory'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='Compile' id='FactoryDesc.Compile' export='yes'>
      <doc-inherited-from module='StringSearch' name='Compile' class='Factory' href='StringSearch#FactoryDesc.Compile'/>
      <oberon-doc>
        <summary>Compile a expression, for example a regular expression pattern, into a <oberon-type href='StringSearch#Matcher'>Matcher</oberon-type> expression object.</summary>
        <p pad-after='yes' no-indent='yes'>Compile a expression, for example a regular expression pattern, into a <oberon-type href='StringSearch#Matcher'>Matcher</oberon-type> expression object.  The matcher object can be used for matching using its <oberon-proc href='StringSearch#MatcherDesc.MatchChars'>Matcher.MatchChars</oberon-proc> and <oberon-proc href='StringSearch#MatcherDesc.SearchChars'>Matcher.SearchChars</oberon-proc> methods.</p>
        <p pad-after='yes' no-indent='no'>The pattern's behaviour can be modified by specifying a <oberon-param href='#FactoryDesc.Compile.flags'>flags</oberon-param> value.  The set can include of the following variables: <oberon-const href='StringSearch#ignoreCase'>ignoreCase</oberon-const>, <oberon-const href='StringSearch#copyString'>copyString</oberon-const>.</p>
        <p pad-after='yes' no-indent='no'>Result is <code>NIL</code> if the given pattern is invalid.</p>
        <pre-cond pad-after='yes'>
          <p pad-after='no' no-indent='yes'>The value of <oberon-param href='#FactoryDesc.Compile.pattern'>pattern</oberon-param> does not contain the character <code>0X</code>.</p>
        </pre-cond>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='f' id='FactoryDesc.Compile.f' export='no' variable-parameter='no'>
          <type>
            <type-name name='Factory' href='#Factory'/>
          </type>
        </receiver-decl>
        <parameter-decl name='pattern' id='FactoryDesc.Compile.pattern' export='no' variable-parameter='no'>
          <type>
            <type-name module='Object' name='String8' href='Object#String8'/>
          </type>
        </parameter-decl>
        <parameter-decl name='flags' id='FactoryDesc.Compile.flags' export='no' variable-parameter='no'>
          <type>
            <type-name module='StringSearch' name='Flags' href='StringSearch#Flags'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='Matcher' href='#Matcher'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='StringSearch' name='Compile' class='Factory' href='StringSearch#FactoryDesc.Compile'/>
    </procedure>
    <base-class module='StringSearch' class='Factory' href='StringSearch#Factory'>
      <inherited-method module='StringSearch' name='Compile' class='Factory' href='StringSearch#FactoryDesc.Compile'/>
      <inherited-method module='StringSearch' name='Destroy' class='Factory' href='StringSearch#FactoryDesc.Destroy'/>
      <base-class module='Object' class='Object' href='Object#Object'>
        <inherited-method module='Object' name='Equals' class='Object' href='Object#ObjectDesc.Equals'/>
        <inherited-method module='Object' name='HashCode' class='Object' href='Object#ObjectDesc.HashCode'/>
        <inherited-method module='Object' name='ToString' class='Object' href='Object#ObjectDesc.ToString'/>
      </base-class>
    </base-class>
  </class>
  <class name='Matcher'>
    <type-decl name='Matcher' id='Matcher' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='MatcherDesc' href='#MatcherDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='MatcherDesc' id='MatcherDesc' export='yes'>
      <type>
        <record/>
      </type>
    </type-decl>
    <procedure name='InitMatcher' id='InitMatcher' export='yes'>
      <formal-parameters>
        <parameter-decl name='matcher' id='InitMatcher.matcher' export='no' variable-parameter='no'>
          <type>
            <type-name name='Matcher' href='#Matcher'/>
          </type>
        </parameter-decl>
        <parameter-decl name='pattern' id='InitMatcher.pattern' export='no' variable-parameter='no'>
          <type>
            <type-name module='Object' name='String8' href='Object#String8'/>
          </type>
        </parameter-decl>
        <parameter-decl name='flags' id='InitMatcher.flags' export='no' variable-parameter='no'>
          <type>
            <type-name module='StringSearch' name='Flags' href='StringSearch#Flags'/>
          </type>
        </parameter-decl>
        <parameter-decl name='groups' id='InitMatcher.groups' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='MatchChars' id='MatcherDesc.MatchChars' export='yes'>
      <doc-inherited-from module='StringSearch' name='MatchChars' class='Matcher' href='StringSearch#MatcherDesc.MatchChars'/>
      <oberon-doc>
        <summary>Returns a corresponding <oberon-type href='StringSearch#MatchObject'>MatchObject</oberon-type> instance, if zero or more characters at the beginning of string match this <oberon-type href='StringSearch#Matcher'>Matcher</oberon-type>.</summary>
        <p pad-after='yes' no-indent='yes'>Returns a corresponding <oberon-type href='StringSearch#MatchObject'>MatchObject</oberon-type> instance, if zero or more characters at the beginning of string match this <oberon-type href='StringSearch#Matcher'>Matcher</oberon-type>.  Returns <code>NIL</code> if the string does not match the pattern.  Note that this is different from a zero-length match.</p>
        <p pad-after='yes' no-indent='no'>Note: If you want to locate a match anywhere in string, use <oberon-proc href='StringSearch#MatcherDesc.Search'>Matcher.Search</oberon-proc> instead.</p>
        <p pad-after='yes' no-indent='no'>The second parameter <oberon-param href='#MatcherDesc.MatchChars.pos'>pos</oberon-param> gives an index in the string where the search is to start, for example 0 to start at the beginning of the string.</p>
        <p pad-after='yes' no-indent='no'>The parameter <oberon-param href='#MatcherDesc.MatchChars.endpos'>endpos</oberon-param> limits how far the string will be searched.  It will be as if the string is <oberon-param href='#MatcherDesc.MatchChars.endpos'>endpos</oberon-param> characters long, so only the characters in <samp>[<oberon-param href='#MatcherDesc.MatchChars.pos'>pos</oberon-param>, <oberon-param href='#MatcherDesc.MatchChars.endpos'>endpos</oberon-param>[</samp> will be searched for a match.  A value of <samp>-1</samp> is equivalent to an <oberon-param href='#MatcherDesc.MatchChars.endpos'>endpos</oberon-param> of <samp>Length(string)</samp>.</p>
        <pre-cond pad-after='yes'>
          <p pad-after='no' no-indent='yes'>The start position is within the string <samp>0 &lt;= <oberon-param href='#MatcherDesc.MatchChars.pos'>pos</oberon-param> &lt;= Length(string)</samp>, and the given end position is either <samp>-1</samp>, or between the start position and the end of the string <samp><oberon-param href='#MatcherDesc.MatchChars.pos'>pos</oberon-param> &lt;= <oberon-param href='#MatcherDesc.MatchChars.endpos'>endpos</oberon-param> &lt;= Length(string)</samp>.</p>
        </pre-cond>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='matcher' id='MatcherDesc.MatchChars.matcher' export='no' variable-parameter='no'>
          <type>
            <type-name name='Matcher' href='#Matcher'/>
          </type>
        </receiver-decl>
        <parameter-decl name='string' id='MatcherDesc.MatchChars.string' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='pos' id='MatcherDesc.MatchChars.pos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='endpos' id='MatcherDesc.MatchChars.endpos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='MatchObject' href='#MatchObject'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='StringSearch' name='MatchChars' class='Matcher' href='StringSearch#MatcherDesc.MatchChars'/>
    </procedure>
    <procedure name='Match' id='MatcherDesc.Match' export='yes'>
      <doc-inherited-from module='StringSearch' name='Match' class='Matcher' href='StringSearch#MatcherDesc.Match'/>
      <oberon-doc>
        <summary>Like <oberon-proc href='StringSearch#MatcherDesc.MatchChars'>Matcher.MatchChars</oberon-proc>, but works on an instance of <oberon-type href='Object#String8'>Object.String8</oberon-type>.</summary>
        <p pad-after='yes' no-indent='yes'>Like <oberon-proc href='StringSearch#MatcherDesc.MatchChars'>Matcher.MatchChars</oberon-proc>, but works on an instance of <oberon-type href='Object#String8'>Object.String8</oberon-type>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='matcher' id='MatcherDesc.Match.matcher' export='no' variable-parameter='no'>
          <type>
            <type-name name='Matcher' href='#Matcher'/>
          </type>
        </receiver-decl>
        <parameter-decl name='string' id='MatcherDesc.Match.string' export='no' variable-parameter='no'>
          <type>
            <type-name module='Object' name='String8' href='Object#String8'/>
          </type>
        </parameter-decl>
        <parameter-decl name='pos' id='MatcherDesc.Match.pos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='endpos' id='MatcherDesc.Match.endpos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='MatchObject' href='#MatchObject'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='StringSearch' name='Match' class='Matcher' href='StringSearch#MatcherDesc.Match'/>
    </procedure>
    <procedure name='SearchChars' id='MatcherDesc.SearchChars' export='yes'>
      <doc-inherited-from module='StringSearch' name='SearchChars' class='Matcher' href='StringSearch#MatcherDesc.SearchChars'/>
      <oberon-doc>
        <summary>Scans through string looking for a location where this <oberon-type href='StringSearch#Matcher'>Matcher</oberon-type> produces a match, and return a corresponding <oberon-type href='StringSearch#MatchObject'>MatchObject</oberon-type> instance.</summary>
        <p pad-after='yes' no-indent='yes'>Scans through string looking for a location where this <oberon-type href='StringSearch#Matcher'>Matcher</oberon-type> produces a match, and return a corresponding <oberon-type href='StringSearch#MatchObject'>MatchObject</oberon-type> instance.  Returns <code>NIL</code> if no position in the string matches the pattern.  Note that this is different from finding a zero-length match at some point in the string.</p>
        <p pad-after='yes' no-indent='no'>The <oberon-param href='#MatcherDesc.SearchChars.pos'>pos</oberon-param> and <oberon-param href='#MatcherDesc.SearchChars.endpos'>endpos</oberon-param> parameters have the same meaning as for the <oberon-proc href='StringSearch#MatcherDesc.MatchChars'>Matcher.MatchChars</oberon-proc> method.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='matcher' id='MatcherDesc.SearchChars.matcher' export='no' variable-parameter='no'>
          <type>
            <type-name name='Matcher' href='#Matcher'/>
          </type>
        </receiver-decl>
        <parameter-decl name='string' id='MatcherDesc.SearchChars.string' export='no' variable-parameter='no'>
          <type>
            <array>
              <element-type>
                <type-name module='#predef' name='CHAR'/>
              </element-type>
            </array>
          </type>
        </parameter-decl>
        <parameter-decl name='pos' id='MatcherDesc.SearchChars.pos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='endpos' id='MatcherDesc.SearchChars.endpos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='MatchObject' href='#MatchObject'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='StringSearch' name='SearchChars' class='Matcher' href='StringSearch#MatcherDesc.SearchChars'/>
    </procedure>
    <procedure name='Search' id='MatcherDesc.Search' export='yes'>
      <doc-inherited-from module='StringSearch' name='Search' class='Matcher' href='StringSearch#MatcherDesc.Search'/>
      <oberon-doc>
        <summary>Like <oberon-proc href='StringSearch#MatcherDesc.SearchChars'>Matcher.SearchChars</oberon-proc>, but works on an instance of <oberon-type href='Object#String8'>Object.String8</oberon-type>.</summary>
        <p pad-after='yes' no-indent='yes'>Like <oberon-proc href='StringSearch#MatcherDesc.SearchChars'>Matcher.SearchChars</oberon-proc>, but works on an instance of <oberon-type href='Object#String8'>Object.String8</oberon-type>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='matcher' id='MatcherDesc.Search.matcher' export='no' variable-parameter='no'>
          <type>
            <type-name name='Matcher' href='#Matcher'/>
          </type>
        </receiver-decl>
        <parameter-decl name='string' id='MatcherDesc.Search.string' export='no' variable-parameter='no'>
          <type>
            <type-name module='Object' name='String8' href='Object#String8'/>
          </type>
        </parameter-decl>
        <parameter-decl name='pos' id='MatcherDesc.Search.pos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='endpos' id='MatcherDesc.Search.endpos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name name='MatchObject' href='#MatchObject'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='StringSearch' name='Search' class='Matcher' href='StringSearch#MatcherDesc.Search'/>
    </procedure>
    <base-class module='StringSearch' class='Matcher' href='StringSearch#Matcher'>
      <inherited-method module='StringSearch' name='Destroy' class='Matcher' href='StringSearch#MatcherDesc.Destroy'/>
      <inherited-method module='StringSearch' name='Match' class='Matcher' href='StringSearch#MatcherDesc.Match'/>
      <inherited-method module='StringSearch' name='MatchChars' class='Matcher' href='StringSearch#MatcherDesc.MatchChars'/>
      <inherited-method module='StringSearch' name='Search' class='Matcher' href='StringSearch#MatcherDesc.Search'/>
      <inherited-method module='StringSearch' name='SearchChars' class='Matcher' href='StringSearch#MatcherDesc.SearchChars'/>
      <inherited-field module='StringSearch' name='flags' class='Matcher' href='StringSearch#MatcherDesc.flags'/>
      <inherited-field module='StringSearch' name='groups' class='Matcher' href='StringSearch#MatcherDesc.groups'/>
      <inherited-field module='StringSearch' name='pattern' class='Matcher' href='StringSearch#MatcherDesc.pattern'/>
      <base-class module='Object' class='Object' href='Object#Object'>
        <inherited-method module='Object' name='Equals' class='Object' href='Object#ObjectDesc.Equals'/>
        <inherited-method module='Object' name='HashCode' class='Object' href='Object#ObjectDesc.HashCode'/>
        <inherited-method module='Object' name='ToString' class='Object' href='Object#ObjectDesc.ToString'/>
      </base-class>
    </base-class>
  </class>
  <class name='MatchObject'>
    <type-decl name='MatchObject' id='MatchObject' export='yes'>
      <type>
        <pointer>
          <pointer-base>
            <type-name name='MatchObjectDesc' href='#MatchObjectDesc'/>
          </pointer-base>
        </pointer>
      </type>
    </type-decl>
    <type-decl name='MatchObjectDesc' id='MatchObjectDesc' export='yes'>
      <type>
        <record/>
      </type>
    </type-decl>
    <procedure name='InitMatchObject' id='InitMatchObject' export='yes'>
      <formal-parameters>
        <parameter-decl name='m' id='InitMatchObject.m' export='no' variable-parameter='no'>
          <type>
            <type-name name='MatchObject' href='#MatchObject'/>
          </type>
        </parameter-decl>
        <parameter-decl name='pos' id='InitMatchObject.pos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='endpos' id='InitMatchObject.endpos' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='matcher' id='InitMatchObject.matcher' export='no' variable-parameter='no'>
          <type>
            <type-name name='Matcher' href='#Matcher'/>
          </type>
        </parameter-decl>
        <parameter-decl name='string' id='InitMatchObject.string' export='no' variable-parameter='no'>
          <type>
            <type-name module='Object' name='String8' href='Object#String8'/>
          </type>
        </parameter-decl>
        <parameter-decl name='start' id='InitMatchObject.start' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <parameter-decl name='end' id='InitMatchObject.end' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
      </formal-parameters>
    </procedure>
    <procedure name='Start' id='MatchObjectDesc.Start' export='yes'>
      <doc-inherited-from module='StringSearch' name='Start' class='MatchObject' href='StringSearch#MatchObjectDesc.Start'/>
      <oberon-doc>
        <summary>Returns the index of the start of the substring matched by <oberon-param href='#MatchObjectDesc.Start.group'>group</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Returns the index of the start of the substring matched by <oberon-param href='#MatchObjectDesc.Start.group'>group</oberon-param>.  A <oberon-param href='#MatchObjectDesc.Start.group'>group</oberon-param> of <samp>0</samp> refers to the whole matched substring.  Returns <samp>-1</samp> if the group exists but did not contribute to the match.  For a match object <var>m</var>, and a group <var>g</var> that did contribute to the match, the substring matched by group <var>g</var> is <samp>string[<var>m</var>.Start(<var>g</var>), <var>m</var>.End(<var>g</var>)[</samp>.  Note that <samp>m.Start(<var>g</var>)</samp> will equal <samp>m.End(<var>g</var>)</samp> if <var>g</var> matched a null string.</p>
        <p pad-after='yes' no-indent='no'>Note: Not all matcher implementations implement groups other than the whole match.</p>
        <pre-cond pad-after='yes'>
          <p pad-after='no' no-indent='yes'><samp>0 &lt;= <oberon-param href='#MatchObjectDesc.Start.group'>group</oberon-param> &lt;= <oberon-field href='StringSearch#MatcherDesc.groups'>m.matcher.groups</oberon-field></samp></p>
        </pre-cond>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='m' id='MatchObjectDesc.Start.m' export='no' variable-parameter='no'>
          <type>
            <type-name name='MatchObject' href='#MatchObject'/>
          </type>
        </receiver-decl>
        <parameter-decl name='group' id='MatchObjectDesc.Start.group' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name module='#predef' name='LONGINT'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='StringSearch' name='Start' class='MatchObject' href='StringSearch#MatchObjectDesc.Start'/>
    </procedure>
    <procedure name='End' id='MatchObjectDesc.End' export='yes'>
      <doc-inherited-from module='StringSearch' name='End' class='MatchObject' href='StringSearch#MatchObjectDesc.End'/>
      <oberon-doc>
        <summary>Returns the index of the end of the substring matched by <oberon-param href='#MatchObjectDesc.End.group'>group</oberon-param>.</summary>
        <p pad-after='yes' no-indent='yes'>Returns the index of the end of the substring matched by <oberon-param href='#MatchObjectDesc.End.group'>group</oberon-param>.  See <oberon-proc href='StringSearch#MatchObjectDesc.Start'>MatchObject.Start</oberon-proc>.</p>
      </oberon-doc>
      <formal-parameters>
        <receiver-decl name='m' id='MatchObjectDesc.End.m' export='no' variable-parameter='no'>
          <type>
            <type-name name='MatchObject' href='#MatchObject'/>
          </type>
        </receiver-decl>
        <parameter-decl name='group' id='MatchObjectDesc.End.group' export='no' variable-parameter='no'>
          <type>
            <type-name module='#predef' name='LONGINT'/>
          </type>
        </parameter-decl>
        <result-type>
          <type-name module='#predef' name='LONGINT'/>
        </result-type>
      </formal-parameters>
      <redefined-method module='StringSearch' name='End' class='MatchObject' href='StringSearch#MatchObjectDesc.End'/>
    </procedure>
    <base-class module='StringSearch' class='MatchObject' href='StringSearch#MatchObject'>
      <inherited-method module='StringSearch' name='Destroy' class='MatchObject' href='StringSearch#MatchObjectDesc.Destroy'/>
      <inherited-method module='StringSearch' name='End' class='MatchObject' href='StringSearch#MatchObjectDesc.End'/>
      <inherited-method module='StringSearch' name='Start' class='MatchObject' href='StringSearch#MatchObjectDesc.Start'/>
      <inherited-field module='StringSearch' name='endpos' class='MatchObject' href='StringSearch#MatchObjectDesc.endpos'/>
      <inherited-field module='StringSearch' name='matcher' class='MatchObject' href='StringSearch#MatchObjectDesc.matcher'/>
      <inherited-field module='StringSearch' name='pos' class='MatchObject' href='StringSearch#MatchObjectDesc.pos'/>
      <inherited-field module='StringSearch' name='string' class='MatchObject' href='StringSearch#MatchObjectDesc.string'/>
      <base-class module='Object' class='Object' href='Object#Object'>
        <inherited-method module='Object' name='Equals' class='Object' href='Object#ObjectDesc.Equals'/>
        <inherited-method module='Object' name='HashCode' class='Object' href='Object#ObjectDesc.HashCode'/>
        <inherited-method module='Object' name='ToString' class='Object' href='Object#ObjectDesc.ToString'/>
      </base-class>
    </base-class>
  </class>
  <module-ref name='Object'>
    <ref-target type='html' relative-uri='../Object.html'/>
  </module-ref>
  <module-ref name='StringSearch'>
    <ref-target type='html' relative-uri='../StringSearch.html'/>
  </module-ref>
</interface-description>
