Je n'arrive pas à faire fonctionner "@header" ou toute autre règle @ dans ANTLR. Avec un Grammer très basique, comme ceci:Utilisation de @header dans ANTLR
grammar test;
options {
language = CSharp2;
}
@header {
using System.Collections.Generic;
}
tokens {
TEST;
}
something : TEST*;
TEST : '0' .. '9';
Cela semble adhérer à la documentation de ANTLR et d'autres exemples en ligne, mais lorsque je tente de générer la sortie soit par ANTLRWorks v1.4 ou le pot de ANTLR v3. 2, j'obtiens l'erreur suivante:
Cannot generate the grammar because:
error(100): [path]\test.g:11:1 syntax error: antlr: [path]\test.g:11:1 unexpected token: tokens {
Ce que je ne peux pas sembler secouer. Je suis capable de générer le lexeur et l'analyseur avec succès sans le @header inclus dans la grammaire. J'ai la dernière version de Java sur Windows:
java version "1.6.0_22" Java(TM) SE Runtime Environment (build 1.6.0_22-b04) Java HotSpot(TM) Client VM (build 17.1-b03, mixed mode, sharing)
Je suppose que cela est la pierre de quelque chose de simple et je suis juste aveugle, donc s'il vous plaît apporter des réponses évidentes.
Vous avez raison, monsieur. Merci beaucoup. – Moxen
Je crois que dans la prochaine version d'ANTLR (v4), l'ordre de ces blocs n'a pas d'importance. –