Lines Matching refs:cs

126 static void p_b_term(struct parse *p, cset *cs);
128 static void p_b_cclass(struct parse *p, cset *cs);
129 static void p_b_cclass_named(struct parse *p, cset *cs, const char[]);
130 static void p_b_eclass(struct parse *p, cset *cs);
141 static void freeset(struct parse *p, cset *cs);
142 static void CHadd(struct parse *p, cset *cs, wint_t ch);
143 static void CHaddrange(struct parse *p, cset *cs, wint_t min, wint_t max);
144 static void CHaddtype(struct parse *p, cset *cs, wctype_t wct);
145 static wint_t singleton(cset *cs);
1022 cset *cs; in p_bracket() local
1039 if ((cs = allocset(p)) == NULL) in p_bracket()
1043 cs->icase = 1; in p_bracket()
1045 cs->invert = 1; in p_bracket()
1047 CHadd(p, cs, ']'); in p_bracket()
1049 CHadd(p, cs, '-'); in p_bracket()
1051 p_b_term(p, cs); in p_bracket()
1053 CHadd(p, cs, '-'); in p_bracket()
1059 if (cs->invert && p->g->cflags&REG_NEWLINE) in p_bracket()
1060 cs->bmp['\n' >> 3] |= 1 << ('\n' & 7); in p_bracket()
1062 if ((ch = singleton(cs)) != OUT) { /* optimize singleton sets */ in p_bracket()
1064 freeset(p, cs); in p_bracket()
1066 EMIT(OANYOF, (int)(cs - p->g->sets)); in p_bracket()
1091 p_b_term(struct parse *p, cset *cs) argument
1119 p_b_cclass(p, cs);
1128 p_b_eclass(p, cs);
1144 CHadd(p, cs, start);
1152 CHaddrange(p, cs, start, finish);
1158 CHadd(p, cs, i);
1172 cset *cs; local
1174 if ((cs = allocset(p)) == NULL)
1178 cs->icase = 1;
1182 cs->invert = 1;
1185 p_b_cclass_named(p, cs, "alnum");
1188 cs->invert = 1;
1191 p_b_cclass_named(p, cs, "space");
1197 EMIT(OANYOF, (int)(cs - p->g->sets));
1206 p_b_cclass(struct parse *p, cset *cs) argument
1222 p_b_cclass_named(p, cs, clname);
1229 p_b_cclass_named(struct parse *p, cset *cs, const char clname[]) { argument
1236 CHaddtype(p, cs, wct);
1246 p_b_eclass(struct parse *p, cset *cs) argument
1251 CHadd(p, cs, c);
1408 cset *cs; local
1419 if ((cs = allocset(p)) == NULL)
1421 CHadd(p, cs, ch);
1422 EMIT(OANYOF, (int)(cs - p->g->sets));
1567 cset *cs, *ncs; local
1575 cs = &p->g->sets[p->g->ncsets++];
1576 memset(cs, 0, sizeof(*cs));
1578 return(cs);
1586 freeset(struct parse *p, cset *cs) argument
1590 free(cs->wides);
1591 free(cs->ranges);
1592 free(cs->types);
1593 memset(cs, 0, sizeof(*cs));
1594 if (cs == top-1) /* recover only the easy case */
1603 singleton(cset *cs) argument
1608 if (cs->nranges != 0 || cs->ntypes != 0 || cs->icase != 0)
1611 if (cs->nwides > 1)
1616 if (CHIN(cs, i)) {
1625 if (cs->nwides == 0)
1630 if (cs->nwides == 1)
1631 return (cs->wides[0]);
1640 CHadd(struct parse *p, cset *cs, wint_t ch) argument
1645 cs->bmp[ch >> 3] |= 1 << (ch & 7);
1647 newwides = reallocarray(cs->wides, cs->nwides + 1,
1648 sizeof(*cs->wides));
1653 cs->wides = newwides;
1654 cs->wides[cs->nwides++] = ch;
1656 if (cs->icase) {
1658 cs->bmp[nch >> 3] |= 1 << (nch & 7);
1660 cs->bmp[nch >> 3] |= 1 << (nch & 7);
1668 CHaddrange(struct parse *p, cset *cs, wint_t min, wint_t max) argument
1673 CHadd(p, cs, min);
1676 newranges = reallocarray(cs->ranges, cs->nranges + 1,
1677 sizeof(*cs->ranges));
1682 cs->ranges = newranges;
1683 cs->ranges[cs->nranges].min = min;
1684 cs->ranges[cs->nranges].max = max;
1685 cs->nranges++;
1692 CHaddtype(struct parse *p, cset *cs, wctype_t wct) argument
1699 CHadd(p, cs, i);
1700 newtypes = reallocarray(cs->types, cs->ntypes + 1,
1701 sizeof(*cs->types));
1706 cs->types = newtypes;
1707 cs->types[cs->ntypes++] = wct;