@Override
  protected void walk(Node nd) throws SemanticException {
    if (opStack.empty() || nd != opStack.peek()) {
      opStack.push(nd);
    }
    if (allParentsDispatched(nd)) {
      // all children are done or no need to walk the children
      if (!getDispatchedList().contains(nd)) {
        toWalk.addAll(nd.getChildren());
        dispatch(nd, opStack);
      }
      opStack.pop();
      return;
    }
    // add children, self to the front of the queue in that order
    toWalk.add(0, nd);
    addAllParents(nd);
  }
walk the current operator and its descendants.

@param nd
current operator in the graph
@throws SemanticException
ql/src/java/org/apache/hadoop/hive/ql/lib/ForwardWalker.java