private function processName(TokenIterator $iterator)
{
$iterator->position++;
if (!isset($iterator->tokens[$iterator->position])) {
throw new InvalidModifierDefinitionException("Modifier does not have a name.");
}
list($value, , $type) = $iterator->currentToken();
if ($type !== self::TOKEN_KEYWORD) {
throw new InvalidModifierDefinitionException("Modifier does not have a name.");
} elseif (isset($iterator->tokens[$iterator->position + 1])) {
list(, , $type) = $iterator->tokens[$iterator->position + 1];
if ($type === self::TOKEN_SEPARATOR) {
throw new InvalidModifierDefinitionException("After the {{$value}}'s modifier name cannot be a comma separator.");
}
}
return $value;
}