values.add(expr.eval(docs, set, (NodeProxy) iter2.next()));
values.add(expr.eval(context, docs, set, (NodeProxy) iter2.next()));
	public Value evalBody(DocumentSet docs, NodeSet context, NodeProxy node) {		if (docs.getLength() == 0)			return new ValueNodeSet(NodeSet.EMPTY_SET);		Value r;		if (context != null)			r = new ValueNodeSet(context);		else			r = new ValueNodeSet(NodeSet.EMPTY_SET);		NodeSet set;		Expression expr;		for (Iterator iter = steps.iterator(); iter.hasNext();) {			set = (NodeSet) r.getNodeList();			expr = (Expression) iter.next();			LOG.debug("processing " + expr.pprint());			if (expr.returnsType() != Constants.TYPE_NODELIST) {				if (expr instanceof Literal || expr instanceof IntNumber)					return expr.eval(docs, set, null);				ValueSet values = new ValueSet();				for (Iterator iter2 = set.iterator(); iter2.hasNext();)					values.add(expr.eval(docs, set, (NodeProxy) iter2.next()));				return values;			}			r = expr.eval(docs, set, node);		}		return r;	}