public void NextIs() { var parser = new SimpleParser("<asdf/>"); Assert.IsFalse(parser.NextIs("asdf")); Assert.IsTrue(parser.NextIs('<')); Assert.AreEqual(0, parser.Position); Assert.IsTrue(parser.NextIs("<asdf/>")); Assert.AreEqual(0, parser.Position); Assert.IsTrue(parser.NextIs('<')); parser.ReadUntil('/'); parser.Unskip(1); Assert.IsTrue(parser.NextIs('/')); Assert.IsFalse(parser.NextIs("asdf")); Assert.IsTrue(parser.NextIs('/')); Assert.IsTrue(parser.NextIs("/>")); Assert.IsTrue(parser.NextIs('/')); }
public void ConsumeAny() { var p = new SimpleParser("abc.def ghi"); p.ConsumeAny('a', 'b', 'c', 'd', 'e', 'f'); Assert.AreEqual('.', p.NextChar.Value); p.Skip(1); p.ConsumeAny('a', 'b', 'c', 'd', 'e', 'f'); Assert.AreEqual(' ', p.NextChar.Value); p.Skip(1); p.ConsumeAny('a', 'b', 'c', 'd', 'e', 'f'); Assert.AreEqual(true, p.NextIs('g')); }
public void SkipUntil1() { var parser = new SimpleParser("<asdf/>"); Assert.IsTrue(parser.SkipUntil("asdf")); Assert.AreEqual(5, parser.Position); Assert.IsTrue(parser.NextIs('/')); parser = new SimpleParser("<aasasdasdf/>"); Assert.IsTrue(parser.SkipUntil("asdf")); Assert.IsTrue(parser.NextIs('/')); parser = new SimpleParser("<asdf/>"); Assert.IsFalse(parser.SkipUntil("xyz")); Assert.False(parser.HasNext); }