【问题标题】:Define grammar in Xtext for optional array dimensions在 Xtext 中为可选数组维度定义语法
【发布时间】:2018-05-04 01:34:39
【问题描述】:

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

我的语法是这样的:

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

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

所以我想知道如果没有找到Expression,xtext 中是否有办法将默认值设置为0?否则在不更改元模型的情况下处理这种情况的最佳方法是什么?

提前感谢您的帮助。

【问题讨论】:

    标签: grammar xtext


    【解决方案1】:

    绝不是 Xtext 专家,但你不能添加一个中间词:

    ArrayType: 
      [BasicType] dimensions=Dimension+;
    
    Dimension:
      ('['(size+=Expression)?']')
    

    【讨论】:

    • 感谢您的回复。我想过这个,但我不想改变元模型。正确答案是:ArrayType: [BasicType] dimensions+=Dimension+ Dimension: '[' index=Expression? ']'
    猜你喜欢
    • 1970-01-01
    • 2015-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-16
    • 1970-01-01
    • 2015-08-14
    • 2015-09-01
    相关资源
    最近更新 更多