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 Not_then_anyChar1() { GivenText("a"); WhenParse(Parse.Equal("b").Not().ThenRight(Parse.AnyChars(1))); ThenResultShouldBe("a"); }