internal static bool ParseDigits(ref __DTString str, int minDigitLen, int maxDigitLen, out int result) {
BCLDebug.Assert(minDigitLen > 0, "minDigitLen > 0");
BCLDebug.Assert(maxDigitLen < 9, "maxDigitLen < 9");
BCLDebug.Assert(minDigitLen <= maxDigitLen, "minDigitLen <= maxDigitLen");
result = 0;
int startingIndex = str.Index;
int tokenLength = 0;
while (tokenLength < maxDigitLen) {
if (!str.GetNextDigit()) {
str.Index--;
break;
}
result = result * 10 + str.GetDigit();
tokenLength++;
}
if (tokenLength < minDigitLen) {
str.Index = startingIndex;
return false;
}
return true;
}