如何在Xtext DSL中包含Java代码块?

问题描述 投票:2回答:2

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

java dsl xtext
2个回答
1
投票

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


1
投票

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.