Files
@ afabea7d0e61
Branch filter:
Location: Diana/src/diana/sgfparser/__init__.py - annotation
afabea7d0e61
606 B
text/x-python
renamed sgfparser, game_record, prop_values
afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 afabea7d0e61 | def skip_whitespace(s, start):
i = start
while i < len(s) and s[i].isspace():
i += 1
return i
def str_row_col(s, i):
k = 0
(r, c) = (0, 0)
for (r, line) in enumerate(s.splitlines(True)):
c = i-k
if k+len(line) > i:
break
else:
k += len(line)
return (r+1, c+1)
class ParserError(Exception):
def __init__(self, msg, s, i):
self.msg = msg
(self.row, self.col) = str_row_col(s, i)
self.context = s[i:i+16]
def __str__(self):
return "{0} at row {1}, col {2}, got '{3}...' instead".format(self.msg, self.row, self.col, self.context)
class ParserWarning(ParserError):
pass
|