20 #ifndef __REGEXP_LIBRARY_H__
21 #define __REGEXP_LIBRARY_H__
42 #define RE_BACKSLASH_ESCAPE_IN_LISTS (1)
47 #define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
53 #define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
67 #define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
75 #define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
79 #define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
83 #define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
87 #define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
91 #define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
96 #define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
100 #define RE_LIMITED_OPS (RE_INTERVALS << 1)
104 #define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
109 #define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
113 #define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
117 #define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
121 #define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
127 #define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
131 #define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
143 #define RE_SYNTAX_EMACS 0
145 #define RE_SYNTAX_AWK \
146 (RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
147 | RE_NO_BK_PARENS | RE_NO_BK_REFS \
148 | RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
149 | RE_UNMATCHED_RIGHT_PAREN_ORD)
151 #define RE_SYNTAX_POSIX_AWK \
152 (RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS)
154 #define RE_SYNTAX_GREP \
155 (RE_BK_PLUS_QM | RE_CHAR_CLASSES \
156 | RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
159 #define RE_SYNTAX_EGREP \
160 (RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
161 | RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
162 | RE_NEWLINE_ALT | RE_NO_BK_PARENS \
165 #define RE_SYNTAX_POSIX_EGREP \
166 (RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
169 #define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
171 #define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
174 #define _RE_SYNTAX_POSIX_COMMON \
175 (RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
176 | RE_INTERVALS | RE_NO_EMPTY_RANGES)
178 #define RE_SYNTAX_POSIX_BASIC \
179 (_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
184 #define RE_SYNTAX_POSIX_MINIMAL_BASIC \
185 (_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
187 #define RE_SYNTAX_POSIX_EXTENDED \
188 (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
189 | RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
190 | RE_NO_BK_PARENS | RE_NO_BK_VBAR \
191 | RE_UNMATCHED_RIGHT_PAREN_ORD)
195 #define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
196 (_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
197 | RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
198 | RE_NO_BK_PARENS | RE_NO_BK_REFS \
199 | RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
208 #define RE_DUP_MAX ((1 << 15) - 1)
215 #define REG_EXTENDED 1
219 #define REG_ICASE (REG_EXTENDED << 1)
224 #define REG_NEWLINE (REG_ICASE << 1)
228 #define REG_NOSUB (REG_NEWLINE << 1)
241 #define REG_NOTEOL (1 << 1)
320 #define REGS_UNALLOCATED 0
321 #define REGS_REALLOCATE 1
351 #define RE_EXACTN_VALUE 1
394 #define _RE_ARGS(args) args
398 #define _RE_ARGS(args) ()
409 extern const char *re_compile_pattern
410 _RE_ARGS ((
const char *pattern,
int length,
427 int length,
int start,
int range,
struct re_registers *regs));
432 extern int re_search_2
434 int length1,
const char *string2,
int length2,
446 extern int re_match_2
448 int length1,
const char *string2,
int length2,
464 extern void re_set_registers
469 extern char *re_comp
_RE_ARGS ((
const char *));
470 extern int re_exec
_RE_ARGS ((
const char *));
473 extern int regcomp
_RE_ARGS ((regex_t *preg,
const char *pattern,
int cflags));
475 _RE_ARGS ((
const regex_t *preg,
const char *
string,
size_t nmatch,
477 extern size_t regerror
478 _RE_ARGS ((
int errcode,
const regex_t *preg,
char *errbuf,
479 size_t errbuf_size));
480 extern void regfree
_RE_ARGS ((regex_t *preg));
unsigned fastmap_accurate
reg_syntax_t re_syntax_options
then print u2 $script< option > print u2 Possible stop