public void TextNavigator_IsWhiteSpace_1() { const string text = " A\t"; TextNavigator navigator = new TextNavigator(text); Assert.IsTrue(navigator.IsWhiteSpace()); navigator.ReadChar(); Assert.IsFalse(navigator.IsWhiteSpace()); navigator.ReadChar(); Assert.IsTrue(navigator.IsWhiteSpace()); }
public static Parameter[] ParseString ( [NotNull] string text ) { Sure.NotNull(text, nameof(text)); List <Parameter> result = new List <Parameter>(); TextNavigator navigator = new TextNavigator(text); navigator.SkipWhitespace(); while (!navigator.IsEOF) { while (true) { bool flag = false; if (navigator.IsWhiteSpace()) { flag = true; navigator.SkipWhitespace(); } if (navigator.PeekChar() == ValueSeparator) { flag = true; navigator.SkipChar(ValueSeparator); } if (!flag) { break; } } string name = navigator.ReadEscapedUntil ( EscapeCharacter, NameSeparator ); if (ReferenceEquals(name, null)) { break; } name = name.Trim(); navigator.SkipWhitespace(); string value = navigator.ReadEscapedUntil ( EscapeCharacter, ValueSeparator ); Parameter parameter = new Parameter(name, value); result.Add(parameter); } return(result.ToArray()); }