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() }); }
public void Any() { GivenText("b"); WhenParse(Parse.Any(Parse.Equal("a"), Parse.Equal("b"))); ThenResultShouldBe("b"); }
public static IParser <T> GroupOptional <T>(this IParser <T> p) { return(Parse.Any(p.Group(), p)); }