0

我将一个 dsl (A) 翻译成另一个 dsl (B) 在 xtext 中创建。

A 的代码生成看起来像

override void doGenerate(Resource resource, IFileSystemAccess2 fsa, IGeneratorContext context) {
    fsa.generateFile('transformed.wp', resource.allContents.filter(typeof(ActionSystem)).map [
        compile
    ].join(', '))

    val rs = new ResourceSetImpl();
    val r = rs.getResource(URI.createPlatformResourceURI('transformed.wp'), true);
    val List<EObject> contentOfYourFile = r.getContents();
    }

错误是然后我调用URI.createPlatformResourceURI('transformed.wp')文件找不到。

如何访问文件“transformed.wp”。

这个想法是在生成代码后将 A 的部分 emf 模型复制到 B 的模型中。

4

1 回答 1

0

解决方案在IFileSystemAccess2

//create the file name
var fileuri = fsa.getURI('transformed.wp');
//get the name of the resource
var resource_name = fileuri.toString();
//get eh name of the resource
var file = fileuri.lastSegment;
于 2017-01-09T12:17:33.383 回答