Example #1
0
        public void LookAhead_MatchesButDoesNotConsume()
        {
            var parser = from la in Parse.String("ab").LookAhead()
                         from text in Parse.String("ab")
                         select new { la, text };

            AssertParser.SucceedsWith(parser, "ab", x => { Assert.AreEqual("ab", x.la); Assert.AreEqual("ab", x.text); });
        }
Example #2
0
        public void ReturningValue_DoesNotAdvanceInput()
        {
            var p = Parse.Return(1);

            AssertParser.SucceedsWith(p, "abc", n => Assert.AreEqual(1, n));
        }
Example #3
0
        public void IgnoreCaseParser()
        {
            var ab = Parse.IgnoreCase("ab").Text();

            AssertParser.SucceedsWith(ab, "Ab", m => Assert.AreEqual("Ab", m));
        }
Example #4
0
        public void ExceptStopsConsumingInputWhenExclusionParsed()
        {
            var exceptAa = Parse.AnyChar.Except(Parse.String("aa")).Many().Text();

            AssertParser.SucceedsWith(exceptAa, "abcaab", r => Assert.AreEqual("abc", r));
        }
Example #5
0
 public void EmptyAlternative1() => AssertParser.SucceedsWith(Parser5UnderTest, "_+_+a", o => Assert.Equal("_+_+", o));
Example #6
0
 public void RecursiveParserWithoutLeftRecursion() => AssertParser.SucceedsWith(Parser2UnderTest, "ababba0", o => Assert.Equal("ababba0", o));
Example #7
0
 public void MultipleRefs() => AssertParser.SucceedsWith(Parser1UnderTest, "id=1", o => Assert.Equal("id", o));
Example #8
0
 public void CanParseLeftRecursiveGrammar()
 {
     AssertParser.SucceedsWith(ASeq.End(), "a,a,a", r => new string(r.ToArray()).Equals("aaa"));
 }
Example #9
0
 public void TestSelectManyLinq() => AssertParser.SucceedsWith(ParserOptionalLinq, "ab", o => AssertSome(o, "ba"));
Example #10
0
 public void TestSelectManyNone() => AssertParser.SucceedsWith(ParserOptionalSelectMany, "b", o => Assert.True(o.IsEmpty));
Example #11
0
 public void TestSelect() => AssertParser.SucceedsWith(ParserOptionalSelect, "a", o => AssertSome(o, 'A'));