【问题标题】:Space error in sirius天狼星的空间错误
【发布时间】:2017-04-20 00:09:19
【问题描述】:

我创建了我的 xtext 语法,现在我使用 Sirius 来建模,我遇到的问题是当我从调色板创建一个元素时(例如我创建一个按钮),在我的文件中采用 xtext 的扩展名case 'instance.pfe' 发现空格错误,建模给出的空格在语法上不一样。 我不明白这个错误是从哪里来的,以及如何解决,谢谢你的帮助。

这是一个例子

My grammar

【问题讨论】:

  • 语法是什么样子的?你实现了格式化程序吗?
  • 不,我还没有实现格式化程序..也许是这个错误,我在互联网上看到我必须激活它!但我不知道它的实现??
  • 否,但取决于您的语法和编辑模型的方式,格式化程序和/或解析器可能会做一些连线的事情或有错误。这就是为什么我要求一个小的可重现语法
  • 我通过插入语法修改了我的问题..
  • 你的语法链接对我不起作用。如果没有 Google 帐户,我将无法访问。

标签: modeling xtext eclipse-sirius


【解决方案1】:

您不应该在关键字中使用空格。这将产生各种有线副作用,就像您面临的那样。

所以而不是使用

SomeRule: 'somekeyword : ' somevalue=INT

你应该使用

SomeRule: 'somekeyword' ':'  somevalue=INT

如果你真的想强制一个空格,那么就为它引入一个终端

terminal SPACE: ' ';

SomeRule: 'somekeyword' SPACE ':' SPACEsomevalue=INT

更新:启用类拆分

        parserGenerator = {
            options = {
                classSplitting = true
            }
        }

【讨论】:

  • 是的,我在将其更改为当前符号之前使用了符号 'SomeRule: 'somekeyword' ':' somevalue=INT' 但是当我滑动一个按钮时我总是遇到同样的问题,例如,在模型的文本文件我发现一个错误,它插入了一个在语法中找不到的空格以获取更多详细信息:'text'':'text1=textType';' Sirius 在 'text' 和 ':' 之间插入一个空格......在其他情况下它会删除这个空格......我不明白为什么??
  • 是的,但如果你的语法正确,无论有无空格都可以使用
  • => 为什么空间有错误是要看的东西
  • 好的,我会用固定的语法重写我的语法,我会看看错误是否消失......非常感谢先生。
  • 我更改了语法并修复了语法,但现在在生成 Xtext Artifacts 时出现错误,如下所示:静态初始化程序的代码超出了 65535 字节限制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-03
  • 2020-02-23
  • 1970-01-01
  • 1970-01-01
  • 2015-10-27
  • 1970-01-01
相关资源
最近更新 更多