518: #line 709 "input_frame.ipk"
519: def enqueue_input(self,file, count, line):
520: self.read_buffer.append((file,count,line))
521:
522: def dequeue_input(self):
523: data = self.read_buffer[0]
524: del self.read_buffer[0]
525: return data
526:
527:
528: def line(self, number, filename):
529: self.inpt.original_file = filename
530: self.inpt.line_offset = number - inpt.src.get_lines_read()
531:
532: def readline(self):
533: while 1:
534: if self.read_buffer:
535: return self.dequeue_input()
536: try:
537: line = self.source.readline()
538: self.real_filename = self.source.get_source_name()
539: self.real_count = self.source.get_lines_read()
540: self.original_count = self.real_count + self.line_offset
541: line = string.rstrip(line)
542: self.line = string.expandtabs(line,self.tabwidth)
543: return (self.original_filename,self.original_count,self.line)
544: except KeyboardInterrupt:
545:
546: self.process.update_files = 0
547: raise KeyboardInterrupt
548: except eof:
549: if 'input' in self.process.trace:
550: print 'readline: EOF'
551: self.line = None
552: raise eoi
553: else:
554: print 'program error in readline:',sys.exc_info()
555: self.process.update_files = 0
556: