2016-04-27 9 views
0

私は自分のdsl(ADSLという名前)に暗黙のインポートメカニズムを実装しようとしています。これを行うには、3年前のSmallJavaの例に適用されているアプローチに従っています。これは、ここではSmallJava source folderです。私のDSLはSmallJavaと非常によく似ているので、今はSmallJavaで本質的に同じことをやろうとしていると思うかもしれません。Xtext 2.9 RuntimeModule

私はライブラリ(smalljavaに似ています)を定義し、暗黙のインポートを実装しようとしました。これを行うには、SmallJavaRuntimeModule.javaと同様にADSLRuntimeModuleクラスをカスタマイズする必要があります。 しかし、ソースフォルダのXtext 2.9では、私のADSLRuntimeModuleはjavaファイルではなくxtendであることに気付きました。

私がADSLRuntimeModule.xtendを更新しようとすると、スクリーンショットADSLRuntimeModule.xtendのように構文上の間違いが発生します。この場所には@Overrideが許可されていません。

私はこのエラーに直面している理由を説明してください。このカスタマイズを行う正しい方法は何ですか?

どうもありがとう

+0

コードを投稿する必要があります。あなたは何をしているのか分かりません。 – Halfstop

+0

返信いただきありがとうございます、私はいくつかの詳細で質問を更新しました。うまくいけば、今より多くの情報になります;) – Marina

答えて

0

あなたはXTENDファイルにJavaコードを貼り付けています。同等のXtend構文は次のとおりです。

class ADSLRuntimeModule extends AbstractADSLRuntimeModule { 

    override configureIScopeProviderDelegate(Binder binder) { 
     binder.bind(IScopeProvider) 
      .annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE)) 
      .to(ADSLImportedNamespaceAwareLocalScopeProvider) 
    } 

} 
+0

Miroが構文を修正してくれてありがとう、それは今コンパイルしています。おそらく私はxtendとxtextの初心者です) – Marina