Lines Matching refs:cs

585 	register cset *cs = allocset(p);  local
603 CHadd(cs, ']');
605 CHadd(cs, '-');
607 p_b_term(p, cs);
609 CHadd(cs, '-');
620 if (CHIN(cs, i) && isalpha(i)) {
623 CHadd(cs, ci);
625 if (cs->multis != NULL)
626 mccase(p, cs);
632 if (CHIN(cs, i))
633 CHsub(cs, i);
635 CHadd(cs, i);
637 CHsub(cs, '\n');
638 if (cs->multis != NULL)
639 mcinvert(p, cs);
642 assert(cs->multis == NULL); /* xxx */
644 if (nch(p, cs) == 1) { /* optimize singleton sets */
645 ordinary(p, firstch(p, cs));
646 freeset(p, cs);
648 EMIT(OANYOF, freezeset(p, cs));
656 p_b_term(p, cs) in p_b_term() argument
658 register cset *cs;
684 p_b_cclass(p, cs);
693 p_b_eclass(p, cs);
712 CHadd(cs, i);
722 p_b_cclass(p, cs) in p_b_cclass() argument
724 register cset *cs;
746 CHadd(cs, c);
748 MCadd(p, cs, u);
758 p_b_eclass(p, cs) in p_b_eclass() argument
760 register cset *cs;
765 CHadd(cs, c);
1006 register cset *cs; local
1040 cs = &p->g->sets[no];
1041 cs->ptr = p->g->setbits + css*((no)/CHAR_BIT);
1042 cs->mask = 1 << ((no) % CHAR_BIT);
1043 cs->hash = 0;
1044 cs->smultis = 0;
1045 cs->multis = NULL;
1047 return(cs);
1055 freeset(p, cs) in freeset() argument
1057 register cset *cs;
1064 CHsub(cs, i);
1065 if (cs == top-1) /* recover only the easy case */
1080 freezeset(p, cs) in freezeset() argument
1082 register cset *cs;
1084 register uch h = cs->hash;
1092 if (cs2->hash == h && cs2 != cs) {
1095 if (!!CHIN(cs2, i) != !!CHIN(cs, i))
1102 freeset(p, cs);
1103 cs = cs2;
1106 return((int)(cs - p->g->sets));
1114 firstch(p, cs) in firstch() argument
1116 register cset *cs;
1122 if (CHIN(cs, i))
1133 nch(p, cs) in nch() argument
1135 register cset *cs;
1142 if (CHIN(cs, i))
1153 mcadd(p, cs, cp) in mcadd() argument
1155 register cset *cs;
1158 register size_t oldend = cs->smultis;
1160 cs->smultis += strlen(cp) + 1;
1161 if (cs->multis == NULL)
1162 cs->multis = malloc(cs->smultis);
1164 cs->multis = realloc(cs->multis, cs->smultis);
1165 if (cs->multis == NULL) {
1170 (void) strcpy(cs->multis + oldend - 1, cp);
1171 cs->multis[cs->smultis - 1] = '\0';
1180 mcsub(cs, cp)
1181 register unsigned cset *cs;
1184 register unsigned char *fp = mcfind(cs, cp);
1189 cs->smultis - (fp + len + 1 - cs->multis));
1190 cs->smultis -= len;
1192 if (cs->smultis == 0) {
1193 free(cs->multis);
1194 cs->multis = NULL;
1198 cs->multis = realloc(cs->multis, cs->smultis);
1199 assert(cs->multis != NULL);
1207 mcin(cs, cp)
1208 register cset *cs;
1211 return(mcfind(cs, cp) != NULL);
1220 mcfind(cs, cp)
1221 register cset *cs;
1226 if (cs->multis == NULL)
1228 for (p = cs->multis; *p != '\0'; p += strlen(p) + 1)
1243 mcinvert(p, cs) in mcinvert() argument
1245 register cset *cs;
1247 assert(cs->multis == NULL); /* xxx */
1258 mccase(p, cs) in mccase() argument
1260 register cset *cs;
1262 assert(cs->multis == NULL); /* xxx */