Esempio n. 1
0
        protected T?TestTypedOutput <T>(string resourceName, string text)
            where T : class
        {
            var grammarText = GetResource(resourceName);
            var grammar     = MetaGrammar.ParseGrammar(grammarText);

            Assert.IsNotNull(grammar, "Grammar couldn't get parsed");

            var match = grammar !.Match(null, text);

            Assert.IsNotNull(match, "No match");

            var output = match !.ComputeTypedOutput <T>();

            return(output);
        }
Esempio n. 2
0
        private void TestChildren(string resourceName, string text, int expectedChildren)
        {
            var grammarText = GetResource(resourceName);
            var grammar     = MetaGrammar.ParseGrammar(grammarText);

            Assert.IsNotNull(grammar, "Grammar");

            var match = grammar !.Match("main", text);

            Assert.IsNotNull(match, "Match");

            var output = ToList(match !.ComputeOutput());

            Assert.IsNotNull(output, "Output null");
            Assert.AreEqual(expectedChildren, output.Count(), "#Children");
        }
Esempio n. 3
0
        public static Grammar?ParseGrammar(string grammarText)
        {
            var grammar = GetCachedGrammar(grammarText);

            if (grammar != null)
            {
                return(grammar);
            }
            else
            {
                grammar = MetaGrammar.ParseGrammar(grammarText);

                PushInCache(grammarText, grammar);

                return(grammar);
            }
        }
Esempio n. 4
0
        public void ParsingSequence()
        {
            var ruleSet = MetaGrammar.ParseGrammar("rule seq = \"a\" \"b\";");

            Assert.IsNotNull(ruleSet);
        }
Esempio n. 5
0
        public void ParsingString()
        {
            var ruleSet = MetaGrammar.ParseGrammar("rule main = \"a\";");

            Assert.IsNotNull(ruleSet);
        }