J'ai la grammaire ANTLR suivante:Ignorer les espaces blancs ANTLRworks
grammar mygrammar;
ASSIGNMENT
: ID '=' INT
;
ID : ('a'..'z'|'A'..'Z'|'_') ('a'..'z'|'A'..'Z'|'0'..'9'|'_')*
;
INT : '0'..'9'+
;
WS : (' '
| '\t'
| '\r'
| '\n'
) {$channel=HIDDEN;}
;
Seule la règle de CESSION est en fait le mien, le reste sont par défaut ajoutés par ANTLRWorks 1.4.3. Quand j'arrive à essayer la grammaire dans l'interpréteur, les chaînes comme "a = 5" réussissent, mais les chaînes comme "b [espace] = [espace] 6" échouent: j'obtiens une exception MismatchedTokenException à cause des espaces :
à la lecture du site ANTLR, et la règle
Ignore rules: WSet
{$channel=HIDDEN}texte/grammaire, il semble les espaces blancs doit être ignorée, mais ce n'est pas le cas.
Qu'est-ce que je fais mal?
La spécification de "affectation" au lieu de "ASSIGNMENT" l'a corrigé. – checkers