}
	public int evalNodeSet(VTDNav vn) throws XPathEvalException, NavException {		int a,b;		while (true) {			switch (evalState) {			case 0: //this state is teh initial state;				a = fe.evalNodeSet(vn);				if (a == -1){					evalState =4;				}				else					evalState = 1;				break;			case 1: // fe returns valid value				vn.push2();				a = lpe.evalNodeSet(vn);				if (a == -1) {					lpe.reset(vn);										evalState = 3;				} else {					evalState = 2;					if (isUnique(a))					return a;				}				break;			case 2:				a = lpe.evalNodeSet(vn);				if (a == -1) {					lpe.reset(vn);					evalState = 3;				} else{					if (isUnique(a))						return a;					//return a;				}				break;			case 3:				vn.pop2();				a = fe.evalNodeSet(vn);				if (a == -1)					evalState = 4;				else					evalState = 2;				break;			case 4:				return -1;			default:				throw new XPathEvalException(						"Invalid state evaluating PathExpr");			}		}		//return -1;	}