Xtext 2.9 运行时模块
Xtext 2.9 RuntimeModule
我正在尝试在我的 dsl(名为 ADSL)中实现隐式导入机制。为此,我遵循大约 3 年前应用于 SmallJava 示例的方法,可在此处获得:SmallJava source folder。我的 dsl 与 SmallJava 非常相似,因此您可能会认为我现在正在尝试做与 SmallJava 中基本相同的事情。
我定义了一个库(类似于 smalljava 的库)并尝试为其实现隐式导入。为此,我需要以类似于 SmallJavaRuntimeModule.java 的方式自定义 ADSLRuntimeModule class。
但是,我注意到在源文件夹中的 Xtext 2.9 中,我的 ADSLRuntimeModule 是 xtend,而不是 java 文件。
因此,当我尝试更新我的 ADSLRuntimeModule.xtend 时,我遇到了句法错误,如您在屏幕截图中所见 ADSLRuntimeModule.xtend。它声明此位置不允许使用@Override。
有人能解释一下为什么我会遇到这个错误吗?进行此自定义的正确方法是什么?
非常感谢
您已将 Java 代码粘贴到 Xtend 文件中。等效的 Xtend 语法是这样的:
class ADSLRuntimeModule extends AbstractADSLRuntimeModule {
override configureIScopeProviderDelegate(Binder binder) {
binder.bind(IScopeProvider)
.annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
.to(ADSLImportedNamespaceAwareLocalScopeProvider)
}
}
我正在尝试在我的 dsl(名为 ADSL)中实现隐式导入机制。为此,我遵循大约 3 年前应用于 SmallJava 示例的方法,可在此处获得:SmallJava source folder。我的 dsl 与 SmallJava 非常相似,因此您可能会认为我现在正在尝试做与 SmallJava 中基本相同的事情。
我定义了一个库(类似于 smalljava 的库)并尝试为其实现隐式导入。为此,我需要以类似于 SmallJavaRuntimeModule.java 的方式自定义 ADSLRuntimeModule class。 但是,我注意到在源文件夹中的 Xtext 2.9 中,我的 ADSLRuntimeModule 是 xtend,而不是 java 文件。
因此,当我尝试更新我的 ADSLRuntimeModule.xtend 时,我遇到了句法错误,如您在屏幕截图中所见 ADSLRuntimeModule.xtend。它声明此位置不允许使用@Override。
有人能解释一下为什么我会遇到这个错误吗?进行此自定义的正确方法是什么?
非常感谢
您已将 Java 代码粘贴到 Xtend 文件中。等效的 Xtend 语法是这样的:
class ADSLRuntimeModule extends AbstractADSLRuntimeModule {
override configureIScopeProviderDelegate(Binder binder) {
binder.bind(IScopeProvider)
.annotatedWith(Names.named(AbstractDeclarativeScopeProvider.NAMED_DELEGATE))
.to(ADSLImportedNamespaceAwareLocalScopeProvider)
}
}