2

在 Xtext 语法中,我可以使用XExpression/XBlockExpression类型包含一个 Xbase 代码块。我将如何对 Java 代码块做同样的事情?包含的 java 稍后应该包含在从 DSL 构造生成的 Java 中。

4

2 回答 2

1

不可能直接包含 Java 代码块(除非您准备编写完整的 Java 语法和相应的工具支持,例如变量解析或代码生成)。

但是,可以使用模型推断器中的内置 Xtext 服务或使用 XbaseCompiler 将 Xbase 代码块转换为 Java 代码块。也可以使用 XbaseInterpreter 类简单地解释它。

最后,如果你真的需要 Java 代码块,你可以将它们写在 .java 文件中,并使用 JvmIdentifiableElements 引用它们。

于 2012-09-06T14:23:43.423 回答
1

您现在可以使用 JBase ( https://github.com/LorenzoBettini/jbase ) 执行此操作。JBase 是专门为您描述的用例创建的(请参阅https://dl.acm.org/citation.cfm?id=2972217),并且可以通过扩展 JBase 而不是 XBase 进行微小的更改。

于 2019-04-12T17:45:57.360 回答