mrb_bool mrb_ident_p(const char *s, mrb_int len) { for (mrb_int i = 0; i < len; i++) { if (!identchar(s[i])) return FALSE; } return TRUE; }
static int identstr(char *buf, size_t sz) { size_t i; char c; i = 0; for (c = peek(); i < sz && identchar(c); c = peek()) { next(); buf[i++] = c; } buf[i] = '\0'; return i; }
MRB_API mrb_bool mrb_iv_p(mrb_state *mrb, mrb_sym iv_name) { const char *s; mrb_int i, len; s = mrb_sym2name_len(mrb, iv_name, &len); if (len < 2) return FALSE; if (s[0] != '@') return FALSE; if (s[1] == '@') return FALSE; for (i=1; i<len; i++) { if (!identchar(s[i])) return FALSE; } return TRUE; }