编写xtext语法文件时出现问题

时间:2014-04-21 11:38:24

标签: dsl xtext

以下是我的语法的一部分

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 ;

你能解释一下这背后的原因吗?

1 个答案:

答案 0 :(得分:1)

读取Parsing Expressions with Xtext,特别是,其中第一个元素是未分配的规则调用

您需要将规则更改为:

TestLabel returns ResultExpressionRhs
  : (modifier=AlphabateModifier)? base=TestLabelBase 
  ;  

干杯,史蒂夫