Xtext零('0')与INT不匹配

时间:2018-06-20 16:55:57

标签: dsl xtext

我写了一个描述坐标列表的Xtext语法:

Model:
    coordinates+=Coordinates*
;
Coordinates:
    '(' x=INT ',' y=INT ')'
;

但是,当使用由新Xtext项目自动创建的parsingTest并为此程序打印println(EmfFormatter.objToStr(result))时:

(2,1)
(2,0)
(0,1)
(0,0)
(1,1)

我得到以下AST的表示形式:

Model {
    cref Coordinates coordinates [
        0: Coordinates {
            attr EInt x '2'
            attr EInt y '1'
        }
        1: Coordinates {
            attr EInt x '2'
        }
        2: Coordinates {
            attr EInt y '1'
        }
        3: Coordinates {
        }
        4: Coordinates {
            attr EInt x '1'
            attr EInt y '1'
        }
    ]
}

我认为这是由于某些原因'0'与INT不匹配。我可以创建一个新的数据类型,但是不使用提供的INT看起来很丑陋。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

答案很简单。没有问题。 EmfFormatter根本不打印等于默认值的值