1: #line 89 "tanglers.ipk"
2:
3:
4:
5: class tangler_base:
6: __class_protocols__ = ['tangler']
7: def __init__(self,sink,weaver):
8: self.sink = sink
9: self.weaver = weaver
10: self.inhibit_sref = 0
11: self.pass_frame = weaver.pass_frame
12: self.master = self.pass_frame.master
13: self.process = self.master.process
14: self.language = 'data'
15:
16: def get_language(self): return self.language
17:
18: def write_comment(self,line):
19: pass
20:
21: def _writeline(self,data):
22: self.sink.writeline(data)
23:
24: def _write_and_echo(self,data):
25: self._writeline(data)
26: self.weaver.echotangle(self.sink.lines_written,data)
27:
28: def _handle_sref(self, file, count, inhibit_sref):
29: if not inhibit_sref and not self.inhibit_sref:
30: if (file != self.sink.last_source_file or
31: count != self.sink.last_source_count+1 or
32: self.sink.last_inhibit_sref):
33: self.start_section(file,count)
34: self.sink.last_inhibit_sref = 0
35: else:
36: self.sink.last_inhibit_sref = 1
37: self.sink.last_source_file = file
38: self.sink.last_source_count = count
39:
40: def writeline(self,data,file,count, inhibit_sref=0):
41: self._handle_sref(file,count,inhibit_sref)
42: self._write_and_echo(data)
43:
44: def start_section(self,file,count): pass
45:
46:
47:
48:
49: