private int readCharConst(Token token) {
        int c;
        int value = 0;
        while ((c = getc()) != '\'')
            if (c == '\\')
                value = readEscapeChar();
            else if (c < 0x20) {
                if (c == '\n')
                    ++lineNumber;

                return BadToken;
            }
            else
                value = c;

        token.longValue = value;
        return CharConstant;
    }