private Expression ParseRealLiteral()
{
ValidateToken(TokenId.RealLiteral);
string text = _token.Text;
object value = null;
char last = text[text.Length - 1];
if (last == 'F' || last == 'f')
{
float f;
string substring = text.Substring(0, text.Length - 1);
if (float.TryParse(substring, out f) || float.TryParse(substring, NumberStyles.Any, CultureInfo.InvariantCulture, out f)) value = f;
}
else
{
double d;
if (double.TryParse(text, out d) || double.TryParse(text, NumberStyles.Any, CultureInfo.InvariantCulture, out d)) value = d;
}
if (value == null) throw ParseError(Res.InvalidRealLiteral(text));
NextToken();
return CreateLiteral(value, text);
}