Esempio n. 1
0
        private static IParser <SqlExpression> Surrounded(IParser <TextSpan> mark)
        {
            var doubleQuotation = Parse.Seq(mark, mark).Merge();
            var notMark         = mark.Not().ThenRight(Parse.AnyChars(1));

            return(from start1 in mark
                   from body1 in Parse.Any(doubleQuotation, notMark).Many()
                   from end1 in mark
                   select new SqlExpression()
            {
                TextSpan = body1.Length == 0 ?
                           new[] { start1, end1 }.GetTextSpan() :
                new[] { start1, body1, end1 }.GetTextSpan()
            });
        }
Esempio n. 2
0
 public void Any()
 {
     GivenText("b");
     WhenParse(Parse.Any(Parse.Equal("a"), Parse.Equal("b")));
     ThenResultShouldBe("b");
 }
Esempio n. 3
0
 public static IParser <T> GroupOptional <T>(this IParser <T> p)
 {
     return(Parse.Any(p.Group(), p));
 }