public static bool verifyScript(EDbVendor dbVendor, string src, string target) { TGSqlParser sourceParser = new TGSqlParser(dbVendor); TGSqlParser targetParser = new TGSqlParser(dbVendor); sourceParser.sqltext = src; sourceParser.tokenizeSqltext(); targetParser.sqltext = target; targetParser.tokenizeSqltext(); return(verifyTokens(sourceParser.sourcetokenlist, targetParser.sourcetokenlist, false)); }
public void testMdxTokenlizer3() { TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmdx); sqlparser.sqltext = "SELECT Measures.MEMBERS^ ON COLUMNS,\n" + "Product.Style.CHILDREN ON ROWS\n" + "FROM [Total Profit [Domestic]]]\t\n" + ";"; sqlparser.tokenizeSqltext(); string outstr = ""; for (int i = 0; i < sqlparser.sourcetokenlist.size(); i++) { TSourceToken st = sqlparser.sourcetokenlist.get(i); outstr += string.Format("{0},type:{1},code:{2:D}\n", st.tokentype == ETokenType.ttreturn ? "linebreak" : st.ToString(), st.tokentype, st.tokencode); } // System.out.println(outstr); Assert.IsTrue(outstr.Trim().Equals("SELECT,type:ttkeyword,code:301\n" + " ,type:ttwhitespace,code:259\n" + "Measures,type:ttidentifier,code:264\n" + ".,type:ttperiod,code:46\n" + "MEMBERS,type:ttkeyword,code:630\n" + "^,type:ttcaret,code:94\n" + " ,type:ttwhitespace,code:259\n" + "ON,type:ttkeyword,code:323\n" + " ,type:ttwhitespace,code:259\n" + "COLUMNS,type:ttkeyword,code:559\n" + ",,type:ttcomma,code:44\n" + "linebreak,type:ttreturn,code:260\n" + "Product,type:ttidentifier,code:264\n" + ".,type:ttperiod,code:46\n" + "Style,type:ttidentifier,code:264\n" + ".,type:ttperiod,code:46\n" + "CHILDREN,type:ttkeyword,code:555\n" + " ,type:ttwhitespace,code:259\n" + "ON,type:ttkeyword,code:323\n" + " ,type:ttwhitespace,code:259\n" + "ROWS,type:ttkeyword,code:661\n" + "linebreak,type:ttreturn,code:260\n" + "FROM,type:ttkeyword,code:329\n" + " ,type:ttwhitespace,code:259\n" + "[Total Profit [Domestic]]],type:ttidentifier,code:282\n" + "\t,type:ttwhitespace,code:259\n" + "linebreak,type:ttreturn,code:260\n" + ";,type:ttsemicolon,code:59", StringComparison.CurrentCultureIgnoreCase)); }
public void testTokenlizer7() { TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmdx); sqlparser.sqltext = "SELECT \n" + "[x].&foo&[1]&bar.[y] ON 0\n" + "FROM [Adventure Works];"; sqlparser.tokenizeSqltext(); string outstr = ""; for (int i = 0; i < sqlparser.sourcetokenlist.size(); i++) { TSourceToken st = sqlparser.sourcetokenlist.get(i); outstr += string.Format("{0},type:{1},code:{2:D}\n", st.tokentype == ETokenType.ttreturn ? "linebreak" : st.ToString(), st.tokentype, st.tokencode); } // System.out.println(outstr); Assert.IsTrue(outstr.Trim().Equals("SELECT,type:ttkeyword,code:301\n" + " ,type:ttwhitespace,code:259\n" + "linebreak,type:ttreturn,code:260\n" + "[x],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "&foo,type:ttidentifier,code:286\n" + "&[1],type:ttidentifier,code:285\n" + "&bar,type:ttidentifier,code:286\n" + ".,type:ttperiod,code:46\n" + "[y],type:ttidentifier,code:282\n" + " ,type:ttwhitespace,code:259\n" + "ON,type:ttkeyword,code:323\n" + " ,type:ttwhitespace,code:259\n" + "0,type:ttnumber,code:263\n" + "linebreak,type:ttreturn,code:260\n" + "FROM,type:ttkeyword,code:329\n" + " ,type:ttwhitespace,code:259\n" + "[Adventure Works],type:ttidentifier,code:282\n" + ";,type:ttsemicolon,code:59", StringComparison.CurrentCultureIgnoreCase)); }
public void testMdxTokenlizer5() { TGSqlParser sqlparser = new TGSqlParser(EDbVendor.dbvmdx); sqlparser.sqltext = "// This member returns the gross profit margin for product types\n" + "// and reseller types crossjoined by year.\n" + "SELECT \n" + " [Date].[Calendar Time].[Calendar Year].Members *\n" + " [Reseller].[Reseller Type].Children ON 0,\n" + " [Product].[Category].[Category].Members ON 1\n" + "FROM // Select from the Adventure Works cube.\n" + " [Adventure Works]\n" + "WHERE\n" + " [Measures].[Gross Profit Margin]\n" + ";"; sqlparser.tokenizeSqltext(); string outstr = ""; for (int i = 0; i < sqlparser.sourcetokenlist.size(); i++) { TSourceToken st = sqlparser.sourcetokenlist.get(i); outstr += string.Format("{0},type:{1},code:{2:D}\n", st.tokentype == ETokenType.ttreturn ? "linebreak" : st.ToString(), st.tokentype, st.tokencode); } // System.out.println(outstr); Assert.IsTrue(outstr.Trim().Equals("// This member returns the gross profit margin for product types,type:ttCPPComment,code:258\n" + "linebreak,type:ttreturn,code:260\n" + "// and reseller types crossjoined by year.,type:ttCPPComment,code:258\n" + "linebreak,type:ttreturn,code:260\n" + "SELECT,type:ttkeyword,code:301\n" + " ,type:ttwhitespace,code:259\n" + "linebreak,type:ttreturn,code:260\n" + "[Date],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "[Calendar Time],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "[Calendar Year],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "Members,type:ttkeyword,code:630\n" + " ,type:ttwhitespace,code:259\n" + "*,type:ttasterisk,code:42\n" + "linebreak,type:ttreturn,code:260\n" + "[Reseller],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "[Reseller Type],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "Children,type:ttkeyword,code:555\n" + " ,type:ttwhitespace,code:259\n" + "ON,type:ttkeyword,code:323\n" + " ,type:ttwhitespace,code:259\n" + "0,type:ttnumber,code:263\n" + ",,type:ttcomma,code:44\n" + "linebreak,type:ttreturn,code:260\n" + "[Product],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "[Category],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "[Category],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "Members,type:ttkeyword,code:630\n" + " ,type:ttwhitespace,code:259\n" + "ON,type:ttkeyword,code:323\n" + " ,type:ttwhitespace,code:259\n" + "1,type:ttnumber,code:263\n" + "linebreak,type:ttreturn,code:260\n" + "FROM,type:ttkeyword,code:329\n" + " ,type:ttwhitespace,code:259\n" + "// Select from the Adventure Works cube.,type:ttCPPComment,code:258\n" + "linebreak,type:ttreturn,code:260\n" + "[Adventure Works],type:ttidentifier,code:282\n" + "linebreak,type:ttreturn,code:260\n" + "WHERE,type:ttkeyword,code:317\n" + "linebreak,type:ttreturn,code:260\n" + "[Measures],type:ttidentifier,code:282\n" + ".,type:ttperiod,code:46\n" + "[Gross Profit Margin],type:ttidentifier,code:282\n" + "linebreak,type:ttreturn,code:260\n" + ";,type:ttsemicolon,code:59", StringComparison.CurrentCultureIgnoreCase)); }