public static SelectStmtInfo ParseSQL(string sql) { Antlr4.Runtime.AntlrInputStream input = new Antlr4.Runtime.AntlrInputStream(sql); SelectSQLLexer lexer = new SelectSQLLexer(input); ErrorListener errorListner = new ErrorListener(); Antlr4.Runtime.UnbufferedTokenStream tokens = new Antlr4.Runtime.UnbufferedTokenStream(lexer); SelectSQLParser parser = new SelectSQLParser(tokens); parser.AddErrorListener(errorListner); var tree = parser.compileUnit(); ParseTreeWalker walker = new ParseTreeWalker(); SelectSQLTreeListener lsn = new SelectSQLTreeListener(); walker.Walk(lsn, tree); return(lsn.SelectStmt); }