Пример #1
0
        public void CastBnfTermIntoConcatenationRule()
        {
            BnfTerm a = new Terminal("a");

            ConcatenationRule c = a;

            Assert.IsNotNull(c);
        }
Пример #2
0
        public void ConcatenateTerms()
        {
            BnfTerm a = new Terminal("a");
            BnfTerm b = new Terminal("b");

            ConcatenationRule c = a + b;

            Assert.IsNotNull(c);
        }
Пример #3
0
        public void ConcatenateConcatenationRules()
        {
            ConcatenationRule a = new ConcatenationRule(new Terminal("aaa"));
            ConcatenationRule b = new ConcatenationRule(new Terminal("aaa"));

            ConcatenationRule c = a + b;

            Assert.IsNotNull(c);
        }
Пример #4
0
        public void ConcatenateConcatenationRules()
        {
            ConcatenationRule a = new ConcatenationRule(new Terminal("aaa"));
            ConcatenationRule b = new ConcatenationRule(new Terminal("aaa"));

            ConcatenationRule c = a + b;

            Assert.IsNotNull(c);
        }
Пример #5
0
        public void StringOrConcatenationRule()
        {
            string            a = "...";
            ConcatenationRule b = "b";

            RuleAlternation c = a | b;

            Assert.IsNotNull(c);
            Assert.AreEqual(@"\.\.\.", (c.First().First() as Terminal).Regex.ToString());
        }
Пример #6
0
        public void ConcatenationOfUntypedTerminals()
        {
            string a = "a";
            string b = "b";

            ConcatenationRule c = a + b;

            Assert.IsNotNull(c);
            Assert.AreEqual(1, c.Count);
        }
Пример #7
0
        public void ConcatenateConcatenationRuleWithNonTerminal()
        {
            ConcatenationRule a = "a";

            var c = a + new NonTerminal("b");

            Assert.IsNotNull(c);
            Assert.AreEqual(2, c.Count);
            Assert.IsInstanceOfType(c, typeof(ConcatenationRule));
        }
Пример #8
0
        public void ConcatenateConcatenationRuleWithString()
        {
            ConcatenationRule a = "a";

            var c = a + "b";

            Assert.IsNotNull(c);
            Assert.AreEqual(2, c.Count);
            Assert.IsInstanceOfType(c, typeof(ConcatenationRule));
        }
Пример #9
0
        public void AlternationOfConcatenations()
        {
            ConcatenationRule a = "a";
            ConcatenationRule b = "b";

            var c = a | b;

            Assert.IsNotNull(c);
            Assert.AreEqual(2, c.Count);
            Assert.IsInstanceOfType(c, typeof(RuleAlternation));
        }
Пример #10
0
        public void TerminalPlusTerminalReturnsRule()
        {
            Terminal          a = new Terminal("a");
            Terminal          b = new Terminal("b");
            ConcatenationRule operatorResult = a + b;
            ConcatenationRule methodResult   = Terminal.Plus(a, b);

            Assert.IsNotNull(operatorResult);
            Assert.IsNotNull(methodResult);
            Assert.AreEqual(operatorResult, methodResult);
        }
Пример #11
0
        public void CastConcatenationRuleIntoAlternationRule()
        {
            RuleAlternation a = new ConcatenationRule(new Terminal("aaa"));

            Assert.IsNotNull(a);
        }
Пример #12
0
 public NonTerminal(string name, ConcatenationRule rule = null)
     : base(name)
 {
     Rules = rule;
 }
Пример #13
0
        public void CastStringIntoConcatenationRule()
        {
            ConcatenationRule a = "aaa";

            Assert.IsNotNull(a);
        }
Пример #14
0
        public void CastConcatenationRuleIntoAlternationRule()
        {
            RuleAlternation a = new ConcatenationRule(new Terminal("aaa"));

            Assert.IsNotNull(a);
        }
Пример #15
0
 public Production(NonTerminal head, ConcatenationRule body)
 {
     Body = body.ToArray();
     Head = head;
 }