コード例 #1
0
ファイル: BnfTermTest.cs プロジェクト: martindevans/Hermes
        public void CastBnfTermIntoConcatenationRule()
        {
            BnfTerm a = new Terminal("a");

            ConcatenationRule c = a;

            Assert.IsNotNull(c);
        }
コード例 #2
0
ファイル: BnfTermTest.cs プロジェクト: martindevans/Hermes
        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
ファイル: NonTerminal.cs プロジェクト: martindevans/Hermes
 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
ファイル: Production.cs プロジェクト: martindevans/Hermes
 public Production(NonTerminal head, ConcatenationRule body)
 {
     Body = body.ToArray();
     Head = head;
 }