Lines Matching full:self
37 # between tags is passed to the parser by calling self.handle_data()
40 # self.handle_entityref() with the entity reference as argument.
72 def __init__(self, verbose=0):
73 self.verbose = verbose
74 self.reset()
77 def reset(self):
78 self.rawdata = ''
79 self.stack = []
80 self.lasttag = '???'
81 self.nomoretags = 0
82 self.literal = 0
85 def setnomoretags(self):
86 self.nomoretags = self.literal = 1
89 def setliteral(self, *args):
90 self.literal = 1
96 def feed(self, data):
97 self.rawdata = self.rawdata + data
98 self.goahead(0)
101 def close(self):
102 self.goahead(1)
107 def goahead(self, end):
108 rawdata = self.rawdata
112 if self.nomoretags:
113 self.handle_data(rawdata[i:n])
119 if i < j: self.handle_data(rawdata[i:j])
124 if self.literal:
125 self.handle_data(rawdata[i])
128 k = self.parse_starttag(i)
133 k = self.parse_endtag(i)
136 self.literal = 0
139 if self.literal:
140 self.handle_data(rawdata[i])
143 k = self.parse_comment(i)
149 if self.literal:
150 self.handle_data(rawdata[i])
159 self.handle_charref(name)
166 self.handle_entityref(name)
176 self.handle_data(rawdata[i])
182 self.handle_data(rawdata[i:j])
186 self.handle_data(rawdata[i:n])
188 self.rawdata = rawdata[i:]
192 def parse_comment(self, i):
193 rawdata = self.rawdata
200 self.handle_comment(rawdata[i+4: j])
205 def parse_starttag(self, i):
206 rawdata = self.rawdata
217 self.finish_shorttag(tag, data)
230 tag = self.lasttag
237 self.lasttag = tag
251 self.finish_starttag(tag, attrs)
255 def parse_endtag(self, i):
256 rawdata = self.rawdata
264 self.finish_endtag(tag)
268 def finish_shorttag(self, tag, data):
269 self.finish_starttag(tag, [])
270 self.handle_data(data)
271 self.finish_endtag(tag)
275 def finish_starttag(self, tag, attrs):
277 method = getattr(self, 'start_' + tag)
280 method = getattr(self, 'do_' + tag)
282 self.unknown_starttag(tag, attrs)
285 self.handle_starttag(tag, method, attrs)
288 self.stack.append(tag)
289 self.handle_starttag(tag, method, attrs)
293 def finish_endtag(self, tag):
295 found = len(self.stack) - 1
297 self.unknown_endtag(tag)
300 if tag not in self.stack:
302 method = getattr(self, 'end_' + tag)
304 self.unknown_endtag(tag)
306 found = len(self.stack)
308 if self.stack[i] == tag: found = i
309 while len(self.stack) > found:
310 tag = self.stack[-1]
312 method = getattr(self, 'end_' + tag)
316 self.handle_endtag(tag, method)
318 self.unknown_endtag(tag)
319 del self.stack[-1]
322 def handle_starttag(self, tag, method, attrs):
326 def handle_endtag(self, tag, method):
330 def report_unbalanced(self, tag):
331 if self.verbose:
333 print '*** Stack:', self.stack
336 def handle_charref(self, name):
340 self.unknown_charref(name)
343 self.unknown_charref(name)
345 self.handle_data(chr(n))
351 def handle_entityref(self, name):
352 table = self.entitydefs
354 self.handle_data(table[name])
356 self.unknown_entityref(name)
360 def handle_data(self, data):
364 def handle_comment(self, data):
368 def unknown_starttag(self, tag, attrs): pass
369 def unknown_endtag(self, tag): pass
370 def unknown_charref(self, ref): pass
371 def unknown_entityref(self, ref): pass
380 def __init__(self, verbose=0):
381 self.verbose = verbose
382 self.reset()
385 def reset(self):
386 self.rawdata = ''
387 self.stack = []
388 self.lasttag = '???'
389 self.nomoretags = 0
390 self.literal = 0
391 self.parser = sgmlop.SGMLParser()
392 self.feed = self.parser.feed
393 self.parser.register(self)
396 def setnomoretags(self):
397 self.nomoretags = self.literal = 1 # FIXME!
400 def setliteral(self, *args):
401 self.literal = 1 # FIXME!
406 def feed(self, data): # overridden by reset
407 self.parser.feed(data)
410 def close(self):
412 self.parser.close()
414 self.parser = None
417 def finish_shorttag(self, tag, data):
418 self.finish_starttag(tag, [])
419 self.handle_data(data)
420 self.finish_endtag(tag)
424 def finish_starttag(self, tag, attrs):
427 method = getattr(self, 'start_' + tag)
430 method = getattr(self, 'do_' + tag)
432 self.unknown_starttag(tag, attrs)
435 self.handle_starttag(tag, method, attrs)
438 self.stack.append(tag)
439 self.handle_starttag(tag, method, attrs)
443 def finish_endtag(self, tag):
445 found = len(self.stack) - 1
447 self.unknown_endtag(tag)
450 if tag not in self.stack:
452 method = getattr(self, 'end_' + tag)
454 self.unknown_endtag(tag)
456 found = len(self.stack)
458 if self.stack[i] == tag: found = i
459 while len(self.stack) > found:
460 tag = self.stack[-1]
462 method = getattr(self, 'end_' + tag)
466 self.handle_endtag(tag, method)
468 self.unknown_endtag(tag)
469 del self.stack[-1]
472 def handle_starttag(self, tag, method, attrs):
476 def handle_endtag(self, tag, method):
480 def report_unbalanced(self, tag):
481 if self.verbose:
483 print '*** Stack:', self.stack
486 self, name):
493 def handle_entityref(self, name):
495 data = self.entitydefs[name]
497 self.unknown_entityref(name)
499 self.handle_data(data)
502 def handle_data(self, data):
506 # def handle_comment(self, data):
510 def unknown_starttag(self, tag, attrs): pass
511 def unknown_endtag(self, tag): pass
512 def unknown_charref(self, ref): pass
513 def unknown_entityref(self, ref): pass
529 def __init__(self, verbose=0):
530 self.testdata = ""
531 SGMLParser.__init__(self, verbose)
533 def handle_data(self, data):
534 self.testdata = self.testdata + data
535 if len(`self.testdata`) >= 70:
536 self.flush()
538 def flush(self):
539 data = self.testdata
541 self.testdata = ""
544 def handle_comment(self, data):
545 self.flush()
551 def unknown_starttag(self, tag, attrs):
552 self.flush()
561 def unknown_endtag(self, tag):
562 self.flush()
565 def unknown_entityref(self, ref):
566 self.flush()
569 def unknown_charref(self, ref):
570 self.flush()
573 def close(self):
574 SGMLParser.close(self)
575 self.flush()