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