diff options
Diffstat (limited to 'reader.py')
-rw-r--r-- | reader.py | 19 |
1 files changed, 18 insertions, 1 deletions
@@ -143,7 +143,7 @@ class Reader(object): self.update(length) return self.buffer[self.pointer : self.pointer + length] - def forward(self, length=1): + def forward_1_1(self, length=1): # type: (int) -> None if self.pointer + length + 1 >= len(self.buffer): self.update(length + 1) @@ -160,6 +160,23 @@ class Reader(object): self.column += 1 length -= 1 + def forward(self, length=1): + # type: (int) -> None + if self.pointer + length + 1 >= len(self.buffer): + self.update(length + 1) + while length != 0: + ch = self.buffer[self.pointer] + self.pointer += 1 + self.index += 1 + if ch == u'\n' or ( + ch == u'\r' and self.buffer[self.pointer] != u'\n' + ): + self.line += 1 + self.column = 0 + elif ch != u'\uFEFF': + self.column += 1 + length -= 1 + def get_mark(self): # type: () -> Any if self.stream is None: |