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().