我写了一个描述坐标列表的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看起来很丑陋。有什么想法吗?
答案 0 :(得分:1)
答案很简单。没有问题。 EmfFormatter根本不打印等于默认值的值