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); }
static bool TryGetKeyword(TextSpan span, out ExpressionToken keyword) { foreach (var kw in Keywords) { if (span.EqualsValueIgnoreCase(kw.Text)) { keyword = kw.Token; return(true); } } keyword = ExpressionToken.None; return(false); }
static bool TryGetKeyword(TextSpan span, out TokenType keyword) { foreach (var kw in Keywords) { if (span.EqualsValueIgnoreCase(kw.Key)) { keyword = kw.Value; return(true); } } keyword = TokenType.None; return(false); }
private static bool TryGetKeyword(TextSpan span, out SqliteToken keyword) { foreach (var kw in SqlKeywords) { if (span.EqualsValueIgnoreCase(kw.Text)) { keyword = kw.Token; return(true); } } keyword = SqliteToken.None; return(false); }
public void ASpanIsEqualInValueIgnoringCaseToAMatchingUppsercaseString(string str, int offset, int length, string value) { var span = new TextSpan(str, new Position(offset, 1, offset + 1), length); Assert.True(span.EqualsValueIgnoreCase(value)); }