il.append(methodGen.loadIterator());
    public void translate(ClassGenerator classGen, MethodGenerator methodGen) {	final InstructionList il = methodGen.getInstructionList();	// If we're a part of an expression's preficate we want to know what	// type of node we want to be looking for	if (getParent() instanceof Expression) {	    if (getParent().getParent() instanceof Predicate) {		Predicate pred = (Predicate)getParent().getParent();		_type = pred.getPosType();		if ((_type==DOM.ELEMENT) || (_type==DOM.ATTRIBUTE)) _type = -1;	    }	}	if (methodGen instanceof CompareGenerator) {	    il.append(((CompareGenerator)methodGen).loadCurrentNode());	}	else if (methodGen instanceof TestGenerator) {	    il.append(new ILOAD(POSITION_INDEX));	}	else if (_type == -1) {	    final ConstantPoolGen cpg = classGen.getConstantPool();	    final int getPosition = cpg.addInterfaceMethodref(NODE_ITERATOR,							      "getPosition", 							      "()I");	    il.append(methodGen.loadIterator());	    il.append(new INVOKEINTERFACE(getPosition, 1));	}	else {	    final ConstantPoolGen cpg = classGen.getConstantPool();	    // public int getTypedPosition(NodeIterator iterator, int type) {	    final String params = "("+NODE_ITERATOR_SIG+"II)I";	    final int pos = cpg.addInterfaceMethodref(DOM_INTF,						      "getTypedPosition",						      params);	    il.append(methodGen.loadDOM());	    il.append(methodGen.loadIterator());	    il.append(new PUSH(cpg, _type));	    il.append(methodGen.loadCurrentNode());	    il.append(new INVOKEINTERFACE(pos, 4));	}    }