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을 사용하여 사용자 정의 오류 메시지 받기
Java 클래스에서 Antlr에 의해 생성 된 Java 클래스를 호출합니다. 나는 다음과 같이 취급하고 있습니다.
try
{
parser.numberRangeCheck();
}
catch (RecognitionException e)
{
throw createException("Invalid Business logic syntax at " + parser.getErrorHeader(e) + ", " + parser.getErrorMessage(e, null), Level.INFO, logger);
}
도움이 될 것입니다.
ANTLR 코드에서 코드 포맷터를 사용할 수 있습니까? 그렇게하면 읽는 것이 훨씬 쉬워집니다. – Jorn
숫자 범위는 [문자열 값] 을 반환합니다. numberrangesub { String numberRange = ($ numberrangesub.text); String [] v = numberRange.split (","); if (Integer.parseInt (v [0] .trim())
Ashok
코드 포맷터를 사용하고 있지만 게시 후 포맷되지 않은 것으로 나타납니다. 왜 그런지 알지 못합니다. – Ashok