protected boolean align(ListIterator it1, ListIterator it2) {
        boolean result = true;
        startVisitingList(it1);
        while (result && it1.hasNext() && it2.hasNext()) {
            Node node = (Node)it1.next();
            if (!node.jjtAccept(this)) result = false;
        }
        if (lastMatchedStoringEnabled) {
            if (!it2.hasNext()) this.pathOfFinalNodes.add(getCurrentAbsolutePath());            
        }
        endVisitingList(it1);
        return result;
    }