diff options
Diffstat (limited to 'examples/dte/regexp.h')
| -rw-r--r-- | examples/dte/regexp.h | 85 |
1 files changed, 0 insertions, 85 deletions
diff --git a/examples/dte/regexp.h b/examples/dte/regexp.h deleted file mode 100644 index 50fdabb..0000000 --- a/examples/dte/regexp.h +++ /dev/null @@ -1,85 +0,0 @@ -#ifndef REGEXP_H -#define REGEXP_H - -#include <regex.h> -#include <stdbool.h> -#include <stddef.h> -#include "util/macros.h" - -enum { -#ifdef REG_ENHANCED - // The REG_ENHANCED flag enables various extensions on macOS - // (see "enhanced features" in re_format(7)). Most of these - // extensions are enabled by default on Linux (in both glibc - // and musl) without the need for any extra flags. - DEFAULT_REGEX_FLAGS = REG_EXTENDED | REG_ENHANCED, -#else - // POSIX Extended Regular Expressions (ERE) are used almost - // everywhere in this codebase, except where Basic Regular - // Expressions (BRE) are explicitly called for (most notably - // in search_tag(), which is used for ctags patterns). - DEFAULT_REGEX_FLAGS = REG_EXTENDED, -#endif -}; - -typedef struct { - regex_t re; - char str[]; -} CachedRegexp; - -typedef struct { - char *str; - regex_t re; -} InternedRegexp; - -// Platform-specific patterns for matching word boundaries, as detected -// and initialized by regexp_init_word_boundary_tokens() -typedef struct { - char start[8]; - char end[8]; -} RegexpWordBoundaryTokens; - -bool regexp_compile_internal(regex_t *re, const char *pattern, int flags) WARN_UNUSED_RESULT; - -WARN_UNUSED_RESULT -static inline bool regexp_compile(regex_t *re, const char *pattern, int flags) -{ - return regexp_compile_internal(re, pattern, flags | DEFAULT_REGEX_FLAGS); -} - -WARN_UNUSED_RESULT -static inline bool regexp_compile_basic(regex_t *re, const char *pattern, int flags) -{ - return regexp_compile_internal(re, pattern, flags); -} - -WARN_UNUSED_RESULT -static inline bool regexp_is_valid(const char *pattern, int flags) -{ - regex_t re; - if (!regexp_compile(&re, pattern, flags | REG_NOSUB)) { - return false; - } - regfree(&re); - return true; -} - -void regexp_compile_or_fatal_error(regex_t *re, const char *pattern, int flags); -bool regexp_init_word_boundary_tokens(RegexpWordBoundaryTokens *rwbt); -bool regexp_error_msg(const regex_t *re, const char *pattern, int err); -void free_cached_regexp(CachedRegexp *cr); - -const InternedRegexp *regexp_intern(const char *pattern); -bool regexp_is_interned(const char *pattern); -void free_interned_regexps(void); - -bool regexp_exec ( - const regex_t *re, - const char *buf, - size_t size, - size_t nmatch, - regmatch_t *pmatch, - int flags -) WARN_UNUSED_RESULT; - -#endif |
