我無法讓「@header」或任何其他@規則在ANTLR中工作。有了一個非常基本的語法,就像這樣:在ANTLR中使用@header
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的情況下成功生成詞法分析器和分析器。我已經在Windows上最新版本的Java:
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 2010-11-01 03:09:24
我相信在ANTLR(v4)的下一個版本中,這些塊的順序並不重要。 – 2010-11-01 08:10:49