Exemplo n.º 1
0
 /// <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);
        }
Exemplo n.º 4
0
        /// <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);
        }