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