private static double Number(string expression, ref int index)
{
int endIndex = index;
while(endIndex < expression.Length && (char.IsDigit(expression[endIndex]) || expression[endIndex] == '.'))
{
++endIndex;
}
double result = double.Parse(expression.Substring(index, endIndex - index));
index = endIndex;
return result;
}