我有一个基本语法(FooBase.g
)和两个包含它的语法:
lexer grammar FooVariantA;
import base = FooBase;
...
lexer grammar FooVariantB;
import base = FooBase;
...
如果我将所有三个文件都放入
src/main/antlr
中,则将编译基本语法,这当然会失败:不应编译它,因为它引用了仅在“最终” FooVariantA
和FooVariantB
语法中定义的某些规则。但是,似乎我也无法像Maven一样创建
src/main/antlr/imports
子目录,因为Gradle ANTLR插件从不出现在这里:error(7): cannot find or open file: FooBase.g; reason: java.io.FileNotFoundException: /home/test/test/src/main/antlr/FooBase.g (No such file or directory)
如何只编译两个最终语法,仍然能够找到导入的基本语法?
最佳答案
结果很简单:
generateGrammarSource {
exclude ('**/*Base.g')
}
关于gradle - 如何使用Gradle通过导入构建ANTLR 3语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30347820/