1

xText 中称为“组件”的规则通常会在 src-gen 文件夹中生成一个类“组件”。我想在这些类中添加额外的方法,而不会在每次对 DSL 进行微小更改时都被覆盖。将我自己的代码注入这些类的正确方法是什么?有没有办法让所有类扩展我自己的根类而不是默认的 EObject?

提前致谢。

4

1 回答 1

2

你基本上有两个选择:

  • 您可以使用 aIXtext2EcorePostProcessor来修改 Xtext 从您的语法中推断出的 EMF 模型。实际的代码生成是由 EMF 完成的,所以你必须通过这个瓶颈来调整你的代码。详细信息在Christian Dietrich 的博客中有所描述。这种方法只适用于小的修改。

  • 您可以使用“代沟模式”(又名“实现差距模式”),它允许您编写从生成的模型类派生的类。在这里你可以添加任何你想要的东西。Heiko Behrens 的博客中描述了详细信息。这种方法更适合通过继承进行大规模修改。

您当然可以混合使用这两种方法...

于 2013-04-12T21:01:19.367 回答