private void scanHexExponentAndSuffix(int pos) {
        if (reader.ch == 'p' || reader.ch == 'P') {
            reader.putChar(true);
            skipIllegalUnderscores();
            if (reader.ch == '+' || reader.ch == '-') {
                reader.putChar(true);
            }
            skipIllegalUnderscores();
            if ('0' <= reader.ch && reader.ch <= '9') {
                scanDigits(pos, 10);
                if (!allowHexFloats) {
                    lexError(pos, "unsupported.fp.lit", source.name);
                    allowHexFloats = true;
                }
                else if (!hexFloatsWork)
                    lexError(pos, "unsupported.cross.fp.lit");
            } else
                lexError(pos, "malformed.fp.lit");
        } else {
            lexError(pos, "malformed.fp.lit");
        }
        if (reader.ch == 'f' || reader.ch == 'F') {
            reader.putChar(true);
            tk = TokenKind.FLOATLITERAL;
            radix = 16;
        } else {
            if (reader.ch == 'd' || reader.ch == 'D') {
                reader.putChar(true);
            }
            tk = TokenKind.DOUBLELITERAL;
            radix = 16;
        }
    }
private void scanHexExponentAndSuffix ( int pos ) { if ( reader . ch == 'p' || reader . ch == 'P' ) { reader . putChar ( true ) ; skipIllegalUnderscores ( ) ; if ( reader . ch == '+' || reader . ch == '-' ) { reader . putChar ( true ) ; } skipIllegalUnderscores ( ) ; if ( '0' <= reader . ch && reader . ch <= '9' ) { scanDigits ( pos , 10 ) ; if ( ! allowHexFloats ) { lexError ( pos , "unsupported.fp.lit" , source . name ) ; allowHexFloats = true ; } else if ( ! hexFloatsWork ) lexError ( pos , "unsupported.cross.fp.lit" ) ; } else lexError ( pos , "malformed.fp.lit" ) ; } else { lexError ( pos , "malformed.fp.lit" ) ; } if ( reader . ch == 'f' || reader . ch == 'F' ) { reader . putChar ( true ) ; tk = TokenKind . FLOATLITERAL ; radix = 16 ; } else { if ( reader . ch == 'd' || reader . ch == 'D' ) { reader . putChar ( true ) ; } tk = TokenKind . DOUBLELITERAL ; radix = 16 ; } }
Read fractional part of hexadecimal floating point number.