@Override protected ParseResult parseTokenWithSeparator(LoadContext context, Spell spell, String value) { StringTokenizer aTok = new StringTokenizer(value, Constants.PIPE); boolean first = true; while (aTok.hasMoreTokens()) { String tok = aTok.nextToken(); if (Constants.LST_DOT_CLEAR.equals(tok)) { if (!first) { return new ParseResult.Fail( "Non-sensical use of .CLEAR in " + getTokenName() + ": " + value, context); } context.getObjectContext().removeList(spell, ListKey.RANGE); } else { if (!StringUtil.hasBalancedParens(value)) { return new ParseResult.Fail( "Unbalanced parentheses in " + getTokenName() + " '" + value + "' used in spell " + spell, context); } context.getObjectContext().addToList(spell, ListKey.RANGE, tok); Globals.addSpellRangesSet(tok); } first = false; } return ParseResult.SUCCESS; }