System.Linq.Dynamic.ExpressionParser.ParseIntegerLiteral C# (CSharp) Method

ParseIntegerLiteral() private method

private ParseIntegerLiteral ( ) : Expression
return Expression
		private Expression ParseIntegerLiteral()
		{
			ValidateToken(TokenId.IntegerLiteral);
			string text = _token.Text;
			if (text[0] != '-')
			{
				ulong value;
				if (!ulong.TryParse(text, out value) && ulong.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out value))
					throw ParseError(Res.InvalidIntegerLiteral(text));
				NextToken();
				if (value <= int.MaxValue) return CreateLiteral((int) value, text);
				if (value <= uint.MaxValue) return CreateLiteral((uint) value, text);
				if (value <= long.MaxValue) return CreateLiteral((long) value, text);
				return CreateLiteral(value, text);
			}
			else
			{
				long value;
				if (!long.TryParse(text, out value) && !long.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out value))
					throw ParseError(Res.InvalidIntegerLiteral(text));
				NextToken();
				if (value >= int.MinValue && value <= int.MaxValue)
					return CreateLiteral((int) value, text);
				return CreateLiteral(value, text);
			}
		}
ExpressionParser