char c = parseCharacter();
if (match('-')) {
if (peek("]")) {
OrNode node = new OrNode();
node.add(new CharNode(c));
node.add(new CharNode('-'));
return node;
} else {
return new CharRangeNode(c, parseCharacter());
}
} else {
return new CharNode(c);
}
}