Как собирать ошибки во время выполнения, предоставляемые анализатором в Antlr4
Я обновил Antlr 3 до Antlr 4. Я использовал этот код для отлова исключений с помощью этого кода. Но это не работает для Antlr 4.
partial class XParser
{
public override void ReportError(RecognitionException e)
{
base.ReportError(e);
Console.WriteLine("Error in Parser at line " + ":" + e.OffendingToken.Column + e.OffendingToken.Line + e.Message);
}
}
Это ошибка, которая появляется
'Parser.ReportError(Antlr4.Runtime.RecognitionException)': no suitable method found to override
В Antlr 4, каков ожидаемый способ накопления ошибок, возникающих во входном потоке. Я не смог найти способ добиться этого в сети. Пожалуйста, дайте мне несколько рекомендаций.
РЕДАКТИРОВАТЬ:
Я реализовал XParser, как показано ниже
partial class XParser : IAntlrErrorListener
{
public void SyntaxError(IRecognizer recognizer, IToken offendingSymbol, int line, int charPositionInLine, string msg, RecognitionException e)
{
Console.WriteLine("Error in parser at line " + ":" + e.OffendingToken.Column + e.OffendingToken.Line + e.Message);
}
}
Как вы сказали, я могу расширить этот класс синтаксического анализатора, используя любой из упомянутых классов. Но я не смог зарегистрировать этого слушателя, в основной программе меня смущает передача аргумента в качествеlistener
, Пожалуйста, помогите мне с регистрацией.
Как я вижу, эти классы могут генерировать более значимые сообщения об ошибках.т они?