Beispiel #1
0
        public void Sql()
        {
            var parser = new Core.GrammarGrammar.Parser();

            var node = parser.Parse(@"Sql
            defs
            Statement : select StartOrFieldList
            StartOrFieldList : star | FieldList
            FieldList : FieldDef [comma FieldDef]
            FieldDef : [Agg openBracket] Field [closeBracket]
            Agg : count | min | max | avg
            Field : [openSquare] Text [closeSquare]
            texts
            Text : "".*""
            keywords
            select: select
            count: count
            min: min
            max: max
            avg: avg
            punctuation
            star: ""*""
            comma: ,
            openBracket: (
            closeBracket : )
            openSquare: ""[""
            closeSquare: ""]""");

            var generator = new Generator();
            var builder = new Builder();

            string nodeTree = generator.GenerateNodeTree(node);

            var grammar = generator.BuildGrammar(node);

            string actual = GenerateAndBuildParser(grammar, "select abc def ghi");
        }
Beispiel #2
0
        private void Run(string grammarDef, string input, string expected)
        {
            var parser = new Core.GrammarGrammar.Parser();

            var generator = new Generator();
            var builder = new Builder();

            var node = parser.Parse(grammarDef);

               var tree=  generator.GenerateNodeTree(node);

            var grammar =  generator.BuildGrammar(node);

            string actual = GenerateAndBuildParser(grammar, input);

            Assert.That(actual, Is.EqualTo(expected));
        }