【发布时间】:2010-11-01 01:56:47
【问题描述】:
我无法让“@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 生成输出时,我收到以下错误:
无法生成语法,因为:
error(100): [path]\test.g:11:1 语法错误:antlr: [path]\test.g:11:1 意外令牌:令牌 {
我似乎无法动摇。在语法中不包含@header 的情况下,我能够成功生成词法分析器和解析器。我在 Windows 上安装了最新版本的 Java:
java 版本“1.6.0_22” Java(TM) SE 运行时环境 (build 1.6.0_22-b04) Java HotSpot(TM) Client VM(build 17.1-b03,混合模式,共享)
我认为这很简单,我只是对它视而不见,所以请提出显而易见的答案。
【问题讨论】: