MCPcopy Create free account
hub / github.com/boostorg/build / regbranch

Function regbranch

v2/engine/regexp.c:377–405  ·  view source on GitHub ↗

- regbranch - one alternative of an | operator * * Implements the concatenation operator. */

Source from the content-addressed store, hash-verified

375 * Implements the concatenation operator.
376 */
377static char *
378regbranch( int *flagp )
379{
380 register char *ret;
381 register char *chain;
382 register char *latest;
383 int flags;
384
385 *flagp = WORST; /* Tentatively. */
386
387 ret = regnode(BRANCH);
388 chain = NULL;
389 while (*regparse != '\0' && *regparse != ')' &&
390 *regparse != '\n' && *regparse != '|') {
391 latest = regpiece(&flags);
392 if (latest == NULL)
393 return(NULL);
394 *flagp |= flags&HASWIDTH;
395 if (chain == NULL) /* First piece. */
396 *flagp |= flags&SPSTART;
397 else
398 regtail(chain, latest);
399 chain = latest;
400 }
401 if (chain == NULL) /* Loop ran zero times. */
402 (void) regnode(NOTHING);
403
404 return(ret);
405}
406
407/*
408 - regpiece - something followed by possible [*+?]

Callers 1

regFunction · 0.85

Calls 3

regnodeFunction · 0.85
regpieceFunction · 0.85
regtailFunction · 0.85

Tested by

no test coverage detected