如何遍历 Xtext 生成的 EMF 对象树?

rep*_*mer 5 eclipse dsl xtext eclipse-emf

我正在使用Xtext来定义我的 DSL。Xtext 生成一个解析器,让我遍历输入 DSL 的 EMF 模型。我想将此 EMF 模型转换为其他树。为了做这个翻译,我需要遍历树。但是,我找不到 Xtext 生成的 EMF 模型的访问者类。我发现的最接近的东西是访问单个节点的 Switch 类。我可以自己遍历 EMF 模型并在我访问的每个节点上调用 Switch 类。但是,我想知道 Xtext 中是否存在实现模型遍历的访问者功能。

Von*_*onC 3

如果您考虑这个线程,Switch(例如此处使用的)几乎是 XText 的官方访问者模式。
\n您还有自定义验证过程

\n\n
\n

其目的AbstractDeclarativeValidator是允许您以声明性方式编写约束 \xe2\x80\x93 正如类名所暗示的那样。
\n 也就是说,您不必编写详尽的 if-else 结构或扩展生成的 EMF 开关,您只需将注释添加@Check到任何方法,并且在验证发生时它将自动调用。

\n
\n\n

但这可能并不完全是您所需要的。

\n