From 94677bc79eaf67314975cac9f1aebb68220c6bd3 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Tue, 30 Aug 2011 16:20:38 -0400 Subject: [PATCH] report line and column number on parsing error --- parser/Parser.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/parser/Parser.py b/parser/Parser.py index 3255a89..5622572 100644 --- a/parser/Parser.py +++ b/parser/Parser.py @@ -1,4 +1,5 @@ +import sys import ply.yacc as yacc from Lexer import Lexer from nodes import * @@ -48,6 +49,9 @@ class Parser(object): def p_error(self, p): self.saw_error = True + col = p.lexpos - max(0, self.input.rfind('\n', 0, p.lexpos)) + sys.stdout.write('Error: Unexpected %s at line %d, col %d\n' % ( + p.type, p.lineno, col)) def parse(self): return self.parser.parse(self.input, lexer = self.lexer)