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並沒有像上面那樣接受。使用antlr3獲取用戶定義的錯誤消息
在我正在調用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);
}
任何幫助將appriciated。
你可以在ANTLR代碼上使用代碼格式化程序嗎?這會讓閱讀變得更容易。 – Jorn 2009-10-17 07:44:29
numberrange returns [String value] :numberrangesub { String numberRange =($ numberrangesub.text); String [] v = numberRange.split(「,」); if(Integer.parseInt(v [0] .trim())
Ashok
2009-10-20 11:12:32
我正在使用代碼格式化程序,但它張貼後顯示無格式。我不知道它爲什麼會發生? – Ashok 2009-10-20 11:14:01