我有这条规则:
Room:
'room' ('final')? name=ID
;
所以我可以用两种方式宣布一个房间:
room bedroom
或
room final bedroom
现在我正在写一个验证器,我需要检查房间是否用final或者单词声明。有没有办法检查这个?
编辑:这是我写的验证器:
@Check
def checkIfFinalRoom(Room room){
println(room)
}
答案 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"))
}