private object ParseValue()
{
Token token = this.NextToken();
if (token == null)
throw new LexerException("Unexpected End of Input");
if (token.Type == TokenType.String)
return token.Value;
if (token.Type == TokenType.Boolean)
return Boolean.Parse(token.Value);
if (token.Type == TokenType.Integer)
return Int32.Parse(token.Value);
if (token.Type == TokenType.Name)
return token.Value;
throw new LexerException(string.Format("Unexpected '{0}'", token.Value));
}