/** * Processes a node calling interested checks at each node. * Uses iterative algorithm. * @param root the root of tree for process * @param astState state of AST. */ private void processIter(DetailAST root, AstState astState) { DetailAST curNode = root; while (curNode != null) { notifyVisit(curNode, astState); DetailAST toVisit = curNode.getFirstChild(); while (curNode != null && toVisit == null) { notifyLeave(curNode, astState); toVisit = curNode.getNextSibling(); curNode = curNode.getParent(); } curNode = toVisit; } }
/** * Processes a node calling interested checks at each node. * Uses iterative algorithm. * @param root the root of tree for process * @param astState state of AST. */ private void processIter(DetailAST root, AstState astState) { DetailAST curNode = root; while (curNode != null) { notifyVisit(curNode, astState); DetailAST toVisit = curNode.getFirstChild(); while (curNode != null && toVisit == null) { notifyLeave(curNode, astState); toVisit = curNode.getNextSibling(); curNode = curNode.getParent(); } curNode = toVisit; } }