if (i == 0 || i < oldpos.value) {
if (i == 0) {
    void nextval() {        if (oldpos == null) {	    oldpos = (vInteger) k$pos.self.deref();	    long i = vInteger.argVal(arguments, 0);	    vString s = (vString) k$subject.self.deref();	    i = s.posEq(i);	    if (i == 0 || i < oldpos.value) {		retvalue = null;	    } else {	        k$pos.self.Assign(iNew.Integer(i));		retvalue = iNew.String(s.value.substring((int)oldpos.value-1, (int)i-1));	    }	} else {	    k$pos.self.Assign(oldpos);	    retvalue = null;	}    }