Lines Matching refs:sp

35 detrie(Trie_node_t* x, Sfio_t* sp, char* b, char* p, char* e, int delimiter)  in detrie()  argument
51 sfputc(sp, x->c); in detrie()
54 sfputc(sp, '|'); in detrie()
55 sfputc(sp, '<'); in detrie()
56 sfwrite(sp, b, p - b); in detrie()
57 sfputc(sp, '>'); in detrie()
58 detrie(y, sp, b, p, e, delimiter); in detrie()
62 sfputc(sp, '|'); in detrie()
63 sfputc(sp, '{'); in detrie()
64 sfwrite(sp, b, p - b); in detrie()
65 sfputc(sp, '}'); in detrie()
72 decomp(register Rex_t* e, Sfio_t* sp, int type, int delimiter, regflags_t flags) in decomp() argument
94 if (decomp(e->re.group.expr.binary.left, sp, type, delimiter, flags)) in decomp()
96 sfputc(sp, '|'); in decomp()
97 …if (e->re.group.expr.binary.right && decomp(e->re.group.expr.binary.right, sp, type, delimiter, fl… in decomp()
101 sfprintf(sp, "\\%d", e->lo); in decomp()
105 sfputc(sp, '^'); in decomp()
109 sfputc(sp, '$'); in decomp()
112 meta(sp, '<', type, 1, delimiter); in decomp()
115 meta(sp, '<', type, 1, delimiter); in decomp()
118 sfprintf(sp, "\\w"); in decomp()
131 sfputc(sp, '*'); in decomp()
133 sfputc(sp, '+'); in decomp()
135 sfprintf(sp, "{%d,}", e->lo); in decomp()
138 sfprintf(sp, "{%d,%d}", e->lo, e->hi); in decomp()
140 sfputc(sp, '?'); in decomp()
147 if (decomp(e->re.group.expr.rex, sp, type, delimiter, flags)) in decomp()
151 sfputc(sp, '['); in decomp()
227 sfputc(sp, '^'); in decomp()
229 sfputc(sp, ']'); in decomp()
231 sfputc(sp, '-'); in decomp()
235 sfputc(sp, '\\'); in decomp()
236 sfputc(sp, delimiter); in decomp()
238 sfwrite(sp, ic, t - ic); in decomp()
243 sfputc(sp, ']'); in decomp()
245 sfputc(sp, '-'); in decomp()
249 sfputc(sp, '\\'); in decomp()
250 sfputc(sp, delimiter); in decomp()
254 sfwrite(sp, nc + 1, s - nc - 1); in decomp()
255 sfputc(sp, '^'); in decomp()
258 sfwrite(sp, nc, s - nc); in decomp()
260 sfputc(sp, ']'); in decomp()
265 meta(sp, e->re.onechar, type, 0, delimiter); in decomp()
268 sfputc(sp, '.'); in decomp()
276 sfputc(sp, '*'); in decomp()
278 meta(sp, '+', type, 1, delimiter); in decomp()
281 meta(sp, '{', type, 1, delimiter); in decomp()
282 sfprintf(sp, "%d,", e->lo); in decomp()
283 meta(sp, '}', type, 1, delimiter); in decomp()
288 meta(sp, '{', type, 1, delimiter); in decomp()
289 sfprintf(sp, "%d,%d", e->lo, e->hi); in decomp()
290 meta(sp, '}', type, 1, delimiter); in decomp()
293 meta(sp, '?', type, 1, delimiter); in decomp()
296 sfputc(sp, c); in decomp()
304 meta(sp, c, type, 0, delimiter); in decomp()
315 sfputc(sp, '|'); in decomp()
318 detrie(e->re.trie.root[c], sp, pfx, pfx, &pfx[sizeof(pfx)], delimiter); in decomp()
323 sfprintf(sp, "!("); in decomp()
324 if (decomp(e->re.group.expr.rex, sp, type, delimiter, flags)) in decomp()
327 sfputc(sp, ')'); in decomp()
329 sfputc(sp, '!'); in decomp()
332 if (decomp(e->re.group.expr.binary.left, sp, type, delimiter, flags)) in decomp()
334 sfputc(sp, '&'); in decomp()
335 if (decomp(e->re.group.expr.binary.right, sp, type, delimiter, flags)) in decomp()
340 sfputc(sp, '@'); in decomp()
341 meta(sp, '(', type, 1, delimiter); in decomp()
342 if (decomp(e->re.group.expr.rex, sp, type, delimiter, flags)) in decomp()
344 meta(sp, ')', type, 1, delimiter); in decomp()
350 meta(sp, '(', type, 1, delimiter); in decomp()
351 sfputc(sp, '?'); in decomp()
352 if (decomp(e->re.group.expr.rex, sp, type, delimiter, flags)) in decomp()
354 meta(sp, ')', type, 1, delimiter); in decomp()
357 meta(sp, '(', type, 1, delimiter); in decomp()
358 sfputc(sp, '?'); in decomp()
359 …if (e->re.group.expr.binary.left && decomp(e->re.group.expr.binary.left, sp, type, delimiter, flag… in decomp()
363 sfputc(sp, ':'); in decomp()
364 …if (q->re.group.expr.binary.left && decomp(q->re.group.expr.binary.left, sp, type, delimiter, flag… in decomp()
366 sfputc(sp, ':'); in decomp()
367 …if (q->re.group.expr.binary.right && decomp(q->re.group.expr.binary.right, sp, type, delimiter, fl… in decomp()
370 meta(sp, ')', type, 1, delimiter); in decomp()
373 meta(sp, '(', type, 1, delimiter); in decomp()
374 sfputc(sp, '?'); in decomp()
375 if (decomp(e->re.group.expr.rex, sp, type, delimiter, flags)) in decomp()
377 meta(sp, ')', type, 1, delimiter); in decomp()
382 sfprintf(sp, "<ERROR:REX_%d>", e->type); in decomp()
396 Sfio_t* sp; in regdecomp() local
402 if (!(sp = sfstropen())) in regdecomp()
428 sfputc(sp, delimiter); in regdecomp()
432 if (decomp(p->env->rex, sp, type, delimiter, flags)) in regdecomp()
437 sfputc(sp, delimiter); in regdecomp()
438 if ((r = sfstrtell(sp) + 1) <= n) in regdecomp()
440 if (!(s = sfstruse(sp))) in regdecomp()
446 sfstrclose(sp); in regdecomp()