diff options
Diffstat (limited to 'dfa.h')
-rw-r--r-- | dfa.h | 42 |
1 files changed, 31 insertions, 11 deletions
@@ -26,7 +26,13 @@ #endif /* HAVE_STDBOOL_H */ #include <stddef.h> -#define _GL_ATTRIBUTE_MALLOC +#if 3 <= __GNUC__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC +#endif + +struct localeinfo; /* See localeinfo.h. */ /* Element of a list of strings, at least one of which is known to appear in any R.E. matching the DFA. */ @@ -48,17 +54,36 @@ struct dfa; calling dfafree() on it. */ extern struct dfa *dfaalloc (void) _GL_ATTRIBUTE_MALLOC; +/* DFA options that can be ORed together, for dfasyntax's 4th arg. */ +enum + { + /* ^ and $ match only the start and end of data, and do not match + end-of-line within data. This is always false for grep, but + possibly true for other apps. */ + DFA_ANCHOR = 1 << 0, + + /* Ignore case while matching. */ + DFA_CASE_FOLD = 1 << 1, + + /* '\0' in data is end-of-line, instead of the traditional '\n'. */ + DFA_EOL_NUL = 1 << 2 + }; + +/* Initialize or reinitialize a DFA. This must be called before + any of the routines below. The arguments are: + 1. The DFA to operate on. + 2. Information about the current locale. + 3. Syntax bits described in regex.h. + 4. Additional DFA options described above. */ +extern void dfasyntax (struct dfa *, struct localeinfo const *, + reg_syntax_t, int); + /* Build and return the struct dfamust from the given struct dfa. */ extern struct dfamust *dfamust (struct dfa const *); /* Free the storage held by the components of a struct dfamust. */ extern void dfamustfree (struct dfamust *); -/* dfasyntax() takes four arguments; the first is the dfa to operate on, the - second sets the syntax bits described earlier in this file, the third sets - the case-folding flag, and the fourth specifies the line terminator. */ -extern void dfasyntax (struct dfa *, reg_syntax_t, bool, unsigned char); - /* Compile the given string of the given length into the given struct dfa. Final argument is a flag specifying whether to build a searching or an exact matcher. */ @@ -103,8 +128,3 @@ extern void dfawarn (const char *); takes a single argument, a NUL-terminated string describing the error. The user must supply a dfaerror. */ extern _Noreturn void dfaerror (const char *); - -extern bool dfa_using_utf8 (void) _GL_ATTRIBUTE_PURE; - -/* This must be called before calling any of the above dfa*() functions. */ -extern void dfa_init (void); |