Lines Matching full:cs

88 static void p_b_term(struct parse *p, cset *cs);
89 static void p_b_cclass(struct parse *p, cset *cs);
90 static void p_b_eclass(struct parse *p, cset *cs);
100 static void freeset(struct parse *p, cset *cs);
101 static int freezeset(struct parse *p, cset *cs);
102 static int firstch(struct parse *p, cset *cs);
103 static int nch(struct parse *p, cset *cs);
104 static void mcadd(struct parse *p, cset *cs, const char *cp);
106 static void mcsub(cset *cs, char *cp);
107 static int mcin(cset *cs, char *cp);
108 static char *mcfind(cset *cs, char *cp);
110 static void mcinvert(struct parse *p, cset *cs);
111 static void mccase(struct parse *p, cset *cs);
688 cset *cs; in p_bracket() local
693 cs = allocset(p); in p_bracket()
694 if (cs == NULL) in p_bracket()
712 CHadd(cs, ']'); in p_bracket()
714 CHadd(cs, '-'); in p_bracket()
716 p_b_term(p, cs); in p_bracket()
718 CHadd(cs, '-'); in p_bracket()
729 if (CHIN(cs, i) && isalpha(i)) { in p_bracket()
732 CHadd(cs, ci); in p_bracket()
734 if (cs->multis != NULL) in p_bracket()
735 mccase(p, cs); in p_bracket()
741 if (CHIN(cs, i)) in p_bracket()
742 CHsub(cs, i); in p_bracket()
744 CHadd(cs, i); in p_bracket()
746 CHsub(cs, '\n'); in p_bracket()
747 if (cs->multis != NULL) in p_bracket()
748 mcinvert(p, cs); in p_bracket()
751 assert(cs->multis == NULL); /* xxx */ in p_bracket()
753 if (nch(p, cs) == 1) { /* optimize singleton sets */ in p_bracket()
754 ordinary(p, firstch(p, cs)); in p_bracket()
755 freeset(p, cs); in p_bracket()
757 EMIT(OANYOF, freezeset(p, cs)); in p_bracket()
764 p_b_term(struct parse *p, cset *cs) in p_b_term() argument
790 p_b_cclass(p, cs); in p_b_term()
799 p_b_eclass(p, cs); in p_b_term()
818 CHadd(cs, i); in p_b_term()
827 p_b_cclass(struct parse *p, cset *cs) in p_b_cclass() argument
849 CHadd(cs, c); in p_b_cclass()
851 MCadd(p, cs, u); in p_b_cclass()
860 p_b_eclass(struct parse *p, cset *cs) in p_b_eclass() argument
865 CHadd(cs, c); in p_b_eclass()
1095 cset *cs; in allocset() local
1132 cs = &p->g->sets[no]; in allocset()
1133 cs->ptr = p->g->setbits + css*((no)/CHAR_BIT); in allocset()
1134 cs->mask = 1 << ((no) % CHAR_BIT); in allocset()
1135 cs->hash = 0; in allocset()
1136 cs->smultis = 0; in allocset()
1137 cs->multis = NULL; in allocset()
1139 return(cs); in allocset()
1146 freeset(struct parse *p, cset *cs) in freeset() argument
1153 CHsub(cs, i); in freeset()
1154 if (cs == top-1) /* recover only the easy case */ in freeset()
1168 freezeset(struct parse *p, cset *cs) in freezeset() argument
1170 uch h = cs->hash; in freezeset()
1178 if (cs2->hash == h && cs2 != cs) { in freezeset()
1181 if (!!CHIN(cs2, i) != !!CHIN(cs, i)) in freezeset()
1188 freeset(p, cs); in freezeset()
1189 cs = cs2; in freezeset()
1192 return((int)(cs - p->g->sets)); in freezeset()
1199 firstch(struct parse *p, cset *cs) in firstch() argument
1205 if (CHIN(cs, i)) in firstch()
1215 nch(struct parse *p, cset *cs) in nch() argument
1222 if (CHIN(cs, i)) in nch()
1231 mcadd(struct parse *p, cset *cs, const char *cp) in mcadd() argument
1233 size_t oldend = cs->smultis; in mcadd()
1236 cs->smultis += strlen(cp) + 1; in mcadd()
1237 np = realloc(cs->multis, cs->smultis); in mcadd()
1239 if (cs->multis) in mcadd()
1240 free(cs->multis); in mcadd()
1241 cs->multis = NULL; in mcadd()
1245 cs->multis = np; in mcadd()
1247 strlcpy(cs->multis + oldend - 1, cp, cs->smultis - oldend + 1); in mcadd()
1257 mcinvert(struct parse *p, cset *cs) in mcinvert() argument
1259 assert(cs->multis == NULL); /* xxx */ in mcinvert()
1269 mccase(struct parse *p, cset *cs) in mccase() argument
1271 assert(cs->multis == NULL); /* xxx */ in mccase()