public Object cc_next(String pattern) throws Exception {
        if (m('\'') || m('"')) {
            return check_date(cc_string(ch));
        } else if (m(tk_lstr_start)) {
            return cc_lstring();
        } else if (m('{')) {
            return cc_obj();
        } else if (m('[')) {
            return cc_list();
        } 
        return cc_value(cc_word(pattern));
    }