Show More
@@ -185,8 +185,11 b' class Parser(Colorable):' | |||||
185 |
|
185 | |||
186 | super(Parser, self).__init__(parent=parent) |
|
186 | super(Parser, self).__init__(parent=parent) | |
187 |
|
187 | |||
188 |
self.color_table = color_table |
|
188 | self.color_table = color_table if color_table else ANSICodeColors | |
189 | self.out = out |
|
189 | self.out = out | |
|
190 | self.pos = None | |||
|
191 | self.lines = None | |||
|
192 | self.raw = None | |||
190 | if not style: |
|
193 | if not style: | |
191 | self.style = self.default_style |
|
194 | self.style = self.default_style | |
192 | else: |
|
195 | else: | |
@@ -232,7 +235,6 b' class Parser(Colorable):' | |||||
232 | self.out.write(raw) |
|
235 | self.out.write(raw) | |
233 | if string_output: |
|
236 | if string_output: | |
234 | return raw,error |
|
237 | return raw, error | |
235 | else: |
|
|||
236 |
|
|
238 | return None, error | |
237 |
|
239 | |||
238 | # local shorthands |
|
240 | # local shorthands | |
@@ -247,9 +249,10 b' class Parser(Colorable):' | |||||
247 | pos = 0 |
|
249 | pos = 0 | |
248 | raw_find = self.raw.find |
|
250 | raw_find = self.raw.find | |
249 | lines_append = self.lines.append |
|
251 | lines_append = self.lines.append | |
250 |
while |
|
252 | while True: | |
251 | pos = raw_find('\n', pos) + 1 |
|
253 | pos = raw_find('\n', pos) + 1 | |
252 |
if not pos: |
|
254 | if not pos: | |
|
255 | break | |||
253 | lines_append(pos) |
|
256 | lines_append(pos) | |
254 | lines_append(len(self.raw)) |
|
257 | lines_append(len(self.raw)) | |
255 |
|
258 | |||
@@ -277,11 +280,11 b' class Parser(Colorable):' | |||||
277 | return (output, error) |
|
280 | return (output, error) | |
278 | return (None, error) |
|
281 | return (None, error) | |
279 |
|
282 | |||
280 | def _inner_call_(self, toktype, toktext, start_pos, end_pos, line): |
|
283 | ||
|
284 | def _inner_call_(self, toktype, toktext, start_pos): | |||
281 | """like call but write to a temporary buffer""" |
|
285 | """like call but write to a temporary buffer""" | |
282 | buff = StringIO() |
|
286 | buff = StringIO() | |
283 |
|
|
287 | srow, scol = start_pos | |
284 | (erow,ecol) = end_pos |
|
|||
285 | colors = self.colors |
|
288 | colors = self.colors | |
286 | owrite = buff.write |
|
289 | owrite = buff.write | |
287 |
|
290 | |||
@@ -310,8 +313,6 b' class Parser(Colorable):' | |||||
310 | toktype = _KEYWORD |
|
313 | toktype = _KEYWORD | |
311 | color = colors.get(toktype, colors[_TEXT]) |
|
314 | color = colors.get(toktype, colors[_TEXT]) | |
312 |
|
315 | |||
313 | #print '<%s>' % toktext, # dbg |
|
|||
314 |
|
||||
315 | # Triple quoted strings must be handled carefully so that backtracking |
|
316 | # Triple quoted strings must be handled carefully so that backtracking | |
316 | # in pagers works correctly. We need color terminators on _each_ line. |
|
317 | # in pagers works correctly. We need color terminators on _each_ line. | |
317 | if linesep in toktext: |
|
318 | if linesep in toktext: | |
@@ -327,5 +328,4 b' class Parser(Colorable):' | |||||
327 | def __call__(self, toktype, toktext, start_pos, end_pos, line): |
|
328 | def __call__(self, toktype, toktext, start_pos, end_pos, line): | |
328 | """ Token handler, with syntax highlighting.""" |
|
329 | """ Token handler, with syntax highlighting.""" | |
329 | self.out.write( |
|
330 | self.out.write( | |
330 |
self._inner_call_(toktype, toktext, start_pos |
|
331 | self._inner_call_(toktype, toktext, start_pos)) | |
331 |
|
General Comments 0
You need to be logged in to leave comments.
Login now