protected Token ReadToken()
{
while (true)
{
char? c = ReadNextChar();
if (c == null)
return new Token { Type = TokenType.EOF };
if (c == ';')
return new Token { Type = TokenType.Semicolon };
if (c == ',')
return new Token { Type = TokenType.Comma };
if (c == '=')
return new Token { Type = TokenType.Assignment };
if (c == '"')
return new Token { Type = TokenType.String, Value = ReadString() };
if (c == '<')
return new Token { Type = TokenType.Url, Value = ReadUrl() };
if (Char.IsWhiteSpace(c.Value))
continue;
if (Char.IsLetter(c.Value))
return ReadIdentifier(c.Value);
Error(string.Format("Unrecognized character '{0}'", c));
}
}