Example #1
0
        public void test_GetLexem()
        {
            TestRelExQueryParser relExParser = new TestRelExQueryParser();

            string expression = relExSamples[0];
            int    startIdx   = 0;
            int    endIdx     = 0;

            RelExParser.LexemType lexemType;
            while ((lexemType = relExParser.TestGetLexemType(expression, startIdx, out endIdx)) != RelExParser.LexemType.Stop)
            {
                Console.WriteLine("{0}: {1}", lexemType.ToString(), expression.Substring(startIdx, endIdx - startIdx));
                startIdx = endIdx;
            }
        }
Example #2
0
        public void test_GetLexem()
        {
            TestRelExQueryParser relExParser = new TestRelExQueryParser();

            string expression = relExSamples[0];
            int    startIdx   = 0;
            int    endIdx     = 0;

            RelexParser.LexemType lexemType;

            var testLexemTypeSeq = new string[] {
                "Name", "accounts",
                "Delimiter", "(",
                "Name", "login",
                "Delimiter", "=",
                "QuotedConstant", "\"Mike\"",
                "Name", "or",
                "Name", "id",
                "Delimiter", "<",
                "Delimiter", "=",
                "Name", "parent_id",
                "Delimiter", ")",
                "Delimiter", "[",
                "Delimiter", "*",
                "Delimiter", "]"
            };

            int idx = 0;

            while ((lexemType = relExParser.TestGetLexemType(expression, startIdx, out endIdx)) != RelexParser.LexemType.Stop)
            {
                var testLexemType = testLexemTypeSeq[idx * 2];
                var testLexemVal  = testLexemTypeSeq[idx * 2 + 1];
                Assert.Equal(testLexemType, lexemType.ToString());
                Assert.Equal(testLexemVal, expression.Substring(startIdx, endIdx - startIdx).Trim());
                startIdx = endIdx;

                idx++;
            }
        }