Beispiel #1
0
        public void AlternateTerms()
        {
            BnfTerm a = new Terminal("a");
            BnfTerm b = new Terminal("b");

            RuleAlternation c = a | b;

            Assert.IsNotNull(c);
        }
Beispiel #2
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());
        }
Beispiel #3
0
        public void ConcatenationOfUntypedTerminals()
        {
            string a = "a";
            string b = "b";

            RuleAlternation c = a.AsTerminal() | b;

            Assert.IsNotNull(c);
            Assert.AreEqual(2, c.Count);
        }
Beispiel #4
0
        public void ConcatenateConcatenationRuleWithNonTerminal()
        {
            RuleAlternation a = "a";

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

            Assert.IsNotNull(c);
            Assert.AreEqual(2, c.Count);
            Assert.IsInstanceOfType(c, typeof(RuleAlternation));
        }
Beispiel #5
0
        public void ConcatenateConcatenationRuleWithString()
        {
            RuleAlternation a = "a";

            var c = a | "b";

            Assert.IsNotNull(c);
            Assert.AreEqual(2, c.Count);
            Assert.IsInstanceOfType(c, typeof(RuleAlternation));
        }
Beispiel #6
0
 public NonTerminal(string name, ConcatenationRule rule = null)
     : base(name)
 {
     Rules = rule;
 }
Beispiel #7
0
        public void ImplicitCastFromStringToRuleAlternation()
        {
            RuleAlternation foo = "...";

            Assert.AreEqual(@"\.\.\.", (foo.First().First() as Terminal).Regex.ToString());
        }