code: private void scanHexFractionAndSuffix(int pos, boolean seendigit) {
          radix = 16;
          Assert.check(reader.ch == '.');
          reader.putChar(true);
          skipIllegalUnderscores();
          if (reader.digit(pos, 16) >= 0) {
              seendigit = true;
              scanDigits(pos, 16);
          }
          if (!seendigit)
              lexError(pos, "invalid.hex.number");
          else
              scanHexExponentAndSuffix(pos);
      }
docs: Read fractional part and 'd' or 'f' suffix of floating point number.