我已经实现了一个简单的小 DSL,它使用 JvmModelInferrer 方法从输入文件生成类。我试图弄清楚如何在常规 java 项目的代码中调用解析器和代码生成器。因此,在我的非 Xtext 项目的主类中的某个时刻,我可以创建一个文件,将其传递给我的 DSL 的 Xtext 解析器/codeGenerator,结果将是类文件生成到我选择的文件夹中(在我的java项目中)。此案例未包含在文档中,因此非常感谢您的帮助,谢谢!
更新:到目前为止,我的代码如下所示:
private static IGenerator generator;
/**
* @param args
*/
public static void main(String[] args) {
// this line registers the EMF for our DSL
Injector injector = new HyRuleStandaloneSetup().createInjectorAndDoEMFRegistration();
ResourceSet rs = new ResourceSetImpl();
File file = new File(
"C:/Documents and Settings/chmamat2/runtime-EclipseXtext/hyrule.project/src/hyrule/project/main.hrule");
Resource resource = rs.getResource(URI.createURI(file.toURI().toString()), true);
//setup the generator
generator = injector.getInstance(IGenerator.class);
//setup the file system access
final EclipseResourceFileSystemAccess2 fsa = new EclipseResourceFileSystemAccess2();
generator.doGenerate(resource, fsa);