xref: /third_party/musl/include/regex.h (revision 570af302)
1#ifndef _REGEX_H
2#define _REGEX_H
3
4#ifdef __cplusplus
5extern "C" {
6#endif
7
8#include <features.h>
9
10#define __NEED_regoff_t
11#define __NEED_size_t
12
13#include <bits/alltypes.h>
14
15typedef struct re_pattern_buffer {
16	size_t re_nsub;
17	void *__opaque, *__padding[4];
18	size_t __nsub2;
19	char __padding2;
20} regex_t;
21
22typedef struct {
23	regoff_t rm_so;
24	regoff_t rm_eo;
25} regmatch_t;
26
27#define REG_EXTENDED    1
28#define REG_ICASE       2
29#define REG_NEWLINE     4
30#define REG_NOSUB       8
31
32#define REG_NOTBOL      1
33#define REG_NOTEOL      2
34
35#define REG_OK          0
36#define REG_NOMATCH     1
37#define REG_BADPAT      2
38#define REG_ECOLLATE    3
39#define REG_ECTYPE      4
40#define REG_EESCAPE     5
41#define REG_ESUBREG     6
42#define REG_EBRACK      7
43#define REG_EPAREN      8
44#define REG_EBRACE      9
45#define REG_BADBR       10
46#define REG_ERANGE      11
47#define REG_ESPACE      12
48#define REG_BADRPT      13
49
50#define REG_ENOSYS      -1
51
52int regcomp(regex_t *__restrict, const char *__restrict, int);
53int regexec(const regex_t *__restrict, const char *__restrict, size_t, regmatch_t *__restrict, int);
54void regfree(regex_t *);
55
56size_t regerror(int, const regex_t *__restrict, char *__restrict, size_t);
57
58#ifdef __cplusplus
59}
60#endif
61
62#endif
63