【发布时间】:2018-05-29 16:36:15
【问题描述】:
我有以下语法,但我想对此进行一些验证。如果“玩家”列表中有重复的名字,我想出错。
语法:
Football:
'Club' name=STRING playerList=PlayerList
footballObjects+=FootballObject
;
FootballObject:
Player | Coach
;
PlayerList:
players+=[Player] ( players+=[Player] )*
;
Player:
'Player' name=ID
;
我尝试了以下方法:
@Check
def checkGreetingStartsWithCapital(Football model) {
val names = newHashSet
for (g : model.playersList.players) {
if(!names.add(g.name))
error("duplicate" , g, FOOTBALLPACKAGE.Literals.FOOTBALL__PLAYERS_LIST)
}
}
但这不起作用。任何想法为什么?
【问题讨论】:
-
不应该是
if(!names.add(g.name))吗? -
@lwi 你是对的。我改变了它,但它仍然没有给出任何错误。会不会是字面量?
-
我在您的语法中看不到任何重复 - 据我所知,
players不能包含多个元素。 -
@sepp2k 我已经更新了我的问题。
-
我认为最好发布一个实际的MCVE,包括您正在测试的输入。
标签: validation xtext xtend