В ответ на ответ WWC, Jamezor прокомментировал, что его код не сработает, если первый символ является цитатой.
Чтобы исправить эту проблему, вы можете заменить событие StartToken следующим:
if (eps == enumParseState.StartToken)
{
if (rWhiteSpace.IsMatch(c.ToString()))
{
//Skip whitespace
}
else if (c == '"')
{
eps = enumParseState.InQuote;
}
else
{
token.Append(c);
eps = enumParseState.InToken;
}
}