代码之家  ›  专栏  ›  技术社区  ›  Moxen

在ANTLR中使用@header

  •  8
  • Moxen  · 技术社区  · 16 年前

    我很难让“@header”或任何其他@rule在ANTLR工作。用一个非常基本的语法,比如:

    grammar test;
    
    options {
         language = CSharp2;
    }
    
    @header {
        using System.Collections.Generic;
    }
    
    tokens {
      TEST;
    }
    
    something : TEST*;
    
    TEST : '0' .. '9'; 
    

    无法生成语法,因为:

    意外的标记:标记{

    我似乎无法动摇。我能够成功地生成lexer和parser,语法中没有@header。我在Windows上有最新版本的Java:

    Java(TM)SE运行时环境(构建1.6.0_22-b04) Java HotSpot(TM)客户端虚拟机(构建17.1-b03,混合模式,共享)

    我认为这是一件非常简单的事情,我对此一无所知,所以请给出明显的答案。

    1 回复  |  直到 16 年前
        1
  •  10
  •   Brad Mace Mike King    16 年前

    错误是因为这些块必须按特定顺序出现。

    1. 选项
    2. 代币
    3. @成员

    推荐文章