我需要以编程方式将符合XText语法的文本转换为符合XText从同一语法生成的Ecore元模型的AST。

我知道XText还会生成实现此类解析器的Java类,但是我既不知道它们在哪里,也不清楚如何使用它。

最佳答案

在Eclipse Wiki的Xtext page上可以找到关于此问题的完整答案。

 new org.eclipse.emf.mwe.utils.StandaloneSetup().setPlatformUri("../");
 Injector injector = new MyDslStandaloneSetup().createInjectorAndDoEMFRegistration();
 XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
 resourceSet.addLoadOption(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
 Resource resource = resourceSet.createResource(URI.createURI("dummy:/example.mydsl"));
 InputStream in = new ByteArrayInputStream("type foo type bar".getBytes());
 resource.load(in, resourceSet.getLoadOptions());
 Model model = (Model) resource.getContents().get(0);

将文件扩展名(mydsl)更改为您自己的语言扩展名。

09-30 23:41