code: private boolean zzRefill() throws java.io.IOException {
  
      /* first: make room (if you can) */
      if (zzStartRead > 0) {
        zzEndRead += zzFinalHighSurrogate;
        zzFinalHighSurrogate = 0;
        System.arraycopy(zzBuffer, zzStartRead,
                         zzBuffer, 0,
                         zzEndRead-zzStartRead);
  
        /* translate stored positions */
        zzEndRead-= zzStartRead;
        zzCurrentPos-= zzStartRead;
        zzMarkedPos-= zzStartRead;
        zzStartRead = 0;
      }
  
      /* is the buffer big enough? */
      if (zzCurrentPos >= zzBuffer.length - zzFinalHighSurrogate) {
        /* if not: blow it up */
        char newBuffer[] = new char[zzBuffer.length*2];
        System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);
        zzBuffer = newBuffer;
        zzEndRead += zzFinalHighSurrogate;
        zzFinalHighSurrogate = 0;
      }
  
      /* fill the buffer with new input */
      int requested = zzBuffer.length - zzEndRead;
      int numRead = zzReader.read(zzBuffer, zzEndRead, requested);
  
      /* not supposed to occur according to specification of java.io.Reader */
      if (numRead == 0) {
        throw new java.io.IOException("Reader returned 0 characters. See JFlex examples for workaround.");
      }
      if (numRead > 0) {
        zzEndRead += numRead;
        /* If numRead == requested, we might have requested to few chars to
           encode a full Unicode character. We assume that a Reader would
           otherwise never return half characters. */
        if (numRead == requested) {
          if (Character.isHighSurrogate(zzBuffer[zzEndRead - 1])) {
            --zzEndRead;
            zzFinalHighSurrogate = 1;
          }
        }
        /* potentially more input available */
        return false;
      }
  
      /* numRead < 0 ==> end of stream */
      return true;
    }
docs: Refills the input buffer.
  
  @return      <code>false</code>, iff there was new input.
  
  @exception   java.io.IOException  if any I/O-Error occurs