private void scanChar() {
        bp++;
        ch = buf[bp];
        switch (ch) {
        case '\r': // return
            col = 0;
            break;
        case '\n': // newline
            if (bp == 0 || buf[bp-1] != '\r') {
                col = 0;
            }
            break;
        case '\t': // tab
            col = (col / TabInc * TabInc) + TabInc;
            break;
        case '\\': // possible Unicode
            col++;
            convertUnicode();
            break;
        default:
            col++;
            break;
        }
    }