if ((result = process_ancestor(vn))!= -2)
if ((result = process_ancestor2(vn))!= -2)
    public int evalNodeSet(VTDNav vn)     	throws NavException,XPathEvalException{        int result;		if (currentStep == null) {			if ( pathType ==  ABSOLUTE_PATH){				vn.toElement(VTDNav.ROOT);				vn.toElement(VTDNav.PARENT);			}			currentStep =  s;			if (currentStep == null){				if (  state ==  START){					 state =  END;					return 0;				}				else{					return -1;				}			}		}				while (true) {			switch (currentStep.axis_type) {			case AxisType.CHILD:			    if ( (result = process_child(vn))!=-2)				   return result;			    break;			case AxisType.DESCENDANT_OR_SELF:			case AxisType.DESCENDANT:			case AxisType.PRECEDING:											case AxisType.FOLLOWING:			    if ((result = process_DDFP(vn))!= -2)			        return result;			    break;			case AxisType.PARENT:			    if ((result = process_parent(vn))!= -2)			        return result;			    break;			case AxisType.ANCESTOR:			    if ((result = process_ancestor(vn))!= -2)			        return result;			    break;			case AxisType.ANCESTOR_OR_SELF:			    if ((result = process_ancestor_or_self(vn))!= -2)			        return result;			    break;			case AxisType.SELF:			    if ((result = process_self(vn))!= -2)			        return result;			    break;			case AxisType.FOLLOWING_SIBLING:			    if ((result = process_following_sibling(vn))!= -2)			        return result;			    break;			case AxisType.PRECEDING_SIBLING:			    if ((result = process_preceding_sibling(vn))!= -2)			        return result;			    break;			case AxisType.ATTRIBUTE:			    if ((result = process_attribute(vn))!= -2)			        return result;			    break;			default:			    throw new XPathEvalException("axis not supported");			}		}            }