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();
}
;
Veuillez respecter le code ANTLR ci-dessus. En cela, je veux lancer un message d'erreur facile à utiliser comme "from value should be less than to value in BETWEEN clause"
. Je m'attends comme ça RecognitionException("from value should be less than to value in BETWEEN clause");
Mais antlr n'a pas accepté comme ci-dessus.obtenir des messages d'erreur définis par l'utilisateur en utilisant antlr3
En classe java où je fais appel à la classe Java générée par Antlr. Je gère comme suit.
try
{
parser.numberRangeCheck();
}
catch (RecognitionException e)
{
throw createException("Invalid Business logic syntax at " + parser.getErrorHeader(e) + ", " + parser.getErrorMessage(e, null), Level.INFO, logger);
}
Toute aide sera précieuse.
Pouvez-vous utiliser le formatter de code sur le code ANTLR? Cela rendrait la lecture beaucoup plus facile. – Jorn
retourne NumberRange [Valeur de chaîne] : numberrangesub { Chaîne NumberRange = (de numberrangesub.text de $); Chaîne [] v = numéroRange.split (","); if (Integer.parseInt (v [0] .trim())
Ashok
J'utilise le formateur de code, mais il apparaît non formaté après je l'ai posté.Je ne sais pas pourquoi il se passe? – Ashok