在我的 DSL 中,我有类似的东西:
x = 14
y = $x + 1
所以一个元素只用它的名字来定义,但是当被引用时,必须添加一些符号。引用元素时,禁止符号和名称之间的任何空格。
如何在 Xtext 中做到这一点,同时仍然允许这些元素之间的交叉引用?
因为在我看来,我要么必须为此使用两个不同的终端——一个匹配x
,另一个匹配$x
——但是交叉引用机制如何将它们关联在一起?或者,如果我定义:
ElementRef: '$' [Element|ELEMENT_NAME];
然后 Xtext 将允许符号和名称之间有空格,这在我的 DSL 中是非法的。我想诸如“此时不接受空格”之类的选项会很棒,但是我在 Xtext 文档中找不到有关此类内容的任何内容。