当前位置: 首页 > 面试题库 >

如何为ANTLR指定目标软件包?

蒋嘉颖
2023-03-14
问题内容

如果我打电话给:

java org.antlr.Tool -o outdir sources/com/example/Java5.g

…使用antlr-3.1.3,解析器和词法分析器代码将在目录中生成outdir/sources/com/example。但是生成的类没有任何package声明。我需要他们活在包裹里com.example

有没有办法指定目标包装?


问题答案:

ANTLR提供了一个标头工具,使您可以包括包和导入。您将此包含在您的* .g语法文件中:

@header {
    package org.xmlcml.cml.converters.antlr;
    import java.util.HashMap;
}

而且您可能在Lexer中也需要它:

@lexer::header {package org.xmlcml.cml.converters.antlr;}

并且如果您需要添加一些成员和代码:

@members {
    HashMap<String, Object> objectMap = new HashMap<String, Object>();
    //...

    private void addArrayValue(String content) {
    //... code required by snippets in the grammar

    }
}


 类似资料:
  • 问题内容: 我有一个应用程序,该应用程序具有package.json文件中依赖项下指定的第三方模块(例如“ express”)的通常依赖项。例如 我想模块化地构建自己的代码,并通过package.json安装一组本地(即我当前所在的文件系统上的)模块。我知道我可以通过运行以下命令安装本地模块: 但是,我不知道如何通过package.json依赖项结构来实现这一点。在此命令中使用该选项只是将其放入我

  • 我试图在ejb-jar.xml中配置EJB2.1MDB。我的问题是没有明确的方法来指定MDB要侦听的目标(队列名)。我穷尽了网络,没有找到任何有用的信息。

  • 问题内容: 我正在使用ant工具构建android库项目,我需要指定多个源目录。 我试图通过在ant.properties文件中添加这些行来指定多个源目录 但是在两种情况下都无法生成,在两种情况下都生成了 .class ,但是在创建jar文件时却出现此错误 谁能告诉我如何在 ant.properties中* 指定 多个源目录 以构建 Android库项目 ? *** 问题答案: 我已经以棘手的方式

  • 本文向大家介绍VS2019中CMake项目如何指定c++语言标准,包括了VS2019中CMake项目如何指定c++语言标准的使用技巧和注意事项,需要的朋友参考一下 VS2019中CMake项目怎么指定语言标准 博主前几天在使用c++17新特性结构绑定时报错了,代码如下: 后来查了一下发现CMake项目默认的c++语言标准是低于17的,所以就得指定一下语言版本才行。 有两种设置方法。第一种可以设置默

  • 问题内容: 我已经编写了一个简单的httprequest / response代码,但出现以下错误。我在类路径中引用了httpclient,httpcore,common-codecs和common- logging。我对Java非常陌生,不知道这里发生了什么。请帮我。 码: 错误: 问题答案: 该错误消息有点误导。您提供的值不代表完整的URI 它缺少协议。 只需提供完整的URI