У меня проблемы с получением "@header" или любого другого правила @ для работы в ANTLR. С очень простой грамматикой, как это:
grammar test;
options {
language = CSharp2;
}
@header {
using System.Collections.Generic;
}
tokens {
TEST;
}
something : TEST*;
TEST : '0' .. '9';
Кажется, что это соответствует документации ANTLR и различным другим онлайн-примерам, но когда я пытаюсь сгенерировать вывод через ANTLRWorks v1.4 или ANTLR jar v3.2, я получаю следующую ошибку:
Невозможно сгенерировать грамматику, потому что:
ошибка (100): [путь] \ test.g: 11: 1 синтаксическая ошибка: antlr: [путь] \ test.g: 11: 1
неожиданный токен: токены {
Который я не могу поколебать. Я могу успешно генерировать лексер и парсер без @header, включенного в грамматику. У меня последняя версия Java на Windows:
Java-версия "1.6.0_22"
Java (TM) SE Runtime Environment (сборка 1.6.0_22-b04)
Клиентская виртуальная машина Java HotSpot (TM) (сборка 17.1-b03, смешанный режим, совместное использование)
Я предполагаю, что это что-то очень простое, и я просто слеп к этому, поэтому, пожалуйста, принесите очевидные ответы.