| 164 | return m.hexdigest()[:8] |
| 165 | |
| 166 | class ParseError(Exception): |
| 167 | def __init__(self, filename, lineno, msg): |
| 168 | self.filename = filename |
| 169 | self.lineno = lineno |
| 170 | self.msg = msg |
| 171 | |
| 172 | def __str__(self): |
| 173 | return '%s:%s:%s' % (self.filename, self.lineno, self.msg) |
| 174 | |
| 175 | def skip_brackets(s, lbrac, rbrac): |
| 176 | count = 0 |