示例#1
0
        static bool TryMatchSpecialContent(TextSpan text, out CsvToken specialTokenType)
        {
            // Planning a switch from "True" to "true" for CSV Booleans
            if (text.EqualsValueIgnoreCase("true") ||
                text.EqualsValueIgnoreCase("false"))
            {
                specialTokenType = CsvToken.Boolean;
                return(true);
            }

            if (text.EqualsValue("null"))
            {
                specialTokenType = CsvToken.Null;
                return(true);
            }

            // Just a quick temp job here until Superpower `Numerics` gets `Decimal` and `HexNumber`, plus
            // an `IsMatch(TextSpan)` on `TextParser`.
            var s = text.ToStringValue();

            if (text.Length > 0 &&
                text.Length < 16 &&
                (decimal.TryParse(text.ToStringValue(), out _) ||
                 s.StartsWith("0x") && ulong.TryParse(s.Substring(2), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out _)))
            {
                specialTokenType = CsvToken.Number;
                return(true);
            }

            specialTokenType = CsvToken.None;
            return(false);
        }
示例#2
0
        public void ASpanIsNotEqualToADifferentString(string str, int offset, int length, string value)
        {
            var span = new TextSpan(str, new Position(offset, 1, offset + 1), length);

            Assert.False(span.EqualsValue(value));
        }
示例#3
0
        public void ASpanIsEqualInValueToAMatchingString(string str, int offset, int length, string value)
        {
            var span = new TextSpan(str, new Position(offset, 1, offset + 1), length);

            Assert.True(span.EqualsValue(value));
        }