public void TextNavigator_SkipChar_2() { TextNavigator navigator = new TextNavigator("123456"); Assert.IsTrue(navigator.SkipChar(3)); Assert.AreEqual('4', navigator.ReadChar()); Assert.IsFalse(navigator.SkipChar(3)); Assert.IsTrue(navigator.IsEOF); }
public void TextNavigator_SkipChar_3() { char[] allowed = { '1', '2' }; TextNavigator navigator = new TextNavigator("123456"); Assert.IsTrue(navigator.SkipChar(allowed)); Assert.IsTrue(navigator.SkipChar(allowed)); Assert.IsFalse(navigator.SkipChar(allowed)); Assert.AreEqual('3', navigator.ReadChar()); }
public void TextNavigator_SkipChar_1() { TextNavigator navigator = new TextNavigator("111234"); Assert.IsTrue(navigator.SkipChar('1')); Assert.IsTrue(navigator.SkipChar('1')); Assert.IsTrue(navigator.SkipChar('1')); Assert.AreEqual('2', navigator.ReadChar()); Assert.IsFalse(navigator.SkipChar('1')); }
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()); }
public void TextNavigator_Line_1() { const string text = "ABC\nDEF"; TextNavigator navigator = new TextNavigator(text); Assert.AreEqual(1, navigator.Line); navigator.ReadChar(); Assert.AreEqual(1, navigator.Line); navigator.SkipChar(3); Assert.AreEqual(2, navigator.Line); }
public void TextNavigator_IsEOF_1() { const string text = "ABC"; TextNavigator navigator = new TextNavigator(text); Assert.IsFalse(navigator.IsEOF); navigator.ReadChar(); Assert.IsFalse(navigator.IsEOF); navigator.SkipChar(2); Assert.IsTrue(navigator.IsEOF); }