Mam problem z uruchomieniem reguły "@header" lub dowolnej innej reguły @ w ANTLR. Z bardzo podstawowym Grammer coś takiego:Używanie @header w ANTLR
grammar test;
options {
language = CSharp2;
}
@header {
using System.Collections.Generic;
}
tokens {
TEST;
}
something : TEST*;
TEST : '0' .. '9';
to wydaje się przylegać do dokumentacji antlr i różnych innych przykładów w Internecie, ale gdy próbuję wygenerować wyjście przez obu ANTLRWorks v1.4 lub v3 ANTLR słoiku. 2, pojawia się następujący błąd:
Cannot generate the grammar because:
error(100): [path]\test.g:11:1 syntax error: antlr: [path]\test.g:11:1 unexpected token: tokens {
Który nie mogę się trząść. Jestem w stanie wygenerować lexer i parser z powodzeniem bez nagłówka @header zawartego w gramatyce. Mam najnowszą wersję Java w systemie 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)
Zakładam, że to jest coś, kamień prosty i jestem po prostu ślepy na to, więc proszę przynieść na oczywistych odpowiedzi.
Masz rację, sir. Wielkie dzięki. – Moxen
Wierzę, że w kolejnej wersji ANTLR (v4) kolejność tych bloków nie ma znaczenia. –