code: private void scanFraction(int pos) {
          skipIllegalUnderscores();
          if ('0' <= reader.ch && reader.ch <= '9') {
              scanDigits(pos, 10);
          }
          int sp1 = reader.sp;
          if (reader.ch == 'e' || reader.ch == 'E') {
              reader.putChar(true);
              skipIllegalUnderscores();
              if (reader.ch == '+' || reader.ch == '-') {
                  reader.putChar(true);
              }
              skipIllegalUnderscores();
              if ('0' <= reader.ch && reader.ch <= '9') {
                  scanDigits(pos, 10);
                  return;
              }
              lexError(pos, "malformed.fp.lit");
              reader.sp = sp1;
          }
      }
docs: Read fractional part of floating point number.