ANTLR4文法を複数のファイルに分割しようとしていますので、より簡単にテストできます。私は、Javaプロジェクトの構築ツールとしてgradleを使っています。ANTLR4はインポート時に文法を見つけません
両文法は別々で正しくコンパイルが、私は私のメインの文法にインポートを追加したときに、私は次のコンパイルエラーに取得エラー(110):kanekotic/specflow /ライダー/ SpecflowFeature.g4:3:7 :
grammar SpecflowScenario; @header { package kanekotic.specflow.rider; } scenario : 'Scenario: ';
と:
inherited
文法がどのように見える
を見つけたり、負荷文法SpecflowScenario
することはできません文法は次のようになります。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/antlr4_multiple_grammar
同じフォルダのファイル 'SpecflowScenario.g4'に文法がありますか?多分あなたのgradleファイルの部分を投稿してください。 – user3151902
@ user3151902あなたの回答に感謝します。はい、それらは同じディレクトリにあり、私のgradleは編集上で見ることができます。また、オープンソースとしてレポを追加しました。 – Kanekotic