numberrange returns [String value]
: numberrangesub
{
String numberRange = ($numberrangesub.text);
String [] v = numberRange.split(",");
if ( Integer.parseInt(v[0].trim()) < Integer.parseInt(v[1].trim())) $value =numberRange;
else throw new RecognitionException();
}
;
上記の ANTLR コードを遵守してください。これで、のようなユーザーフレンドリーなエラーメッセージをスローしたいと思います"from value should be less than to value in BETWEEN clause"
。私はこのように期待していますがRecognitionException("from value should be less than to value in BETWEEN clause");
、antlrは上記のように受け入れませんでした.
Antlrによって生成されたJavaクラスを呼び出しているJavaクラス。以下のように扱っています。
try
{
parser.numberRangeCheck();
}
catch (RecognitionException e)
{
throw createException("Invalid Business logic syntax at " + parser.getErrorHeader(e) + ", " + parser.getErrorMessage(e, null), Level.INFO, logger);
}
どんな助けでも感謝します。