diff --git a/parse.py b/parse.py index 7deb445..fa43e20 100644 --- a/parse.py +++ b/parse.py @@ -143,12 +143,14 @@ return "Conditional(test %s, success %s, failure %s)" % (self.test, self.success, self.failure) class ParseContext: - def __init__(self, parent, context): + def __init__(self, parent, context, token): self.parent = parent self.context = context + self.line = token.line + self.column = token.column def __repr__(self): - return "ParseContext(parent %s, context '%s')" % (self.parent, self.context) + return "ParseContext(parent %s, context '%s', line %i, column %i)" % (self.parent, self.context, self.line, self.column) class ParseError(BaseException): def __init__(self, context, error): @@ -171,7 +173,7 @@ return token def create_context(self, context, text): - return ParseContext(context, text) + return ParseContext(context, text, self.tokens[self.pos]) def create_error(self, context, text): return ParseError(context, text) @@ -316,6 +318,6 @@ print("Parse error: %s" % (e.error)) context = e.context while context: - print("While %s " % (context.context)) + print("While %s at line %i column %i" % (context.context, context.line, context.column)) context = context.parent return None