Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 1d0450bacbf99cd8b1d55f6518fc2c18 > files > 25

ruby-feedparser-0.6-1mdv2010.0.noarch.rpm

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html 
     PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
  <title>Class: FeedParser::SGMLParser</title>
  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  <meta http-equiv="Content-Script-Type" content="text/javascript" />
  <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" />
  <script type="text/javascript">
  // <![CDATA[

  function popupCode( url ) {
    window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400")
  }

  function toggleCode( id ) {
    if ( document.getElementById )
      elem = document.getElementById( id );
    else if ( document.all )
      elem = eval( "document.all." + id );
    else
      return false;

    elemStyle = elem.style;
    
    if ( elemStyle.display != "block" ) {
      elemStyle.display = "block"
    } else {
      elemStyle.display = "none"
    }

    return true;
  }
  
  // Make codeblocks hidden by default
  document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" )
  
  // ]]>
  </script>

</head>
<body>



    <div id="classHeader">
        <table class="header-table">
        <tr class="top-aligned-row">
          <td><strong>Class</strong></td>
          <td class="class-name-in-header">FeedParser::SGMLParser</td>
        </tr>
        <tr class="top-aligned-row">
            <td><strong>In:</strong></td>
            <td>
                <a href="../../files/lib/feedparser/sgml-parser_rb.html">
                lib/feedparser/sgml-parser.rb
                </a>
        <br />
            </td>
        </tr>

        <tr class="top-aligned-row">
            <td><strong>Parent:</strong></td>
            <td>
                Object
            </td>
        </tr>
        </table>
    </div>
  <!-- banner header -->

  <div id="bodyContent">



  <div id="contextContent">
    <div id="diagram">
      <map id="map" name="map">
  <area shape="rect" coords="1435,5,1600,53"      href="../RuntimeError.html" alt="RuntimeError" />
  <area shape="rect" coords="1364,161,1671,209"      href="UnknownFeedTypeException.html" alt="UnknownFeedTypeException" />
  <area shape="rect" coords="887,136,1340,235"      href="FeedItem.html" alt="FeedItem\n[lib/feedparser/feedparser.rb\nlib/feedparser/html-output.rb\nlib/feedparser/text-output.rb]" />
  <area shape="rect" coords="987,283,1104,331"      href="AtomItem.html" alt="AtomItem" />
  <area shape="rect" coords="1128,283,1235,331"      href="RSSItem.html" alt="RSSItem" />
  <area shape="rect" coords="79,161,220,209"      href="SGMLParser.html" alt="SGMLParser" />
  <area shape="rect" coords="48,283,251,331"      href="HTML2TextParser.html" alt="HTML2TextParser" />
  <area shape="rect" coords="409,136,863,235"      href="Feed.html" alt="Feed\n[lib/feedparser/feedparser.rb\nlib/feedparser/html-output.rb\nlib/feedparser/text-output.rb]" />
  <area shape="rect" coords="399,100,1681,341"      href="../FeedParser.html" alt="lib/feedparser/feedparser.rb" />
  <area shape="rect" coords="60,125,372,220"      href="../FeedParser.html" alt="lib/feedparser/sgml-parser.rb" />
  <area shape="rect" coords="27,247,388,341"      href="../FeedParser.html" alt="lib/feedparser/html2text-parser.rb" />
  <area shape="rect" coords="16,64,1692,352"      href="../FeedParser.html" alt="FeedParser" />
</map>
<img src="../../dot/m_8_0.png" usemap="#map" border="0" alt="dot/m_8_0.png">
    </div>



   </div>

    <div id="method-list">
      <h3 class="section-bar">Methods</h3>

      <div class="name-list">
      <a href="#M000029">close</a>&nbsp;&nbsp;
      <a href="#M000028">feed</a>&nbsp;&nbsp;
      <a href="#M000035">finish_endtag</a>&nbsp;&nbsp;
      <a href="#M000034">finish_starttag</a>&nbsp;&nbsp;
      <a href="#M000030">goahead</a>&nbsp;&nbsp;
      <a href="#M000040">handle_charref</a>&nbsp;&nbsp;
      <a href="#M000043">handle_comment</a>&nbsp;&nbsp;
      <a href="#M000042">handle_data</a>&nbsp;&nbsp;
      <a href="#M000038">handle_endtag</a>&nbsp;&nbsp;
      <a href="#M000041">handle_entityref</a>&nbsp;&nbsp;
      <a href="#M000044">handle_special</a>&nbsp;&nbsp;
      <a href="#M000037">handle_starttag</a>&nbsp;&nbsp;
      <a href="#M000025">has_context</a>&nbsp;&nbsp;
      <a href="#M000023">new</a>&nbsp;&nbsp;
      <a href="#M000031">parse_comment</a>&nbsp;&nbsp;
      <a href="#M000033">parse_endtag</a>&nbsp;&nbsp;
      <a href="#M000036">parse_special</a>&nbsp;&nbsp;
      <a href="#M000032">parse_starttag</a>&nbsp;&nbsp;
      <a href="#M000039">report_unbalanced</a>&nbsp;&nbsp;
      <a href="#M000024">reset</a>&nbsp;&nbsp;
      <a href="#M000027">setliteral</a>&nbsp;&nbsp;
      <a href="#M000026">setnomoretags</a>&nbsp;&nbsp;
      <a href="#M000047">unknown_charref</a>&nbsp;&nbsp;
      <a href="#M000046">unknown_endtag</a>&nbsp;&nbsp;
      <a href="#M000048">unknown_entityref</a>&nbsp;&nbsp;
      <a href="#M000045">unknown_starttag</a>&nbsp;&nbsp;
      </div>
    </div>

  </div>


    <!-- if includes -->

    <div id="section">


    <div id="constants-list">
      <h3 class="section-bar">Constants</h3>

      <div class="name-list">
        <table summary="Constants">
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Interesting</td>
          <td>=</td>
          <td class="context-item-value">/[&amp;&lt;]/</td>
          <td width="3em">&nbsp;</td>
          <td class="context-item-desc">
Regular expressions used for parsing:

</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Incomplete</td>
          <td>=</td>
          <td class="context-item-value">Regexp.compile('&amp;([a-zA-Z][a-zA-Z0-9]*|#[0-9]*)?|' +                                 '&lt;([a-zA-Z][^&lt;&gt;]*|/([a-zA-Z][^&lt;&gt;]*)?|' +                                 '![^&lt;&gt;]*)?')</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Entityref</td>
          <td>=</td>
          <td class="context-item-value">/&amp;([a-zA-Z][-.a-zA-Z0-9]*);/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Charref</td>
          <td>=</td>
          <td class="context-item-value">/&amp;#([0-9]+);/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Starttagopen</td>
          <td>=</td>
          <td class="context-item-value">/&lt;[&gt;a-zA-Z]/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Endtagopen</td>
          <td>=</td>
          <td class="context-item-value">/&lt;\/[&lt;&gt;a-zA-Z]/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Endbracket</td>
          <td>=</td>
          <td class="context-item-value">/[&lt;&gt;]/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Special</td>
          <td>=</td>
          <td class="context-item-value">/&lt;![^&lt;&gt;]*&gt;/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Commentopen</td>
          <td>=</td>
          <td class="context-item-value">/&lt;!--/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Commentclose</td>
          <td>=</td>
          <td class="context-item-value">/--[ \t\n]*&gt;/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Tagfind</td>
          <td>=</td>
          <td class="context-item-value">/[a-zA-Z][a-zA-Z0-9.-]*/</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Attrfind</td>
          <td>=</td>
          <td class="context-item-value">Regexp.compile('[\s,]*([a-zA-Z_][a-zA-Z_0-9.-]*)' +                               '(\s*=\s*' +                               &quot;('[^']*'&quot; +                               '|&quot;[^&quot;]*&quot;' +                               '|[-~a-zA-Z0-9,./:+*%?!()_#=]*))?')</td>
        </tr>
        <tr class="top-aligned-row context-row">
          <td class="context-item-name">Entitydefs</td>
          <td>=</td>
          <td class="context-item-value">{'lt'=&gt;'&lt;', 'gt'=&gt;'&gt;', 'amp'=&gt;'&amp;', 'quot'=&gt;'&quot;', 'apos'=&gt;'\''}</td>
        </tr>
        </table>
      </div>
    </div>



      


    <!-- if method_list -->
    <div id="methods">
      <h3 class="section-bar">Public Class methods</h3>

      <div id="method-M000023" class="method-detail">
        <a name="M000023"></a>

        <div class="method-heading">
          <a href="#M000023" class="method-signature">
          <span class="method-name">new</span><span class="method-args">(verbose=false)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000023-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000023-source">
<pre>
    <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 30</span>
30:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">verbose</span>=<span class="ruby-keyword kw">false</span>)
31:       <span class="ruby-ivar">@verbose</span> = <span class="ruby-identifier">verbose</span>
32:       <span class="ruby-identifier">reset</span>
33:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <h3 class="section-bar">Public Instance methods</h3>

      <div id="method-M000029" class="method-detail">
        <a name="M000029"></a>

        <div class="method-heading">
          <a href="#M000029" class="method-signature">
          <span class="method-name">close</span><span class="method-args">()</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000029-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000029-source">
<pre>
    <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 61</span>
61:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span>
62:       <span class="ruby-identifier">goahead</span>(<span class="ruby-keyword kw">true</span>)
63:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000028" class="method-detail">
        <a name="M000028"></a>

        <div class="method-heading">
          <a href="#M000028" class="method-signature">
          <span class="method-name">feed</span><span class="method-args">(data)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000028-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000028-source">
<pre>
    <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 56</span>
56:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">feed</span>(<span class="ruby-identifier">data</span>)
57:       <span class="ruby-ivar">@rawdata</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">data</span>
58:       <span class="ruby-identifier">goahead</span>(<span class="ruby-keyword kw">false</span>)
59:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000035" class="method-detail">
        <a name="M000035"></a>

        <div class="method-heading">
          <a href="#M000035" class="method-signature">
          <span class="method-name">finish_endtag</span><span class="method-args">(tag)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000035-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000035-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 242</span>
242:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finish_endtag</span>(<span class="ruby-identifier">tag</span>)
243:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">==</span> <span class="ruby-value str">''</span>
244:         <span class="ruby-identifier">found</span> = <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-value">1</span>
245:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">found</span> <span class="ruby-operator">&lt;</span> <span class="ruby-value">0</span>
246:           <span class="ruby-identifier">unknown_endtag</span>(<span class="ruby-identifier">tag</span>)
247:           <span class="ruby-keyword kw">return</span>
248:         <span class="ruby-keyword kw">end</span>
249:       <span class="ruby-keyword kw">else</span>
250:         <span class="ruby-keyword kw">unless</span> <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">tag</span>
251:           <span class="ruby-identifier">method</span> = <span class="ruby-value str">'end_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span>
252:           <span class="ruby-keyword kw">unless</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">method</span>)
253:             <span class="ruby-identifier">unknown_endtag</span>(<span class="ruby-identifier">tag</span>)
254:           <span class="ruby-keyword kw">end</span>
255:           <span class="ruby-keyword kw">return</span>
256:         <span class="ruby-keyword kw">end</span>
257:         <span class="ruby-identifier">found</span> = <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">index</span>(<span class="ruby-identifier">tag</span>) <span class="ruby-comment cmt">#or @stack.length</span>
258:       <span class="ruby-keyword kw">end</span>
259:       <span class="ruby-keyword kw">while</span> <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-identifier">found</span>
260:         <span class="ruby-identifier">tag</span> = <span class="ruby-ivar">@stack</span>[<span class="ruby-value">-1</span>]
261:         <span class="ruby-identifier">method</span> = <span class="ruby-value str">'end_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span>
262:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">method</span>)
263:           <span class="ruby-identifier">handle_endtag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">method</span>)
264:         <span class="ruby-keyword kw">else</span>
265:           <span class="ruby-identifier">unknown_endtag</span>(<span class="ruby-identifier">tag</span>)
266:         <span class="ruby-keyword kw">end</span>
267:         <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">pop</span>
268:       <span class="ruby-keyword kw">end</span>
269:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000034" class="method-detail">
        <a name="M000034"></a>

        <div class="method-heading">
          <a href="#M000034" class="method-signature">
          <span class="method-name">finish_starttag</span><span class="method-args">(tag, attrs)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000034-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000034-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 224</span>
224:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">finish_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attrs</span>)
225:       <span class="ruby-identifier">method</span> = <span class="ruby-value str">'start_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span>
226:       <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">method</span>)
227:         <span class="ruby-ivar">@stack</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">tag</span>
228:         <span class="ruby-identifier">handle_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">method</span>, <span class="ruby-identifier">attrs</span>)
229:         <span class="ruby-keyword kw">return</span> <span class="ruby-value">1</span>
230:       <span class="ruby-keyword kw">else</span>
231:         <span class="ruby-identifier">method</span> = <span class="ruby-value str">'do_'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span>
232:         <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">method</span>)
233:           <span class="ruby-identifier">handle_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">method</span>, <span class="ruby-identifier">attrs</span>)
234:           <span class="ruby-keyword kw">return</span> <span class="ruby-value">0</span>
235:         <span class="ruby-keyword kw">else</span>
236:           <span class="ruby-identifier">unknown_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attrs</span>)
237:           <span class="ruby-keyword kw">return</span> <span class="ruby-value">-1</span>
238:         <span class="ruby-keyword kw">end</span>
239:       <span class="ruby-keyword kw">end</span>
240:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000030" class="method-detail">
        <a name="M000030"></a>

        <div class="method-heading">
          <a href="#M000030" class="method-signature">
          <span class="method-name">goahead</span><span class="method-args">(_end)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000030-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000030-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 65</span>
 65:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">goahead</span>(<span class="ruby-identifier">_end</span>)
 66:       <span class="ruby-identifier">rawdata</span> = <span class="ruby-ivar">@rawdata</span>
 67:       <span class="ruby-identifier">i</span> = <span class="ruby-value">0</span>
 68:       <span class="ruby-identifier">n</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">length</span>
 69:       <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">n</span>
 70:         <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@nomoretags</span>
 71:           <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">n</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)])
 72:           <span class="ruby-identifier">i</span> = <span class="ruby-identifier">n</span>
 73:           <span class="ruby-keyword kw">break</span>
 74:         <span class="ruby-keyword kw">end</span>
 75:         <span class="ruby-identifier">j</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Interesting</span>, <span class="ruby-identifier">i</span>)
 76:         <span class="ruby-identifier">j</span> = <span class="ruby-identifier">n</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">j</span>
 77:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">j</span>
 78:           <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">j</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)])
 79:         <span class="ruby-keyword kw">end</span>
 80:         <span class="ruby-identifier">i</span> = <span class="ruby-identifier">j</span>
 81:         <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> (<span class="ruby-identifier">i</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">n</span>)
 82:         <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?&lt;</span> <span class="ruby-comment cmt">#</span>
 83:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Starttagopen</span>, <span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">i</span>
 84:             <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@literal</span>
 85:               <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span>, <span class="ruby-value">1</span>])
 86:               <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
 87:               <span class="ruby-keyword kw">next</span>
 88:             <span class="ruby-keyword kw">end</span>
 89:             <span class="ruby-identifier">k</span> = <span class="ruby-identifier">parse_starttag</span>(<span class="ruby-identifier">i</span>)
 90:             <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">k</span>
 91:             <span class="ruby-identifier">i</span> = <span class="ruby-identifier">k</span>
 92:             <span class="ruby-keyword kw">next</span>
 93:           <span class="ruby-keyword kw">end</span>
 94:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Endtagopen</span>, <span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">i</span>
 95:             <span class="ruby-identifier">k</span> = <span class="ruby-identifier">parse_endtag</span>(<span class="ruby-identifier">i</span>)
 96:             <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">k</span>
 97:             <span class="ruby-identifier">i</span> = <span class="ruby-identifier">k</span>
 98:             <span class="ruby-ivar">@literal</span> = <span class="ruby-keyword kw">false</span>
 99:             <span class="ruby-keyword kw">next</span>
100:           <span class="ruby-keyword kw">end</span>
101:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Commentopen</span>, <span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">i</span>
102:             <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@literal</span>
103:               <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span>,<span class="ruby-value">1</span>])
104:               <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
105:               <span class="ruby-keyword kw">next</span>
106:             <span class="ruby-keyword kw">end</span>
107:             <span class="ruby-identifier">k</span> = <span class="ruby-identifier">parse_comment</span>(<span class="ruby-identifier">i</span>)
108:             <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">k</span>
109:             <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">k</span>
110:             <span class="ruby-keyword kw">next</span>
111:           <span class="ruby-keyword kw">end</span>
112:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Special</span>, <span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">i</span>
113:             <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@literal</span>
114:               <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span>, <span class="ruby-value">1</span>])
115:               <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
116:               <span class="ruby-keyword kw">next</span>
117:             <span class="ruby-keyword kw">end</span>
118:             <span class="ruby-identifier">k</span> = <span class="ruby-identifier">parse_special</span>(<span class="ruby-identifier">i</span>)
119:             <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">k</span>
120:             <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">k</span>
121:             <span class="ruby-keyword kw">next</span>
122:           <span class="ruby-keyword kw">end</span>
123:         <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?&amp;</span> <span class="ruby-comment cmt">#</span>
124:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Charref</span>, <span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">i</span>
125:             <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">length</span>
126:             <span class="ruby-identifier">handle_charref</span>(<span class="ruby-identifier">$1</span>)
127:             <span class="ruby-identifier">i</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?;</span>
128:             <span class="ruby-keyword kw">next</span>
129:           <span class="ruby-keyword kw">end</span>
130:           <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Entityref</span>, <span class="ruby-identifier">i</span>) <span class="ruby-operator">==</span> <span class="ruby-identifier">i</span>
131:             <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">length</span>
132:             <span class="ruby-identifier">handle_entityref</span>(<span class="ruby-identifier">$1</span>)
133:             <span class="ruby-identifier">i</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?;</span>
134:             <span class="ruby-keyword kw">next</span>
135:           <span class="ruby-keyword kw">end</span>
136:         <span class="ruby-keyword kw">else</span>
137:           <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-value str">'neither &lt; nor &amp; ??'</span>
138:         <span class="ruby-keyword kw">end</span>
139:         <span class="ruby-comment cmt"># We get here only if incomplete matches but</span>
140:         <span class="ruby-comment cmt"># nothing else</span>
141:         <span class="ruby-identifier">match</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Incomplete</span>, <span class="ruby-identifier">i</span>)
142:         <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">match</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">i</span>
143:           <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span>, <span class="ruby-value">1</span>])
144:           <span class="ruby-identifier">i</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
145:           <span class="ruby-keyword kw">next</span>
146:         <span class="ruby-keyword kw">end</span>
147:         <span class="ruby-identifier">j</span> = <span class="ruby-identifier">match</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">length</span>
148:         <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">j</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">n</span> <span class="ruby-comment cmt"># Really incomplete</span>
149:         <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">j</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)])
150:         <span class="ruby-identifier">i</span> = <span class="ruby-identifier">j</span>
151:       <span class="ruby-keyword kw">end</span>
152:       <span class="ruby-comment cmt"># end while</span>
153:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">_end</span> <span class="ruby-keyword kw">and</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">n</span>
154:         <span class="ruby-identifier">handle_data</span>(<span class="ruby-ivar">@rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">n</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)])
155:         <span class="ruby-identifier">i</span> = <span class="ruby-identifier">n</span>
156:       <span class="ruby-keyword kw">end</span>
157:       <span class="ruby-ivar">@rawdata</span> = <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">..</span><span class="ruby-value">-1</span>]
158:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000040" class="method-detail">
        <a name="M000040"></a>

        <div class="method-heading">
          <a href="#M000040" class="method-signature">
          <span class="method-name">handle_charref</span><span class="method-args">(name)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000040-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000040-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 295</span>
295:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_charref</span>(<span class="ruby-identifier">name</span>)
296:       <span class="ruby-identifier">n</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_i</span>
297:       <span class="ruby-keyword kw">if</span> <span class="ruby-operator">!</span>(<span class="ruby-value">0</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">n</span> <span class="ruby-operator">&lt;=</span> <span class="ruby-value">255</span>)
298:         <span class="ruby-identifier">unknown_charref</span>(<span class="ruby-identifier">name</span>)
299:         <span class="ruby-keyword kw">return</span>
300:       <span class="ruby-keyword kw">end</span>
301:       <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">n</span>.<span class="ruby-identifier">chr</span>)
302:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000043" class="method-detail">
        <a name="M000043"></a>

        <div class="method-heading">
          <a href="#M000043" class="method-signature">
          <span class="method-name">handle_comment</span><span class="method-args">(data)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000043-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000043-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 317</span>
317:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_comment</span>(<span class="ruby-identifier">data</span>)
318:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000042" class="method-detail">
        <a name="M000042"></a>

        <div class="method-heading">
          <a href="#M000042" class="method-signature">
          <span class="method-name">handle_data</span><span class="method-args">(data)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000042-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000042-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 314</span>
314:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">data</span>)
315:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000038" class="method-detail">
        <a name="M000038"></a>

        <div class="method-heading">
          <a href="#M000038" class="method-signature">
          <span class="method-name">handle_endtag</span><span class="method-args">(tag, method)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000038-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000038-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 284</span>
284:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_endtag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">method</span>)
285:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">method</span>)
286:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000041" class="method-detail">
        <a name="M000041"></a>

        <div class="method-heading">
          <a href="#M000041" class="method-signature">
          <span class="method-name">handle_entityref</span><span class="method-args">(name)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000041-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000041-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 304</span>
304:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_entityref</span>(<span class="ruby-identifier">name</span>)
305:       <span class="ruby-identifier">table</span> = <span class="ruby-constant">Entitydefs</span>
306:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">table</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
307:         <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">table</span>[<span class="ruby-identifier">name</span>])
308:       <span class="ruby-keyword kw">else</span>
309:         <span class="ruby-identifier">unknown_entityref</span>(<span class="ruby-identifier">name</span>)
310:         <span class="ruby-keyword kw">return</span>
311:       <span class="ruby-keyword kw">end</span>
312:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000044" class="method-detail">
        <a name="M000044"></a>

        <div class="method-heading">
          <a href="#M000044" class="method-signature">
          <span class="method-name">handle_special</span><span class="method-args">(data)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000044-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000044-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 320</span>
320:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_special</span>(<span class="ruby-identifier">data</span>)
321:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000037" class="method-detail">
        <a name="M000037"></a>

        <div class="method-heading">
          <a href="#M000037" class="method-signature">
          <span class="method-name">handle_starttag</span><span class="method-args">(tag, method, attrs)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000037-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000037-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 280</span>
280:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">method</span>, <span class="ruby-identifier">attrs</span>)
281:       <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">attrs</span>)
282:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000025" class="method-detail">
        <a name="M000025"></a>

        <div class="method-heading">
          <a href="#M000025" class="method-signature">
          <span class="method-name">has_context</span><span class="method-args">(gi)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000025-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000025-source">
<pre>
    <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 43</span>
43:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">has_context</span>(<span class="ruby-identifier">gi</span>)
44:       <span class="ruby-ivar">@stack</span>.<span class="ruby-identifier">include?</span> <span class="ruby-identifier">gi</span>
45:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000031" class="method-detail">
        <a name="M000031"></a>

        <div class="method-heading">
          <a href="#M000031" class="method-signature">
          <span class="method-name">parse_comment</span><span class="method-args">(i)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000031-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000031-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 160</span>
160:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_comment</span>(<span class="ruby-identifier">i</span>)
161:       <span class="ruby-identifier">rawdata</span> = <span class="ruby-ivar">@rawdata</span>
162:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span>, <span class="ruby-value">4</span>] <span class="ruby-operator">!=</span> <span class="ruby-value str">'&lt;!--'</span>
163:         <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-value str">'unexpected call to handle_comment'</span>
164:       <span class="ruby-keyword kw">end</span>
165:       <span class="ruby-identifier">match</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Commentclose</span>, <span class="ruby-identifier">i</span>)
166:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">match</span>
167:       <span class="ruby-identifier">matched_length</span> = <span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">length</span>
168:       <span class="ruby-identifier">j</span> = <span class="ruby-identifier">match</span>
169:       <span class="ruby-identifier">handle_comment</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">4</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">j</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)])
170:       <span class="ruby-identifier">j</span> = <span class="ruby-identifier">match</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">matched_length</span>
171:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">j</span><span class="ruby-operator">-</span><span class="ruby-identifier">i</span>
172:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000033" class="method-detail">
        <a name="M000033"></a>

        <div class="method-heading">
          <a href="#M000033" class="method-signature">
          <span class="method-name">parse_endtag</span><span class="method-args">(i)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000033-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000033-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 212</span>
212:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_endtag</span>(<span class="ruby-identifier">i</span>)
213:       <span class="ruby-identifier">rawdata</span> = <span class="ruby-ivar">@rawdata</span>
214:       <span class="ruby-identifier">j</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Endbracket</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
215:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">j</span>
216:       <span class="ruby-identifier">tag</span> = (<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-identifier">j</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>].<span class="ruby-identifier">strip</span>).<span class="ruby-identifier">downcase</span>
217:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?&gt;</span> <span class="ruby-comment cmt">#</span>
218:         <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
219:       <span class="ruby-keyword kw">end</span>
220:       <span class="ruby-identifier">finish_endtag</span>(<span class="ruby-identifier">tag</span>)
221:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">j</span>
222:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000036" class="method-detail">
        <a name="M000036"></a>

        <div class="method-heading">
          <a href="#M000036" class="method-signature">
          <span class="method-name">parse_special</span><span class="method-args">(i)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000036-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000036-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 271</span>
271:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_special</span>(<span class="ruby-identifier">i</span>)
272:       <span class="ruby-identifier">rawdata</span> = <span class="ruby-ivar">@rawdata</span>
273:       <span class="ruby-identifier">match</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Endbracket</span>, <span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>)
274:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">match</span>
275:       <span class="ruby-identifier">matched_length</span> = <span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">length</span>
276:       <span class="ruby-identifier">handle_special</span>(<span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span><span class="ruby-operator">..</span>(<span class="ruby-identifier">match</span><span class="ruby-operator">-</span><span class="ruby-value">1</span>)])
277:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">match</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">matched_length</span>
278:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000032" class="method-detail">
        <a name="M000032"></a>

        <div class="method-heading">
          <a href="#M000032" class="method-signature">
          <span class="method-name">parse_starttag</span><span class="method-args">(i)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000032-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000032-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 174</span>
174:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">parse_starttag</span>(<span class="ruby-identifier">i</span>)
175:       <span class="ruby-identifier">rawdata</span> = <span class="ruby-ivar">@rawdata</span>
176:       <span class="ruby-identifier">j</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Endbracket</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
177:       <span class="ruby-keyword kw">return</span> <span class="ruby-keyword kw">nil</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">j</span>
178:       <span class="ruby-identifier">attrs</span> = []
179:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">i</span><span class="ruby-operator">+</span><span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?&gt;</span> <span class="ruby-comment cmt">#</span>
180:         <span class="ruby-comment cmt"># SGML shorthand: &lt;&gt; == &lt;last open tag seen&gt;</span>
181:         <span class="ruby-identifier">k</span> = <span class="ruby-identifier">j</span>
182:         <span class="ruby-identifier">tag</span> = <span class="ruby-ivar">@lasttag</span>
183:       <span class="ruby-keyword kw">else</span>
184:         <span class="ruby-identifier">match</span> = <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Tagfind</span>, <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span>)
185:         <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">match</span>
186:           <span class="ruby-identifier">raise</span> <span class="ruby-constant">RuntimeError</span>, <span class="ruby-value str">'unexpected call to parse_starttag'</span>
187:         <span class="ruby-keyword kw">end</span>
188:         <span class="ruby-identifier">k</span> = <span class="ruby-identifier">i</span> <span class="ruby-operator">+</span> <span class="ruby-value">1</span> <span class="ruby-operator">+</span> (<span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">length</span>)
189:         <span class="ruby-identifier">tag</span> = <span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">downcase</span>
190:         <span class="ruby-ivar">@lasttag</span> = <span class="ruby-identifier">tag</span>
191:       <span class="ruby-keyword kw">end</span>
192:       <span class="ruby-keyword kw">while</span> <span class="ruby-identifier">k</span> <span class="ruby-operator">&lt;</span> <span class="ruby-identifier">j</span>
193:         <span class="ruby-keyword kw">break</span> <span class="ruby-keyword kw">unless</span> <span class="ruby-identifier">rawdata</span>.<span class="ruby-identifier">index</span>(<span class="ruby-constant">Attrfind</span>, <span class="ruby-identifier">k</span>)
194:         <span class="ruby-identifier">matched_length</span> = <span class="ruby-identifier">$&amp;</span>.<span class="ruby-identifier">length</span>
195:         <span class="ruby-identifier">attrname</span>, <span class="ruby-identifier">rest</span>, <span class="ruby-identifier">attrvalue</span> = <span class="ruby-identifier">$1</span>, <span class="ruby-identifier">$2</span>, <span class="ruby-identifier">$3</span>
196:         <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-identifier">rest</span>
197:           <span class="ruby-identifier">attrvalue</span> = <span class="ruby-value str">''</span> <span class="ruby-comment cmt"># was: = attrname</span>
198:         <span class="ruby-keyword kw">elsif</span> (<span class="ruby-identifier">attrvalue</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?'</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">attrvalue</span>[<span class="ruby-value">-1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?'</span>) <span class="ruby-keyword kw">or</span>
199:             (<span class="ruby-identifier">attrvalue</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?&quot;</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">attrvalue</span>[<span class="ruby-value">-1</span>,<span class="ruby-value">1</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?&quot;</span>)
200:           <span class="ruby-identifier">attrvalue</span> = <span class="ruby-identifier">attrvalue</span>[<span class="ruby-value">1</span><span class="ruby-operator">..</span><span class="ruby-value">-2</span>]
201:         <span class="ruby-keyword kw">end</span>
202:         <span class="ruby-identifier">attrs</span> <span class="ruby-operator">&lt;&lt;</span> [<span class="ruby-identifier">attrname</span>.<span class="ruby-identifier">downcase</span>, <span class="ruby-identifier">attrvalue</span>]
203:         <span class="ruby-identifier">k</span> <span class="ruby-operator">+=</span> <span class="ruby-identifier">matched_length</span>
204:       <span class="ruby-keyword kw">end</span>
205:       <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">rawdata</span>[<span class="ruby-identifier">j</span>] <span class="ruby-operator">==</span> <span class="ruby-value">?&gt;</span> <span class="ruby-comment cmt">#</span>
206:         <span class="ruby-identifier">j</span> <span class="ruby-operator">+=</span> <span class="ruby-value">1</span>
207:       <span class="ruby-keyword kw">end</span>
208:       <span class="ruby-identifier">finish_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attrs</span>)
209:       <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">j</span>
210:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000039" class="method-detail">
        <a name="M000039"></a>

        <div class="method-heading">
          <a href="#M000039" class="method-signature">
          <span class="method-name">report_unbalanced</span><span class="method-args">(tag)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000039-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000039-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 288</span>
288:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">report_unbalanced</span>(<span class="ruby-identifier">tag</span>)
289:       <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@verbose</span>
290:         <span class="ruby-identifier">print</span> <span class="ruby-value str">'*** Unbalanced &lt;/'</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">tag</span> <span class="ruby-operator">+</span> <span class="ruby-value str">'&gt;'</span>, <span class="ruby-value str">&quot;\n&quot;</span>
291:         <span class="ruby-identifier">print</span> <span class="ruby-value str">'*** Stack:'</span>, <span class="ruby-keyword kw">self</span>.<span class="ruby-identifier">stack</span>, <span class="ruby-value str">&quot;\n&quot;</span>
292:       <span class="ruby-keyword kw">end</span>
293:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000024" class="method-detail">
        <a name="M000024"></a>

        <div class="method-heading">
          <a href="#M000024" class="method-signature">
          <span class="method-name">reset</span><span class="method-args">()</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000024-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000024-source">
<pre>
    <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 35</span>
35:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">reset</span>
36:       <span class="ruby-ivar">@rawdata</span> = <span class="ruby-value str">''</span>
37:       <span class="ruby-ivar">@stack</span> = []
38:       <span class="ruby-ivar">@lasttag</span> = <span class="ruby-value str">'???'</span>
39:       <span class="ruby-ivar">@nomoretags</span> = <span class="ruby-keyword kw">false</span>
40:       <span class="ruby-ivar">@literal</span> = <span class="ruby-keyword kw">false</span>
41:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000027" class="method-detail">
        <a name="M000027"></a>

        <div class="method-heading">
          <a href="#M000027" class="method-signature">
          <span class="method-name">setliteral</span><span class="method-args">(*args)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000027-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000027-source">
<pre>
    <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 52</span>
52:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setliteral</span>(<span class="ruby-operator">*</span><span class="ruby-identifier">args</span>)
53:       <span class="ruby-ivar">@literal</span> = <span class="ruby-keyword kw">true</span>
54:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000026" class="method-detail">
        <a name="M000026"></a>

        <div class="method-heading">
          <a href="#M000026" class="method-signature">
          <span class="method-name">setnomoretags</span><span class="method-args">()</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000026-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000026-source">
<pre>
    <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 47</span>
47:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">setnomoretags</span>
48:       <span class="ruby-ivar">@nomoretags</span> = <span class="ruby-keyword kw">true</span>
49:       <span class="ruby-ivar">@literal</span> = <span class="ruby-keyword kw">true</span>
50:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000047" class="method-detail">
        <a name="M000047"></a>

        <div class="method-heading">
          <a href="#M000047" class="method-signature">
          <span class="method-name">unknown_charref</span><span class="method-args">(ref)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000047-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000047-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 327</span>
327:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_charref</span>(<span class="ruby-identifier">ref</span>)
328:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000046" class="method-detail">
        <a name="M000046"></a>

        <div class="method-heading">
          <a href="#M000046" class="method-signature">
          <span class="method-name">unknown_endtag</span><span class="method-args">(tag)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000046-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000046-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 325</span>
325:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_endtag</span>(<span class="ruby-identifier">tag</span>)
326:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000048" class="method-detail">
        <a name="M000048"></a>

        <div class="method-heading">
          <a href="#M000048" class="method-signature">
          <span class="method-name">unknown_entityref</span><span class="method-args">(ref)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000048-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000048-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 329</span>
329:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_entityref</span>(<span class="ruby-identifier">ref</span>)
330:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>

      <div id="method-M000045" class="method-detail">
        <a name="M000045"></a>

        <div class="method-heading">
          <a href="#M000045" class="method-signature">
          <span class="method-name">unknown_starttag</span><span class="method-args">(tag, attrs)</span>
          </a>
        </div>
      
        <div class="method-description">
          <p><a class="source-toggle" href="#"
            onclick="toggleCode('M000045-source');return false;">[Source]</a></p>
          <div class="method-source-code" id="M000045-source">
<pre>
     <span class="ruby-comment cmt"># File lib/feedparser/sgml-parser.rb, line 323</span>
323:     <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attrs</span>)
324:     <span class="ruby-keyword kw">end</span>
</pre>
          </div>
        </div>
      </div>


    </div>


  </div>


<div id="validator-badges">
  <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
</div>

</body>
</html>