public void ItemParser() { var stream = new MemoryStream <char>("abc".AsMemory()); var p = Combinator.Item <char>(); var r1 = p.Parse(stream); var r2 = p.Parse(stream); var r3 = p.Parse(stream); var r4 = p.Parse(stream); Assert.True(r1.IsOk); Assert.True(r2.IsOk); Assert.True(r3.IsOk); Assert.False(r4.IsOk); Assert.Equal('a', r1.Ok.Value); Assert.Equal('b', r2.Ok.Value); Assert.Equal('c', r3.Ok.Value); }
public void ExactItemParser() { var stream = new MemoryStream <char>("abc".AsMemory()); var p1 = Combinator.Item('a'); var p2 = Combinator.Item('b'); var p3 = Combinator.Item('d'); var p4 = Combinator.Item('c'); var r1 = p1.Parse(stream); var r2 = p2.Parse(stream); var r3 = p3.Parse(stream); var r4 = p4.Parse(stream); Assert.True(r1.IsOk); Assert.True(r2.IsOk); Assert.False(r3.IsOk); Assert.True(r4.IsOk); Assert.Equal('a', r1.Ok.Value); Assert.Equal('b', r2.Ok.Value); Assert.Equal('c', r4.Ok.Value); }