private string ParseNameOrOperator()
{
Token token = this.NextToken();
if (token == null)
throw new ParserException("Expected name or operator");
if (!token.IsName() && !token.IsOperator())
throw new ParserException(string.Format("Unexpected '{0}'", token.Value));
return token.Value;
}