Antlr4没有发现进口语法



我试图在多个文件中将我的antlr4语法拆分,这样我就可以更轻松地测试它们,我将gradle用作Java项目中的构建工具。

两个语法通过单独编译正确编译,但是当我将导入添加到主语法中时,我会收到下一个编译错误

错误(110):kanekotic/specflow/rider/specflowfeature.g4:3:7:找不到或加载语法specflowscenario

inherited语法看起来像:

grammar SpecflowScenario;
@header {
    package kanekotic.specflow.rider;
}
scenario
    : 'Scenario: ';

main语法看起来像:

grammar SpecflowFeature;
import SpecflowScenario;
@header {
    package kanekotic.specflow.rider;
}
file returns [List<String> values]
    @init { $values = new ArrayList<String>(); }
    : 'Feature: ' EOF;

我在做什么错?这不允许吗?

编辑:

gradle.build看起来像:

plugins {
    id "org.jetbrains.intellij" version "0.1.10"
}
apply plugin: 'org.jetbrains.intellij'
apply plugin: 'java'
apply plugin: 'antlr'
sourceCompatibility = JavaVersion.VERSION_1_8
targetCompatibility = JavaVersion.VERSION_1_8
intellij {
    version '143.2370.31'
    pluginName 'Specflow Rider'
}
group 'kanekotic.specflow.rider'
version '0.1'
repositories {
    mavenCentral()
    jcenter()
}
dependencies {
    antlr "org.antlr:antlr4:4.5"
    testCompile 'junit:junit:4.12'
    testCompile "org.mockito:mockito-core:2.+"
} 

开源的所有代码都在下一个链接中:https://github.com/kanekotic/specflow.rider/tree/tree/antlr4_multiple_grammar

antlr插件默认情况下使用 src/main/antlr用作 lib 目录。由于要包含的语法文件在kanekotic/specflow/rider中,请在Gradle文件中使用以下代码来包括此位置:

generateGrammarSource {
    arguments << "-lib" << "src/main/antlr/kanekotic/specflow/rider"
}

另请参阅此Gradle线程。

相关内容

  • 没有找到相关文章

最新更新