相关疑难解决方法(0)

使用gradle中的包声明生成ANTLR4语法文件

我尝试使用gradle antlr插件,但遇到了几个问题.

我有一个语法文件叫wls.g4:

grammar WlsScript;

@header {
   package hu.pmi.wls.antlr.ws;
} 

program
  : 'statementList'? EOF
  ;

// Several more grammar and lexer rules
Run Code Online (Sandbox Code Playgroud)

(注意:我将statementList设为一个关键字,只是为了制作一个正确的语法而不包括整个语法.;-))

该文件位于/ src/main/antlr(作为antlr生成语法文件的默认源文件夹).

以下是来自的代码段build.gradle:

project('common') {

    apply plugin: 'antlr'

    dependencies {
       // Some dependencies

       antlr "org.antlr:antlr4:4.5"
    }
} 
Run Code Online (Sandbox Code Playgroud)

当我使用generateGrammarSourcegradle任务(从antlr插件中提交)生成源文件时,它会生成build/generated-src/antlr/main默认文件夹中的文件.

出了什么问题,它没有创建java包的文件夹(hu/pmi/wls/antlr/ws在我们的例子中),因此源将错误地定位在Eclipse中.

我的主要问题是如何强制任务以包结构的方式生成源文件?换句话说,如何配置gradle任务以使用语法中的包声明?

谢谢!

gradle antlr4

16
推荐指数
2
解决办法
5427
查看次数

标签 统计

antlr4 ×1

gradle ×1