private static void handleSetColRefs(ASTNode tree, Context ctx) {
    ASTSearcher astSearcher = new ASTSearcher();
    while (true) {
      astSearcher.reset();
      ASTNode setCols = astSearcher.depthFirstSearch(tree, HiveParser.TOK_SETCOLREF);
      if (setCols == null) {
        break;
      }
      processSetColsNode(setCols, astSearcher, ctx);
    }
  }
Performs a descent of the leftmost branch of a tree, stopping when either a
node with a non-null token is found or the leaf level is encountered.

@param tree
         candidate node from which to start searching

@return node at which descent stopped
ql/src/java/org/apache/hadoop/hive/ql/parse/ParseUtils.java