Beispiel #1
0
        public void String_NoMatch_ReturnsError()
        {
            var parser = Chars.String("xyz");
            var result = parser.Parse("abc");

            ParseAssert.IsError(result);
        }
Beispiel #2
0
        public void String_Match_ReturnsValue()
        {
            var parser = Chars.String("abc");
            var result = parser.Parse("abc");

            ParseAssert.ValueEquals("abc", result);
        }
Beispiel #3
0
        public void String_EndOfInput_ReturnsError()
        {
            var parser = Chars.String("xyz");
            var result = parser.Parse("xy");

            ParseAssert.IsError(result);
        }
Beispiel #4
0
        public void Not_Error_ReturnsSuccess()
        {
            var parser = Parse.Not(Chars.String("xyz"));
            var result = parser.Parse("x");

            ParseAssert.ValueEquals(Unit.Instance, result);
        }
Beispiel #5
0
        public void String_NoMatch_ConsumesNoInput()
        {
            var parser = Chars.String("xyz");
            var input  = new StringInputReader("---");
            var result = parser.Parse(input);

            Position position = input.GetPosition();

            Assert.AreEqual(0, position.Offset);
        }
Beispiel #6
0
        public void String_PartialMatch_SetsCorrectPosition()
        {
            var parser = Chars.String("xyz");
            var input  = new StringInputReader("xy-");
            var result = parser.Parse(input);

            Position position = input.GetPosition();

            Assert.AreEqual(2, position.Offset, "Offset");
            Assert.AreEqual(1, position.Line, "Line");
            Assert.AreEqual(3, position.Column, "Column");
        }
Beispiel #7
0
 /// <summary>
 /// Parses the given symbol followed by any whitespace. Returns the parsed symbol.
 /// </summary>
 public static IParser <string> Symbol(string symbol)
 {
     return(Lexeme(Chars.String(symbol)));
 }