XText以编程方式将DSL脚本解析为Ecore模型

Sin*_*ico 8 eclipse xtext eclipse-emf

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

我知道XText也会生成实现这种解析器的Java类,但我不知道它们在哪里以及如何使用它.

Sin*_*ico 7

可以在Eclipse wiki 的Xtext页面上找到这个问题的完整答案.

 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);
Run Code Online (Sandbox Code Playgroud)

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