public void String_NoMatch_ReturnsError() { var parser = Chars.String("xyz"); var result = parser.Parse("abc"); ParseAssert.IsError(result); }
public void String_Match_ReturnsValue() { var parser = Chars.String("abc"); var result = parser.Parse("abc"); ParseAssert.ValueEquals("abc", result); }
public void String_EndOfInput_ReturnsError() { var parser = Chars.String("xyz"); var result = parser.Parse("xy"); ParseAssert.IsError(result); }
public void Not_Error_ReturnsSuccess() { var parser = Parse.Not(Chars.String("xyz")); var result = parser.Parse("x"); ParseAssert.ValueEquals(Unit.Instance, result); }
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); }
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"); }
/// <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))); }