@Override
	public boolean syntaxCheck(final String mask, final List<String> errorSink)
	{
		if(mask.trim().length()==0)
			return true;
		final List<String> V=CMParms.parse(mask.toUpperCase());
		for(int v=0;v<V.size();v++)
		{
			final String str=V.get(v);
			final Map<String,ZapperKey> zapCodes=getMaskCodes();
			if(zapCodes.containsKey(str))
				return true;
			for(final SavedClass C : charClasses())
			{
				if(str.startsWith(C.minusNameStart))
					return true;
			}
			for(final SavedRace R : races())
			{
				if(str.startsWith(R.minusNameStart))
					return true;
				if(str.startsWith(R.minusCatNameStart))
					return true;
			}
			if(str.startsWith("-"+Faction.Align.EVIL.toString().substring(0,3)))
				return true;
			if(str.startsWith("-"+Faction.Align.GOOD.toString().substring(0,3)))
				return true;
			if(str.startsWith("-"+Faction.Align.NEUTRAL.toString().substring(0,3)))
				return true;
			if(str.startsWith("-MALE"))
				return true;
			if(str.startsWith("-FEMALE"))
				return true;
			if(str.startsWith("-NEUTER"))
				return true;
			if(levelHelp(str,'-',"").length()>0)
				return true;
			if((str.startsWith("-"))
			&&(CMLib.factions().isRangeCodeName(str.substring(1))))
				return true;
		}
		errorSink.add("No valid zapper codes found.");
		return false;
	}