У меня возникли проблемы с получением «@header» или любого другого правила @ для работы в ANTLR. С очень простой грамматикой, как это:Использование @header в ANTLR
grammar test;
options {
language = CSharp2;
}
@header {
using System.Collections.Generic;
}
tokens {
TEST;
}
something : TEST*;
TEST : '0' .. '9';
Это, кажется, прилипает к ANTLR документации и различным другим примерам в Интернете, но когда я пытаюсь произвести вывод через любой ANTLRWorks v1.4 или ANTLR банку v3. 2, я получаю следующую ошибку:
Cannot generate the grammar because:
error(100): [path]\test.g:11:1 syntax error: antlr: [path]\test.g:11:1 unexpected token: tokens {
Который, по-видимому, не трясет. Я могу с успехом генерировать лексер и парсер без включенного в грамматику @header. У меня есть последняя версия Java на 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)
я предполагаю, что это что-то камень просто, и я просто слеп к нему, так что пожалуйста, принесите на очевидные ответы.
Вы правильно, сэр. Большое спасибо. – Moxen
Я считаю, что в следующей версии ANTLR (v4) порядок этих блоков не имеет значения. –