在Xtext语法中,我可以使用XExpression
/ XBlockExpression
类型包含Xbase代码块。我如何使用Java代码块做同样的事情?随后的java应该包含在从DSL构造生成的Java中。
您现在可以使用JBase(https://github.com/LorenzoBettini/jbase)执行此操作。 JBase是专门为您描述的用例创建的(请参阅https://dl.acm.org/citation.cfm?id=2972217),并且可以通过扩展JBase而不是XBase来进行微小更改。
不可能直接包含Java代码块(除非您准备编写完整的Java语法和相应的工具支持,例如变量分辨率或代码生成)。
但是,Xbase代码块可以使用模型推理器中的内置Xtext服务或使用XbaseCompiler转换为Java代码块。也可以使用XbaseInterpreter类简单地解释它。
最后,如果您确实需要Java代码块,可以将它们写在.java文件中,并使用JvmIdentifiableElements引用它们。