Utilisation de @header dans ANTLR
j'ai du mal à faire fonctionner la règle" @header " ou toute autre @ rule dans ANTLR. Avec un très de base de la grammaire, comme ceci:
grammar test;
options {
language = CSharp2;
}
@header {
using System.Collections.Generic;
}
tokens {
TEST;
}
something : TEST*;
TEST : '0' .. '9';
cela semble adhérer à la documentation ANTLR et divers autres exemples en ligne, mais quand j'essaie de générer la sortie par L'un ou L'autre V1 D'ANTLRWorks.4 ou le ANTLR jar v3.2, I get the following error:
Ne peut pas générer la grammaire parce que:
erreur(100): [chemin]test.g:11: 1 syntaxe error: antlr: [chemin]test.g: 11: 1 jeton inattendu: jetons {
que je n'arrive pas à secouer. Je suis capable de générer le lexer et l'analyseur avec succès sans l'en-tête @inclus dans la grammaire. J'ai la dernière version de Java sur Windows:
version java " 1.6.0_22" Java (TM) SE environnement D'exécution (build 1.6.0_22-b04) Java HotSpot (TM) Client VM (build 17.1-b03, mixed mode, sharing)
je suppose que c'est quelque chose de très simple et Je suis aveugle, alors apportez les réponses évidentes.
1 réponses
l'erreur est due au fait que ces blocs doivent apparaître dans un certain ordre.
- options
- jetons
- @en-tête
- @les membres
ensuite vos règles