/// <summary> /// Checks if the current parser went further than others. /// </summary> /// <param name="parsing">The previous best parser.</param> /// <param name="length">The length reached by <paramref name="parsing"/>.</param> public virtual void UpdateBestParsing(ref IParsingInfo parsing, ref int length) { if (length < LengthSuccessful) { parsing = this; length = LengthSuccessful; } }
/// <summary> /// Checks if the current parser went further than others. /// </summary> /// <param name="parsing">The previous best parser.</param> /// <param name="length">The length reached by <paramref name="parsing"/>.</param> public override void UpdateBestParsing(ref IParsingInfo parsing, ref int length) { if (StillParsing && LengthSuccessful == 0 && SuffixOffset == Base.Suffix.Length) { LengthSuccessful = StartOffset + Length + SuffixOffset; } base.UpdateBestParsing(ref parsing, ref length); }
/// <summary> /// Checks if the current parser went further than others. /// </summary> /// <param name="parsing">The previous best parser.</param> /// <param name="length">The length reached by <paramref name="parsing"/>.</param> public override void UpdateBestParsing(ref IParsingInfo parsing, ref int length) { if (StillParsing && LengthSuccessful == 0 && (LeadingZeroCount > 0 || Length > 0)) { LengthSuccessful = StartOffset + Length; } base.UpdateBestParsing(ref parsing, ref length); }
/// <summary> /// Checks if the current parser went further than others. /// </summary> /// <param name="parsing">The previous best parser.</param> /// <param name="length">The length reached by <paramref name="parsing"/>.</param> public override void UpdateBestParsing(ref IParsingInfo parsing, ref int length) { if (StillParsing && LengthSuccessful == 0 && (IntegerLength > 0 || FractionalLength > 0) && (SeparatorCharacter != Parser.NoSeparator || ExponentLength > 0)) { if (ExponentLength > 0) { if (SeparatorCharacter != Parser.NoSeparator) { LengthSuccessful = StartOffset + IntegerLength + 1 + FractionalLength + 1 + ExponentStartOffset + ExponentLength; } else { LengthSuccessful = StartOffset + IntegerLength + 1 + ExponentStartOffset + ExponentLength; } } else { LengthSuccessful = StartOffset + IntegerLength + 1 + FractionalLength; } } base.UpdateBestParsing(ref parsing, ref length); }