001import gudusoft.gsqlparser.*; 002import gudusoft.gsqlparser.compiler.TASTEvaluator; 003import gudusoft.gsqlparser.compiler.TGlobalScope; 004import gudusoft.gsqlparser.nodes.TFunctionCall; 005import gudusoft.gsqlparser.nodes.TObjectName; 006import gudusoft.gsqlparser.nodes.TParseTreeVisitor; 007import gudusoft.gsqlparser.sqlenv.TSQLEnv; 008import gudusoft.gsqlparser.stmt.TExecImmeStmt; 009 010import java.io.IOException; 011 012public class gspEval { 013 public static void main(String args[]) throws IOException { 014 EDbVendor dbVendor = EDbVendor.dbvredshift; 015 TSQLEnv sqlEnv = new TSQLEnv(dbVendor) { 016 @Override 017 public void initSQLEnv() { 018 } 019 }; 020 021 TLog.enableInterpreterLogOnly(); 022 023 TGlobalScope globalScope = new TGlobalScope(sqlEnv); 024 TGSqlParser sqlParser = new TGSqlParser(dbVendor); 025 String inputFile = "c:\\prg\\tmp\\demo.sql"; 026 sqlParser.sqlfilename = inputFile; 027 028 int ret = sqlParser.parse(); 029 if (ret != 0){ 030 System.out.println(sqlParser.getErrormessage()); 031 return ; 032 } 033 034// for(TCustomSqlStatement s: sqlParser.sqlstatements){ 035// System.out.println(s.getClass().getName()); 036// } 037 038 TASTEvaluator astEvaluator = new TASTEvaluator(sqlParser.sqlstatements,globalScope); 039 astEvaluator.eval(); 040 //System.out.println(Integer); 041 TBaseType.dumpLogs(true); 042 043// dynamicVarVisitor fv = new dynamicVarVisitor(); 044// for(int i=0;i<sqlParser.sqlstatements.size();i++){ 045// TCustomSqlStatement sqlStatement = sqlParser.sqlstatements.get(i); 046// 047// sqlStatement.acceptChildren(fv); 048// } 049 } 050} 051 052class dynamicVarVisitor extends TParseTreeVisitor { 053 public void preVisit(TExecImmeStmt stmt) { 054 System.out.println("Dynamic variable: "+stmt.getDynamicStringExpr().toString()+" with value: "+stmt.getDynamicStringExpr().getEvalValue().toString()); 055 } 056}