Вам следует прочитать главу 10 («Отчеты об ошибках и восстановление») из книги Терренса Парра «Полное руководство по ANTLR».
Не зная, какой целевой язык вы используете, вам будет сложно точно сказать, что вам делать. Но я предполагаю, что вы используете цель Java, и вы можете исправить меня, если я ошибаюсь.
Когда распознаватель ANTLR не соответствует входной строке, он генерирует очень специфическое исключение, основанное на контексте сбоя. (Существует девять различных типов исключений, RecognitionException является корневым типом, и у него есть восемь собственных подклассов: MismatchedTokenException, MismatchedTreeNodeException, NoViableAltException, EarlyExitException, FailedPredicateException, MismatchedRangeException, MismatchedSetException, Mismatched *etException, Mismatched *et5.
Корневой тип исключения (RecognitionException) имеет несколько удобных открытых полей, на которые вы, возможно, захотите взглянуть (в частности: «index», «line» и «charPositionInLine»). Поле index указывает точную позицию символа, в которой была обнаружена ошибка. Поля "line" и "charPositionInLine" довольно понятны. Вот JavaDoc:
http://www.antlr.org/api/Java/classorg_1_1antlr_1_1runtime_1_1_recognition_exception.html