两个文件中的Xtext语法

时间:2011-11-28 21:09:17

标签: code-generation xtext

我想把我的终端放到一个单独的文件中,因为我会在生产版本中使用外部词法分析器。我尝试按照using custom terminals definitions的答案。所以我有一个mypackage/Tokens.xtext文件和一个包含

mypackage/MyDsl.xtext文件
grammar mypackage.MyDsl with mypackage.Tokens

生成工作正常,但它会在MyDslStandaloneSetupGenerated中创建一个src-gen,但不会编译,因为它会调用不存在的mypackage.TokensStandaloneSetup.doSetup()。它还会生成src-gen/mypackage/services/MyDslGrammarAccess,它指的是一个也不存在的TokensGrammarAccess类。所以我的问题基本上是:当我有另一个语法文件时,我还应该做些什么才能使它可用?

3 个答案:

答案 0 :(得分:1)

您还需要为令牌语法运行生成器。

答案 1 :(得分:0)

在Xtext中,您通常将令牌(终端)和解析器规则放入同一个.xtext文件中。是否有特定原因要分割它?

答案 2 :(得分:0)

简单原因:

Easier to Read and work with the Grammar for everybody (especially other users)

似乎Xtext仍然不支持使用多个.xtext文件