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

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

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

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

            ParseAssert.ValueEquals(Unit.Instance, result);
        }
Ejemplo n.º 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);
        }
Ejemplo n.º 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");
        }
Ejemplo n.º 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)));
 }