确定如何声明对象

时间:2015-12-14 03:46:19

标签: xtext

我有这条规则:

Room:
    'room' ('final')? name=ID
;

所以我可以用两种方式宣布一个房间:

room bedroom

room final bedroom

现在我正在写一个验证器,我需要检查房间是否用final或者单词声明。有没有办法检查这个?

编辑:这是我写的验证器:

@Check
def checkIfFinalRoom(Room room){
    println(room)
}

2 个答案:

答案 0 :(得分:2)

我建议在语义模型中存储有关final关键字的信息。可以这样做:

Room:
    'room' (final?='final')? name=ID
;

有关语法语法的详细信息,请参阅Xtext documentation

答案 1 :(得分:0)

我这样解决了:

@Check
def checkIfFinalRoom(Room room){
    val declaration = room.findActualNodeFor.text.trim
    println(room.contains("final")) 
}