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

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

            Assert.IsTrue(match.Success);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }
Esempio 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);
        }