code: public SQLStatement parse(final boolean useCache, final String sql) {
          Optional<SQLStatement> cachedSQLStatement = getSQLStatementFromCache(useCache, sql);
          if (cachedSQLStatement.isPresent()) {
              return cachedSQLStatement.get();
          }
          SQLStatement result = SQLParserFactory.newInstance(dbType, encryptRule, shardingTableMetaData, sql).parse();
          if (useCache) {
              parsingResultCache.put(sql, result);
          }
          return result;
      }
docs: Parse SQL.
  
  @param useCache use cache or not
  @param sql SQL
  @return parsed SQL statement