예제 #1
0
    public void Repeat1Parser()
    {
        var emptyStream    = new MemoryStream <char>(string.Empty.AsMemory());
        var nonEmptyStream = new MemoryStream <char>("aaa".AsMemory());

        var p = Combinator.Rep1(Combinator.Char('a'));

        var r1 = p.Parse(emptyStream);
        var r2 = p.Parse(nonEmptyStream);

        Assert.False(r1.IsOk);
        Assert.True(r2.IsOk);
        Assert.Equal(3, r2.Ok.Value.Count);
        Assert.Equal('a', r2.Ok.Value[0]);
        Assert.Equal('a', r2.Ok.Value[1]);
        Assert.Equal('a', r2.Ok.Value[2]);
    }