【问题标题】:Xtext grammar in two files两个文件中的 Xtext 语法
【发布时间】:2014-11-05 18:40:40
【问题描述】:

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

grammar mypackage.MyDsl with mypackage.Tokens

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

【问题讨论】:

    标签: code-generation xtext


    【解决方案1】:

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

    【讨论】:

    • 这意味着我必须编写一些额外的文件,包括生成器?还有哪些文件要写?
    【解决方案2】:

    在 Xtext 中,您通常将标记(终端)和解析器规则放入同一个 .xtext 文件中。您是否有特定原因要拆分此内容?

    【讨论】:

    • 我也想做同样的事情。我的原因是我生成了“基本语法”并想将生成的令牌放在单独的文件中。
    【解决方案3】:

    原因很简单:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-14
      • 2011-05-20
      • 1970-01-01
      • 2012-05-13
      • 1970-01-01
      • 2017-07-12
      相关资源
      最近更新 更多