1
在Xtext語法中,我可以使用XExpression
/XBlockExpression
類型來包含Xbase代碼塊。我如何去做一個Java代碼塊?隨後包含的java應該包含在由DSL構造生成的Java中。如何在Xtext DSL中包含Java代碼塊?
在Xtext語法中,我可以使用XExpression
/XBlockExpression
類型來包含Xbase代碼塊。我如何去做一個Java代碼塊?隨後包含的java應該包含在由DSL構造生成的Java中。如何在Xtext DSL中包含Java代碼塊?
不可能直接包含Java代碼塊(除非您準備編寫完整的Java語法和相應的工具支持,例如可變分辨率或代碼生成)。
但是,可以使用模型推理器中的內置Xtext服務或使用XbaseCompiler將Xbase代碼塊轉換爲Java代碼塊。也可以用XbaseInterpreter類簡單解釋它。最後,如果您確實需要Java代碼塊,則可以將它們寫入.java文件,然後使用JvmIdentifiableElements引用它們。
這就是我所害怕的。我知道xbase的功能,這是可惜的,因爲xbase到java可以工作,但java到java不可以(儘管所有的Java工具支持已經存在於eclipse中):D背景的想法是我可以「豐富」java具有額外的功能,而無需用另一種「編程語言」來學習我所有的優秀java開發人員。 – Gandalf
包含Java代碼比看起來要困難得多 - 除非你不需要諸如語法高亮,內容輔助之類的奇特功能.JDT具有非常高性能,但難以重用的工具,因爲這個原因非常困難包括在Xtext中,這依賴於不同的技術。總而言之,通過引入新語言,提供有用的工具變得更加容易。 –