Lines Matching refs:cs
799 cset *cs; in p_bracket() local
816 if ((cs = allocset(p)) == NULL) { in p_bracket()
824 CHadd(cs, ']'); in p_bracket()
826 CHadd(cs, '-'); in p_bracket()
828 p_b_term(p, cs); in p_bracket()
830 CHadd(cs, '-'); in p_bracket()
834 freeset(p, cs); in p_bracket()
843 if (CHIN(cs, i) && isalpha(i)) { in p_bracket()
846 CHadd(cs, ci); in p_bracket()
848 if (cs->multis != NULL) in p_bracket()
849 mccase(p, cs); in p_bracket()
855 if (CHIN(cs, i)) in p_bracket()
856 CHsub(cs, i); in p_bracket()
858 CHadd(cs, i); in p_bracket()
860 CHsub(cs, '\n'); in p_bracket()
861 if (cs->multis != NULL) in p_bracket()
862 mcinvert(p, cs); in p_bracket()
865 assert(cs->multis == NULL); /* xxx */ in p_bracket()
867 if (nch(p, cs) == 1) { /* optimize singleton sets */ in p_bracket()
868 ordinary(p, firstch(p, cs)); in p_bracket()
869 freeset(p, cs); in p_bracket()
871 EMIT(OANYOF, freezeset(p, cs)); in p_bracket()
878 p_b_term(struct parse *p, cset *cs) in p_b_term() argument
904 p_b_cclass(p, cs); in p_b_term()
913 p_b_eclass(p, cs); in p_b_term()
932 CHadd(cs, i); in p_b_term()
941 p_b_cclass(struct parse *p, cset *cs) in p_b_cclass() argument
963 CHadd(cs, c); in p_b_cclass()
965 MCadd(p, cs, u); in p_b_cclass()
974 p_b_eclass(struct parse *p, cset *cs) in p_b_eclass() argument
979 CHadd(cs, c); in p_b_eclass()
1201 cset *cs; in allocset() local
1234 cs = &p->g->sets[no]; in allocset()
1235 cs->ptr = p->g->setbits + css*((no)/CHAR_BIT); in allocset()
1236 cs->mask = 1 << ((no) % CHAR_BIT); in allocset()
1237 cs->hash = 0; in allocset()
1238 cs->smultis = 0; in allocset()
1239 cs->multis = NULL; in allocset()
1241 return(cs); in allocset()
1257 freeset(struct parse *p, cset *cs) in freeset() argument
1264 CHsub(cs, i); in freeset()
1265 if (cs == top-1) /* recover only the easy case */ in freeset()
1279 freezeset(struct parse *p, cset *cs) in freezeset() argument
1281 uch h = cs->hash; in freezeset()
1289 if (cs2->hash == h && cs2 != cs) { in freezeset()
1292 if (!!CHIN(cs2, i) != !!CHIN(cs, i)) in freezeset()
1299 freeset(p, cs); in freezeset()
1300 cs = cs2; in freezeset()
1303 return((int)(cs - p->g->sets)); in freezeset()
1310 firstch(struct parse *p, cset *cs) in firstch() argument
1316 if (CHIN(cs, i)) in firstch()
1326 nch(struct parse *p, cset *cs) in nch() argument
1333 if (CHIN(cs, i)) in nch()
1342 mcadd( struct parse *p, cset *cs, const char *cp) in mcadd() argument
1344 size_t oldend = cs->smultis; in mcadd()
1347 cs->smultis += strlen(cp) + 1; in mcadd()
1348 np = realloc(cs->multis, cs->smultis); in mcadd()
1350 if (cs->multis) in mcadd()
1351 free(cs->multis); in mcadd()
1352 cs->multis = NULL; in mcadd()
1356 cs->multis = np; in mcadd()
1358 llvm_strlcpy(cs->multis + oldend - 1, cp, cs->smultis - oldend + 1); in mcadd()
1369 mcinvert(struct parse *p, cset *cs) in mcinvert() argument
1371 assert(cs->multis == NULL); /* xxx */ in mcinvert()
1382 mccase(struct parse *p, cset *cs) in mccase() argument
1384 assert(cs->multis == NULL); /* xxx */ in mccase()