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; } }
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++; } }