public FormatSpecificierChunk(GroupCollection groups)
{
ComputeIndex(groups[(int)FormatGroup.Index]);
ComputeFlags(groups[(int)FormatGroup.Flags]); // must come after ComputeIndex
ComputeWidth(groups[(int)FormatGroup.Width]);
ComputePrecision(groups[(int)FormatGroup.Precision]);
ComputeDt(groups[(int)FormatGroup.DateTime]); // must come after ComputeFlags
ComputeConversion(groups[(int)FormatGroup.Conversion]); // must come after ComputeFlags, ComputeDT
if (_isDateTime)
CheckDateTime();
else if (ConversionAux.IsGeneral(_conversion))
CheckGeneral();
else if (ConversionAux.IsCharacter(_conversion))
CheckCharacter();
else if (ConversionAux.IsInteger(_conversion))
CheckInteger();
else if (ConversionAux.IsFloat(_conversion))
CheckFloat();
else if (ConversionAux.IsText(_conversion))
CheckText();
else
throw new UnknownFormatConversionException(new string(_conversion, 1));
}