Lines Matching refs:self
316 def __init__(self, fp, window=5, lineno=1):
317 self.fp = fp
318 self.window = 5
319 self.lineno = 1
320 self.eoflookahead = 0
321 self.lookahead = []
322 self.buffer = []
323 def fill(self):
324 while len(self.lookahead) < self.window and not self.eoflookahead:
325 line = self.fp.readline()
327 self.eoflookahead = 1
329 self.lookahead.append(line)
330 def readline(self):
331 self.fill()
332 if not self.lookahead:
334 line = self.lookahead.pop(0)
335 self.buffer.append(line)
336 self.lineno += 1
338 def __getitem__(self, index):
339 self.fill()
340 bufstart = self.lineno - len(self.buffer)
341 lookend = self.lineno + len(self.lookahead)
342 if bufstart <= index < self.lineno:
343 return self.buffer[index - bufstart]
344 if self.lineno <= index < lookend:
345 return self.lookahead[index - self.lineno]
347 def report(self, first, last=None, mark="*"):
352 line = self[first]