protected static function eatSet($input)
{
$set = [];
$cluster = null;
while (strlen($input)) {
$c = $input[0];
if ($c === ',') {
$input = substr($input, 1);
} elseif ($c === '>') {
$input = substr($input, 1);
break;
}
$chunk = self::eatValue($input);
$set[] = $chunk[0];
$input = $chunk[1];
}
return [$set, $input];
}