private void Advance()
{
EatWhitespace();
if (AtEnd)
{
_currentToken = null;
return;
}
if (CurrentChar == '"')
{
EatQuotedValue();
}
else if (CurrentChar == '-')
{
if (CanPeek && Char.IsDigit(PeekNextChar))
{
// It's actually a negative number, not an option
EatRawValue();
}
else
{
EatOption();
}
}
else
{
EatRawValue();
}
EatWhitespace();
}