if (i1 > i2) { int tmp = i1; i1 = i2; i2 = tmp; }
    public void nextval() {        if (c1 == null) {	    for (int i = 0; i < arguments.length; i++) {		arguments[i] = arguments[i].deref();	    }	    // %#%#%# c1 should default to &cset....	    c1 = vCset.argVal(arguments, 0, 0, vCset.MAX_VALUE);	    c2 = vCset.argVal(arguments, 1, '(', '(');	    c3 = vCset.argVal(arguments, 2, ')', ')');	    s = iRuntime.argSubject(arguments, 3);	    i1 = s.posEq(iRuntime.argPos(arguments, 4));	    i2 = s.posEq(vInteger.argVal(arguments, 5, 0));	}	int balance = 0;	for (; i1 < i2; i1++) {	    if (balance == 0 && c1.member(s.value.charAt(i1-1))) {		i1 = i1+1;	        retvalue = iNew.Integer(i1-1);		return;	    }	    if (c2.member(s.value.charAt(i1-1))) {		balance++;	    } else if (c3.member(s.value.charAt(i1-1))) {		balance--;		if (balance < 0) {		    retvalue = null;		    return;		}	    }	}	retvalue = null;    }