code: public List getDeepestChilds() {
  		if (childs.size() == 0) {
  			return new ArrayList(0);
  		}
  		List ret = new ArrayList(childs.size() * 3);
  		Iterator it = getChilds().iterator();
  		while (it.hasNext()) {
  			AbcNode child = (AbcNode) it.next();
  			if (!child.hasChilds())
  				ret.add(child);
  			else {
  				ret.addAll(child.getDeepestChilds());
  			}
  		}
  		return ret;
  	}
docs: Return the deepest childs of this node. This is useful to browse easily
  smallest segments of parsed text, and get closer to errors.
  <p>
  e.g. node A has childs B and C.<br>
  B has 3 childs D, E and F.<br>
  A.getDeepestChilds() returns D, E, F, C in this order.
  <p>
  If it goes too deep, you can check if node is child of B or C using
  {@link #isChildOf(String)} or {@link #isChildOf_or_is(String)}.
  
  @return a List of node