ANTLR4の質問でエラーを処理するという受け入れられた回答の指示に従った後、次のエラーに行き詰まりました。
CustomErrorListener.java:11: シンボル symbol が見つかりません
: 変数 REPORT_SYNTAX_ERRORS
場所: クラス CustomErrorListener
ANTLR4 のエラー処理方法が ANTLR3 とは異なることを理解し、前述の質問とその回答に基づいて、次のエラー リスナーを実装することになりました。
public class DescriptiveErrorListener extends BaseErrorListener {
public static DescriptiveErrorListener INSTANCE = new DescriptiveErrorListener();
@Override
public void syntaxError(Recognizer<?, ?> recognizer, Object offendingSymbol,
int line, int charPositionInLine,
String msg, RecognitionException e)
{
if (!REPORT_SYNTAX_ERRORS) {
return;
}
String sourceName = recognizer.getInputStream().getSourceName();
if (!sourceName.isEmpty()) {
sourceName = String.format("%s:%d:%d: ", sourceName, line, charPositionInLine);
}
System.err.println(sourceName+"line "+line+":"+charPositionInLine+" "+msg);
}
}
REPORT_SYNTAX_ERRORS
残念ながら、ANTLR ドキュメントのどこにもこのフィールドに関する情報は見つかりませんでした。これが何に由来するかについての手がかりはありますか?