在Xtext中为可选的数组维度定义语法

时间:2018-05-03 03:22:26

标签: grammar xtext

我正在尝试在xtext中为数组定义语法,其中维度可以为空,如int[][]int[5][10]

我的语法如下:

ArrayType: 
     [BasicType] ('['(dimension+=Expression)?']')+;

当我使用int[][]时,该规则的问题是模型无法知道包含了多少[],因为dimension列表将为空。

所以我想知道在找不到0的情况下,xtext中是否存在默认值Expression的默认值?否则,在不更改元模型的情况下处理此类情况的最佳方法是什么?

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

绝不是Xtext专家,但无法添加中间词:

ArrayType: 
  [BasicType] dimensions=Dimension+;

Dimension:
  ('['(size+=Expression)?']')