J'ai une règle antlr simple pour attraper une phrase comme "running.exception = 2.j = 15" et je veux identifier la valeur est initialisée à 2 dans ce cas.ANTLR mélange INT avec FLOAT
Toutefois, ANTLR considère 2. comme un flottant. Y at-il de toute façon pour l'identifier comme un int?
Ma règle:
exception
:
(
ID*
'.exception='
INT
'.'
ID*
);
essayé d'ajouter (('0'. .'9 ')'. 'CHAR) {$ type = INT;} pour flotter mais il considérait 2.j comme INT! –
mais parfois 2.5 est un flottant mais 2.j est 2 comme INT et j comme ID. La règle précédente, j'ai ajouté à FLOAT et il a attrapé 2.j comme INT. Aucune suggestion? –
Ah, je vois ce que tu veux dire. Voyez si ma réponse résout le problème. –