ANTLR 插件扩展了 Java 插件,以添加对使用 ANTLR 生成解析器的支持。
ANTLR 插件支持 ANTLR 版本 2、3 和 4。 |
用法
要使用 ANTLR 插件,请在您的构建脚本中包含以下内容
plugins {
antlr
}
plugins {
id 'antlr'
}
任务
ANTLR 插件向您的项目添加了一些任务,如下所示。
ANTLR 插件向 Java 插件添加的任务添加了以下依赖项。
任务名称 | 依赖于 |
---|---|
|
|
|
|
|
|
项目布局
src/main/antlr
-
生产 ANTLR 语法文件。如果 ANTLR 语法在包中组织,则 antlr 文件夹中的结构应反映包结构。这确保生成的源代码最终位于正确的目标子文件夹中。
src/test/antlr
-
测试 ANTLR 语法文件。
src/sourceSet/antlr
-
给定源集的 ANTLR 语法文件。
依赖管理
ANTLR 插件添加了一个 antlr
依赖配置,它提供了要使用的 ANTLR 实现。以下示例展示了如何使用 ANTLR 版本 3。
repositories {
mavenCentral()
}
dependencies {
antlr("org.antlr:antlr:3.5.2") // use ANTLR version 3
// antlr("org.antlr:antlr4:4.5") // use ANTLR version 4
}
repositories {
mavenCentral()
}
dependencies {
antlr "org.antlr:antlr:3.5.2" // use ANTLR version 3
// antlr "org.antlr:antlr4:4.5" // use ANTLR version 4
}
如果没有声明依赖项,则将使用 antlr:antlr:2.7.7
作为默认值。要使用不同的 ANTLR 版本,请将相应的依赖项添加到上面的 antlr
依赖配置中。
贡献的扩展
antlr
— AntlrSourceDirectorySet-
此源集的 ANTLR 语法文件。包含在 ANTLR 源目录中找到的所有
.g
或.g4
文件,并排除所有其他类型的文件。默认值为非空。
约定属性(已弃用)
ANTLR 插件添加了一个约定属性。
antlr
— SourceDirectorySet-
此源集的 ANTLR 语法文件。包含在 ANTLR 源目录中找到的所有
.g
或.g4
文件,并排除所有其他类型的文件。默认值为非空。
此约定属性已弃用,并被上面描述的扩展所取代。
源集属性
ANTLR 插件将以下属性添加到项目中的每个源集。
antlr.srcDirs
—Set<File>
-
包含此源集的 ANTLR 语法文件的源目录。可以使用任何隐式转换为文件集合的内容进行设置。默认值为
[projectDir/src/name/antlr]
。
控制 ANTLR 生成器进程
ANTLR 工具在分叉进程中执行。这允许对 ANTLR 进程的内存设置进行细粒度控制。要设置 ANTLR 进程的堆大小,可以使用 AntlrTask 的 maxHeapSize
属性。要传递其他命令行参数,请附加到 AntlrTask 的 arguments
属性。
tasks.generateGrammarSource {
maxHeapSize = "64m"
arguments = arguments + listOf("-visitor", "-long-messages")
}
generateGrammarSource {
maxHeapSize = "64m"
arguments += ["-visitor", "-long-messages"]
}