Exemplo n.º 1
0
        public void TestMemoizeAlternate()
        {
            var parser = new MemoizeParser();
            var match = parser.GetMatch("a | b", parser.AlternateEOF);

            Assert.IsTrue(match.Success);
        }
Exemplo n.º 2
0
        public void TestMemoizeAlternate()
        {
            var parser = new MemoizeParser();
            var match  = parser.GetMatch("a | b", parser.AlternateEOF);

            Assert.IsTrue(match.Success);
        }
Exemplo n.º 3
0
        public void TestMemoizeSequence()
        {
            var parser = new MemoizeParser();
            var match  = parser.GetMatch("a b", parser.SequenceEOF);

            Assert.IsTrue(match.Success);
            Assert.AreEqual(2, parser.charCount);
        }
Exemplo n.º 4
0
        public void TestMemoizeChar()
        {
            var parser = new MemoizeParser();
            var match  = parser.GetMatch("a", parser.Char);

            Assert.IsTrue(match.Success);
            Assert.AreEqual(1, parser.charCount);
        }
Exemplo n.º 5
0
        public void TestMemoizeSequence()
        {
            var parser = new MemoizeParser();
            var match = parser.GetMatch("a b", parser.SequenceEOF);

            Assert.IsTrue(match.Success);
            Assert.AreEqual(2, parser.charCount);
        }
Exemplo n.º 6
0
        public void TestMemoizeChar()
        {
            var parser = new MemoizeParser();
            var match = parser.GetMatch("a", parser.Char);

            Assert.IsTrue(match.Success);
            Assert.AreEqual(1, parser.charCount);
        }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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);
        }
Exemplo n.º 11
0
        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);
        }
Exemplo n.º 12
0
        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);
        }