以下是我的语法的一部分
TestLabelBase returns ResultExpressionRhs : 'VL:' path=STRING ;
AlphabateModifier : (abc?='ABC' | def?='DEF' | ghi?='GHI') ;
当我写下以下规则TestLabel
时,它可以正常工作:
TestLabel returns ResultExpressionRhs: TestLabelBase (modifier=AlphabateModifier)?;
但是当我使用TestLabel
的以下规则时,它会说
当'current'已经创建时,不允许进行未分配的规则调用。
TestLabel returns ResultExpressionRhs: (modifier=AlphabateModifier)? TestLabelBase ;
你能解释一下这背后的原因吗?
答案 0 :(得分:1)
读取Parsing Expressions with Xtext,特别是,其中第一个元素是未分配的规则调用。
您需要将规则更改为:
TestLabel returns ResultExpressionRhs
: (modifier=AlphabateModifier)? base=TestLabelBase
;
干杯,史蒂夫