Lines Matching refs:cs
131 static void p_b_term(struct parse *p, cset *cs);
133 static void p_b_cclass(struct parse *p, cset *cs);
134 static void p_b_cclass_named(struct parse *p, cset *cs, const char[]);
135 static void p_b_eclass(struct parse *p, cset *cs);
146 static void freeset(struct parse *p, cset *cs);
147 static void CHadd(struct parse *p, cset *cs, wint_t ch);
148 static void CHaddrange(struct parse *p, cset *cs, wint_t min, wint_t max);
149 static void CHaddtype(struct parse *p, cset *cs, wctype_t wct);
150 static wint_t singleton(cset *cs);
1009 cset *cs; in p_bracket() local
1026 if ((cs = allocset(p)) == NULL) in p_bracket()
1030 cs->icase = 1; in p_bracket()
1032 cs->invert = 1; in p_bracket()
1034 CHadd(p, cs, ']'); in p_bracket()
1036 CHadd(p, cs, '-'); in p_bracket()
1038 p_b_term(p, cs); in p_bracket()
1040 CHadd(p, cs, '-'); in p_bracket()
1046 if (cs->invert && p->g->cflags®_NEWLINE) in p_bracket()
1047 cs->bmp['\n' >> 3] |= 1 << ('\n' & 7); in p_bracket()
1049 if ((ch = singleton(cs)) != OUT) { /* optimize singleton sets */ in p_bracket()
1051 freeset(p, cs); in p_bracket()
1053 EMIT(OANYOF, (int)(cs - p->g->sets)); in p_bracket()
1078 p_b_term(struct parse *p, cset *cs) argument
1106 p_b_cclass(p, cs);
1115 p_b_eclass(p, cs);
1131 CHadd(p, cs, start);
1139 CHaddrange(p, cs, start, finish);
1145 CHadd(p, cs, i);
1159 cset *cs; local
1161 if ((cs = allocset(p)) == NULL)
1165 cs->icase = 1;
1169 cs->invert = 1;
1172 p_b_cclass_named(p, cs, "alnum");
1175 cs->invert = 1;
1178 p_b_cclass_named(p, cs, "space");
1184 EMIT(OANYOF, (int)(cs - p->g->sets));
1193 p_b_cclass(struct parse *p, cset *cs) argument
1209 p_b_cclass_named(p, cs, clname);
1216 p_b_cclass_named(struct parse *p, cset *cs, const char clname[]) { argument
1223 CHaddtype(p, cs, wct);
1233 p_b_eclass(struct parse *p, cset *cs) argument
1238 CHadd(p, cs, c);
1395 cset *cs; local
1406 if ((cs = allocset(p)) == NULL)
1408 CHadd(p, cs, ch);
1409 EMIT(OANYOF, (int)(cs - p->g->sets));
1554 cset *cs, *ncs; local
1562 cs = &p->g->sets[p->g->ncsets++];
1563 memset(cs, 0, sizeof(*cs));
1565 return(cs);
1573 freeset(struct parse *p, cset *cs) argument
1577 free(cs->wides);
1578 free(cs->ranges);
1579 free(cs->types);
1580 memset(cs, 0, sizeof(*cs));
1581 if (cs == top-1) /* recover only the easy case */
1590 singleton(cset *cs) argument
1595 if (cs->nranges != 0 || cs->ntypes != 0 || cs->icase != 0)
1598 if (cs->nwides > 1)
1603 if (CHIN(cs, i)) {
1612 if (cs->nwides == 0)
1617 if (cs->nwides == 1)
1618 return (cs->wides[0]);
1627 CHadd(struct parse *p, cset *cs, wint_t ch) argument
1632 cs->bmp[ch >> 3] |= 1 << (ch & 7);
1634 newwides = reallocarray(cs->wides, cs->nwides + 1,
1635 sizeof(*cs->wides));
1640 cs->wides = newwides;
1641 cs->wides[cs->nwides++] = ch;
1643 if (cs->icase) {
1645 cs->bmp[nch >> 3] |= 1 << (nch & 7);
1647 cs->bmp[nch >> 3] |= 1 << (nch & 7);
1655 CHaddrange(struct parse *p, cset *cs, wint_t min, wint_t max) argument
1660 CHadd(p, cs, min);
1663 newranges = reallocarray(cs->ranges, cs->nranges + 1,
1664 sizeof(*cs->ranges));
1669 cs->ranges = newranges;
1670 cs->ranges[cs->nranges].min = min;
1671 cs->ranges[cs->nranges].max = max;
1672 cs->nranges++;
1679 CHaddtype(struct parse *p, cset *cs, wctype_t wct) argument
1686 CHadd(p, cs, i);
1687 newtypes = reallocarray(cs->types, cs->ntypes + 1,
1688 sizeof(*cs->types));
1693 cs->types = newtypes;
1694 cs->types[cs->ntypes++] = wct;