public void TestMemoizeAlternate() { var parser = new MemoizeParser(); var match = parser.GetMatch("a | b", parser.AlternateEOF); Assert.IsTrue(match.Success); }
public void TestMemoizeSequence() { var parser = new MemoizeParser(); var match = parser.GetMatch("a b", parser.SequenceEOF); Assert.IsTrue(match.Success); Assert.AreEqual(2, parser.charCount); }
public void TestMemoizeChar() { var parser = new MemoizeParser(); var match = parser.GetMatch("a", parser.Char); Assert.IsTrue(match.Success); Assert.AreEqual(1, parser.charCount); }
public void TestMemoizeCombo() { var parser = new MemoizeParser(); var match = parser.GetMatch("a | [b [c d]]", parser.AlternateEOF); Assert.IsTrue(match.Success); Assert.AreEqual(4, parser.charCount); Assert.AreEqual(2, parser.categoryCount); }
public void TestMemoizeEmbed() { var parser = new MemoizeParser(); var match = parser.GetMatch("[[a b] c]", parser.SequenceEOF); Assert.IsTrue(match.Success); Assert.AreEqual(3, parser.charCount); Assert.AreEqual(2, parser.categoryCount); }
public void TestMemoizeCategory() { var parser = new MemoizeParser(); var match = parser.GetMatch("[a b]", parser.SequenceEOF); Assert.IsTrue(match.Success); Assert.IsTrue(match.Result is CategoryNode); Assert.AreEqual(2, ((CategoryNode)match.Result).Children.Count()); Assert.AreEqual('a', ((CharNode)((CategoryNode)match.Result).Children.ElementAt(0)).Value); Assert.AreEqual('b', ((CharNode)((CategoryNode)match.Result).Children.ElementAt(1)).Value); Assert.AreEqual(1, parser.categoryCount); Assert.AreEqual(2, parser.charCount); }