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