访问Xtext 2.11中的ParserRules

时间:2017-01-13 07:50:38

标签: xtext

使用新的Xtext 2.11版本,我可以设置XtextResource的EntryRule。 但是,我无法弄清楚如何传递预期的ParserRule。

考虑这段代码

    Injector injector = new MydslStandaloneSetup().createInjectorAndDoEMFRegistration();
    XtextResourceSet resourceSet = injector.getInstance(XtextResourceSet.class);
    Resource resource = resourceSet.createResource(URI.createURI("dummy:/test.dsl"));
    XtextResource xres = (XtextResource) resource;
    xres.setEntryPoint(???);

它必须在某种程度上类似于testcase,但在幕后似乎有一些魔力。

1 个答案:

答案 0 :(得分:1)

Xtext创建了一个Java类YourDslGrammarAccess,以便以编程方式访问语法。因此,类似下面的内容应该起作用

MyDslGrammarAccess ga = injector.getInstance(MyDslGrammarAccess.class);
xres.setEntryPoint(ga.getGreetingRule());