code: private int readExpDigits(CharArr arr, int lim) throws IOException {
      while (--lim>=0) {
        int ch = getChar();
        if (ch>='0' && ch<='9') {
          arr.write(ch);
        } else {
          if (ch!=-1) start--; // back up
          return NUMBER;
        }
      }
      return BIGNUMBER;
    }
docs: continuation of readExpStart