所以我有一个 xtext 语法的默认示例。
grammar org.xtext.example.mydsl.MyDsl with org.eclipse.xtext.common.Terminals
generate myDsl "http://www.xtext.org/example/mydsl/MyDsl"
Model:
greetings+=Greeting*;
Greeting:
'Hello' name=ID '!';
我想查看抽象语法树 - 特别是我想要相应的 xtend 文件,它看起来像
package org.xtext.example.mydsl.generator
import org.eclipse.emf.ecore.resource.Resource
import org.eclipse.xtext.generator.IGenerator
import org.eclipse.xtext.generator.IFileSystemAccess
class MyDslGenerator implements IGenerator {
override void doGenerate(Resource resource, IFileSystemAccess fsa) {
//TODO implement me
}
}
每当调用 doGenerate 时打印出 AST 的文本版本。我已经对此进行了大约两天的破解,但我显然错过了一些基本的东西——有人同情我吗?doGenerate 函数中会发生什么?