Files
@ ef10e626e192
Branch filter:
Location: Diana/src/sgfParser/__init__.py - annotation
ef10e626e192
558 B
text/x-python
exporting game info, added GameRecord wrapper
b66f5379b832 b66f5379b832 b66f5379b832 b66f5379b832 b66f5379b832 b66f5379b832 c6e20613189d 0ee71f3564f4 c6e20613189d 0ee71f3564f4 c6e20613189d c6e20613189d c6e20613189d c6e20613189d c6e20613189d c6e20613189d 0ee71f3564f4 0ee71f3564f4 b66f5379b832 c6e20613189d c6e20613189d 69ccf3e0aefe 69ccf3e0aefe c6e20613189d c6e20613189d 69ccf3e0aefe 0ee71f3564f4 0ee71f3564f4 0ee71f3564f4 0ee71f3564f4 | def skipWhitespace(s,start):
i=start
while i<len(s) and s[i].isspace(): i+=1
return i
def strRowCol(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=strRowCol(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
|