2017-04-12 90 views
0

我创建了我的xtext语法,现在我用sirius来建模,我遇到的问题是当我从调色板创建一个元素(例如我创建一个按钮)时,在需要扩展在我的例子中的xtext'instance.pfe'我发现一个空间错误,由建模给出的空间在语法中是不一样的。 我不明白这个错误来自哪里,以及如何解决它,谢谢你帮助我。天狼星的空间错误

这是一个例子 this is an example

My grammar

+0

语法如何?你是否实现了格式化程序? –

+0

不,我没有实施格式化.. 也许这是错误,我在互联网上看到,我必须激活它!但我不知道它的实现? –

+0

否,但取决于你的语法和编辑模型的方式,格式化程序和/或解析器可能会连线或发生错误。这就是为什么我要求一个小的可重复语法 –

回答

0

你不应该使用的内部空间的关键字。这将会有你所面对的各种有线副作用。

所以与其使用使用

SomeRule: 'somekeyword : ' somevalue=INT 

你应该使用

SomeRule: 'somekeyword' ':' somevalue=INT 

如果真要强制执行空间,然后引入终端为它

terminal SPACE: ' '; 

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

更新:让类分裂

 parserGenerator = { 
      options = { 
       classSplitting = true 
      } 
     } 
+0

是的我在使用'SomeRule''somekeyword'':'somevalue = INT'这个符号之前,把它改为当前的符号,但是当我滑动一个按钮时,例如在模型的文本文件中,我总是遇到同样的问题一个错误,它插入一个空间,它在语法中找不到更多细节: 'text'':'text1 = textType';' Sirius在'text'和':'之间插入空格......在其他情况下,它删除了这个空格......我不明白为什么? –

+0

是的,但是如果你的语法正确,它可以在没有空间的情况下工作 –

+0

=>为什么空间出现错误是要看的东西 –