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); }
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)); }
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)); }