private static int idchf(palString string) {
        int ivec, ictab;
        char c = ' ';
        int nptr = string.getPos();
        int digit = 0;
        int l_string = string.length();

        /* Character/vector tables */

        TRACE("idchf");
        final int NCREC = 20;
        final char kctab[] =
                {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ' ', '\t', 'D', 'd', 'E', 'e', '.', '+', '-', ','};

        final int kvtab[] = {NUMBER,
                             NUMBER,
                             NUMBER,
                             NUMBER,
                             NUMBER,
                             NUMBER,
                             NUMBER,
                             NUMBER,
                             NUMBER,
                             NUMBER,
                             SPACE,
                             SPACE,
                             EXPSYM,
                             EXPSYM,
                             EXPSYM,
                             EXPSYM,
                             PERIOD,
                             PLUS,
                             MINUS,
                             COMMA};

        /* Initialize returned value */
        ivec = OTHER;

        /* Pointer outside field? */
        if (nptr < 0 || nptr >= l_string) {

            /* Yes: prepare returned value */
            ivec = END;

        } else {

            /* Not end of field: identify character */
            c = string.getNextChar();
            for (ictab = 0; ictab < NCREC; ictab++) {
                if (kctab[ictab] == c) {

                    /* Recognized */
                    ivec = kvtab[ictab];

                    /* Allow for numerals */
                    digit = ictab;

                    /* Quit the loop */
                    break;
                }
            }

            /* Increment pointer */
            nptr++;
        }
        string.setDigit(digit);

        ENDTRACE("idchf");
        /* Return the value identifying the character */
        return ivec;
    }