2
我有一個代碼生成器,它需要一個語法樹並將其轉換爲源文件(文本)。如何從Java調用Xtend代碼?
基本上,它遍歷樹的所有節點,將節點映射到文本並將結果文本附加到StringBuilder
。
現在我希望節點文本使用Xtend這樣可以實現映射器:
public class NodeXMapper
{
private XtendRunner xtendRunner = ...;
public String map(final NodeX aNode)
{
return xtendRunner.runScript("def String map(NodeX aNode) {
''' «aNode.fieldX» - «aNode.fieldY» '''
}", aNode);
}
}
xtendRunner.runScript(String aScript, final Object... aParams)
是一種方法,它傳遞的參數aParams
到的Xtend腳本aScript
並返回結果。
我該如何實現該方法?
更新1:Here我發現這段代碼,這似乎在Java中運行的Xtend代碼:
// setup
XtendFacade f = XtendFacade.create("my::path::MyExtensionFile");
// use
f.call("sayHello",new Object[]{"World"});
但在型我找不到XtendFacade
類hiearchy視圖的Eclipse 。
https://www.eclipse.org/forums/index.php/t/648897/ – 2014-10-17 08:21:19
@ KonstantinV.Salikhov謝謝。該鏈接的答案是「簡單的解釋器示例包含在簡單的 算術示例中」。我在Eclipse的示例項目中找不到簡單的算術示例。它在哪裏? – 2014-10-17 08:28:22
我想這是在這裏:https://github.com/eclipse/xtext/tree/master/examples/org.eclipse.xtext.xtext.ui.examples/contents/org.eclipse.xtext.example.arithmetics.ui – 2014-10-19 09:02:21