def _add_range()

in scripts/parser.py [0:0]


    def _add_range(self, start, data):
        """Insert `data` at offset `start` into self.buffer, merge loaded_ranges."""
        end = start + len(data) - 1
        if end >= len(self.buffer):
            self.buffer.extend(b'\x00' * (end + 1 - len(self.buffer)))
        self.buffer[start:end+1] = data

        # merge intervals
        new = (start, end)
        merged = []
        i = 0
        while i < len(self.loaded_ranges) and self.loaded_ranges[i][1] < new[0] - 1:
            merged.append(self.loaded_ranges[i]); i += 1
        while i < len(self.loaded_ranges) and self.loaded_ranges[i][0] <= new[1] + 1:
            new = (min(new[0], self.loaded_ranges[i][0]),
                   max(new[1], self.loaded_ranges[i][1]))
            i += 1
        merged.append(new)
        merged.extend(self.loaded_ranges[i:])
        self.loaded_ranges = merged