LLVM: lib/Support/regexec.c File Reference (original) (raw)

#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include <ctype.h>
#include "[regex_impl.h](regex%5F%5Fimpl%5F8h%5Fsource.html)"
#include "[regutils.h](regutils%5F8h%5Fsource.html)"
#include "[regex2.h](regex2%5F8h%5Fsource.html)"
#include "[regengine.inc](regengine%5F8inc%5Fsource.html)"

Go to the source code of this file.

Macros
#define states1 long /* for later use in llvm_regexec() decision */
#define states states1
#define CLEAR(v) ((v) = 0)
#define SET0(v, n) ((v) &= ~((unsigned long)1 << (n)))
#define SET1(v, n) ((v) |= (unsigned long)1 << (n))
#define ISSET(v, n) (((v) & ((unsigned long)1 << (n))) != 0)
#define ASSIGN(d, s) ((d) = (s))
#define EQ(a, b) ((a) == (b))
#define STATEVARS long dummy /* dummy version */
#define STATESETUP(m, n) /* nothing */
#define STATETEARDOWN(m) /* nothing */
#define SETUP(v) ((v) = 0)
#define onestate long
#define INIT(o, n) ((o) = (unsigned long)1 << (n))
#define INC(o) ((o) = (unsigned long)(o) << 1)
#define ISSTATEIN(v, o) (((v) & (o)) != 0)
#define FWD(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) << (n))
#define BACK(dst, src, n) ((dst) |= ((unsigned long)(src)&(here)) >> (n))
#define ISSETBACK(v, n) (((v) & ((unsigned long)here >> (n))) != 0)
#define SNAMES /* engine.inc looks after details */
#define states char *
#define CLEAR(v) memset(v, 0, m->g->nstates)
#define SET0(v, n) ((v)[n] = 0)
#define SET1(v, n) ((v)[n] = 1)
#define ISSET(v, n) ((v)[n])
#define ASSIGN(d, s) memmove(d, s, m->g->nstates)
#define EQ(a, b) (memcmp(a, b, m->g->nstates) == 0)
#define STATEVARS long vn; char *space
#define STATESETUP(m, nv)
#define STATETEARDOWN(m) { free((m)->space); }
#define SETUP(v) ((v) = &m->space[m->vn++ * m->g->nstates])
#define onestate long
#define INIT(o, n) ((o) = (n))
#define INC(o) ((o)++)
#define ISSTATEIN(v, o) ((v)[o])
#define FWD(dst, src, n) ((dst)[here+(n)] |= (src)[here])
#define BACK(dst, src, n) ((dst)[here-(n)] |= (src)[here])
#define ISSETBACK(v, n) ((v)[here - (n)])
#define LNAMES /* flag */
#define GOODFLAGS(f) ((f)&(REG_NOTBOL|REG_NOTEOL

ASSIGN [1/2]

| #define ASSIGN | ( | | d, | | -------------- | ----------- | | -- | | | s | | | | | ) | ((d) = (s)) | | |

ASSIGN [2/2]

| #define ASSIGN | ( | | d, | | -------------- | ------------------------------------------------------------------------------------------------- | | -- | | | s | | | | | ) | memmove(d, s, m->g->nstates) | | |

BACK [1/2]

| #define BACK | ( | | dst, | | ------------ | ---------------------------------------------------------------------- | | ---- | | | src, | | | | | | n | | | | | ) | ((dst) |= ((unsigned long)(src)&(here)) >> (n)) | | |

BACK [2/2]

| #define BACK | ( | | dst, | | ------------ | ------------------------------------- | | ---- | | | src, | | | | | | n | | | | | ) | ((dst)[here-(n)] |= (src)[here]) | | |

CLEAR [1/2]

| #define CLEAR | ( | | v | ) | ((v) = 0) | | ------------- | - | | - | - | --------- |

CLEAR [2/2]

| #define CLEAR | ( | | v | ) | memset(v, 0, m->g->nstates) | | ------------- | - | | - | - | ------------------------------------------------------------------------------------------------ |

EQ [1/2]

| #define EQ | ( | | a, | | ---------- | ------------ | | -- | | | b | | | | | ) | ((a) == (b)) | | |

EQ [2/2]

| #define EQ | ( | | a, | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -- | | | b | | | | | ) | (memcmp(a, b, m->g->nstates) == 0) | | |

FWD [1/2]

| #define FWD | ( | | dst, | | ----------- | ---------------------------------------------------------------------- | | ---- | | | src, | | | | | | n | | | | | ) | ((dst) |= ((unsigned long)(src)&(here)) << (n)) | | |

FWD [2/2]

| #define FWD | ( | | dst, | | ----------- | ------------------------------------- | | ---- | | | src, | | | | | | n | | | | | ) | ((dst)[here+(n)] |= (src)[here]) | | |

GOODFLAGS

INC [1/2]

| #define INC | ( | | o | ) | ((o) = (unsigned long)(o) << 1) | | ----------- | - | | - | - | ----------------------------------------------------- |

INC [2/2]

INIT [1/2]

| #define INIT | ( | | o, | | ------------ | ----------------------------------------------------- | | -- | | | n | | | | | ) | ((o) = (unsigned long)1 << (n)) | | |

INIT [2/2]

| #define INIT | ( | | o, | | ------------ | ----------- | | -- | | | n | | | | | ) | ((o) = (n)) | | |

ISSET [1/2]

| #define ISSET | ( | | v, | | ------------- | -------------------------------------------------------------- | | -- | | | n | | | | | ) | (((v) & ((unsigned long)1 << (n))) != 0) | | |

ISSET [2/2]

| #define ISSET | ( | | v, | | ------------- | ---------- | | -- | | | n | | | | | ) | ((v)[n]) | | |

ISSETBACK [1/2]

| #define ISSETBACK | ( | | v, | | ----------------- | ----------------------------------------------------------------- | | -- | | | n | | | | | ) | (((v) & ((unsigned long)here >> (n))) != 0) | | |

ISSETBACK [2/2]

| #define ISSETBACK | ( | | v, | | ----------------- | ------------------- | | -- | | | n | | | | | ) | ((v)[here - (n)]) | | |

ISSTATEIN [1/2]

| #define ISSTATEIN | ( | | v, | | ----------------- | ------------------ | | -- | | | o | | | | | ) | (((v) & (o)) != 0) | | |

ISSTATEIN [2/2]

| #define ISSTATEIN | ( | | v, | | ----------------- | ---------- | | -- | | | o | | | | | ) | ((v)[o]) | | |

LNAMES

#define LNAMES /* flag */

onestate [1/2]

onestate [2/2]

SET0 [1/2]

| #define SET0 | ( | | v, | | ------------ | ---------------------------------------------------------- | | -- | | | n | | | | | ) | ((v) &= ~((unsigned long)1 << (n))) | | |

SET0 [2/2]

| #define SET0 | ( | | v, | | ------------ | -------------- | | -- | | | n | | | | | ) | ((v)[n] = 0) | | |

SET1 [1/2]

| #define SET1 | ( | | v, | | ------------ | ------------------------------------------------------- | | -- | | | n | | | | | ) | ((v) |= (unsigned long)1 << (n)) | | |

SET1 [2/2]

| #define SET1 | ( | | v, | | ------------ | -------------- | | -- | | | n | | | | | ) | ((v)[n] = 1) | | |

SETUP [1/2]

| #define SETUP | ( | | v | ) | ((v) = 0) | | ------------- | - | | - | - | --------- |

SETUP [2/2]

| #define SETUP | ( | | v | ) | ((v) = &m->space[m->vn++ * m->g->nstates]) | | ------------- | - | | - | - | ------------------------------------------------------------------------------------------------------------------ |

SNAMES

#define SNAMES /* engine.inc looks after details */

states [1/2]

states [2/2]

states1

STATESETUP [1/2]

| #define STATESETUP | ( | | m, | | ------------------ | --------------- | | -- | | | n | | | | | ) | /* nothing */ | | |

STATESETUP [2/2]

| #define STATESETUP | ( | | m, | | ------------------ | - | | -- | | | nv | | | | | ) | | | |

Value:

{ (m)->space = malloc((nv)*(m)->g->nstates); \

if ((m)->space == NULL) return(REG_ESPACE); \

(m)->vn = 0; }

INLINE void g(uint32_t *state, size_t a, size_t b, size_t c, size_t d, uint32_t x, uint32_t y)

Definition at line 114 of file regexec.c.

STATETEARDOWN [1/2]

| #define STATETEARDOWN | ( | | m | ) | /* nothing */ | | --------------------- | - | | - | - | --------------- |

STATETEARDOWN [2/2]

| #define STATETEARDOWN | ( | | m | ) | { free((m)->space); } | | --------------------- | - | | - | - | --------------------- |

STATEVARS [1/2]

#define STATEVARS long dummy /* dummy version */

STATEVARS [2/2]

#define STATEVARS long vn; char *space

llvm_regexec()

Definition at line 141 of file regexec.c.

References assert(), g(), GOODFLAGS, MAGIC1, MAGIC2, llvm_regex::re_g, llvm_regex::re_magic, REG_BADPAT, REG_LARGE, REGEX_BAD, and states1.

Referenced by llvm::Regex::match().