private void CreateRange(string value, out string remainder, double magnitude)
{
Quantity qty1;
Quantity qty2;
string nextWord = remainder = value.Trim(); //Physical.NextWord(value, out remainder);
_magnitude = magnitude;
if (nextWord.ToLower().StartsWith("range"))
{
nextWord = Physical.NextWord(remainder, out remainder);
}
if (nextWord.ToLower().StartsWith("max"))
{
nextWord = Physical.NextWord(remainder, out remainder);
_toQuantity = new Quantity(remainder, out remainder);
}
else if (nextWord.ToLower().StartsWith("min"))
{
nextWord = Physical.NextWord(remainder, out remainder);
_fromQuantity = new Quantity(remainder, out remainder);
}
else
{
if (nextWord.StartsWith(Quantity.PLUSMINUS1))
{
remainder = CalculateRange(magnitude, nextWord, Quantity.PLUSMINUS1.Length);
}
else if (nextWord.StartsWith(Quantity.PLUSMINUS2))
{
remainder = CalculateRange(magnitude, nextWord, Quantity.PLUSMINUS2.Length);
}
else
{
_fromQuantity = new UncertainQuantity(remainder, out remainder);
string to = Physical.NextWord(remainder, out remainder);
_toQuantity = new Quantity(remainder, out remainder);
}
}
if (ErrorLimit.IsErrorLimit(remainder))
{
_errorLimit = new ErrorLimit(remainder, out remainder);
}
}