(msg, doc, pos, end=None)
| 13 | |
| 14 | |
| 15 | def errmsg(msg, doc, pos, end=None): |
| 16 | lineno, colno = linecol(doc, pos) |
| 17 | msg = msg.replace('%r', repr(doc[pos:pos + 1])) |
| 18 | if end is None: |
| 19 | fmt = '%s: line %d column %d (char %d)' |
| 20 | return fmt % (msg, lineno, colno, pos) |
| 21 | endlineno, endcolno = linecol(doc, end) |
| 22 | fmt = '%s: line %d column %d - line %d column %d (char %d - %d)' |
| 23 | return fmt % (msg, lineno, colno, endlineno, endcolno, pos, end) |
| 24 | |
| 25 | |
| 26 | class JSONDecodeError(ValueError): |