1 2 /* 3 * Copyright (C) Igor Sysoev 4 * Copyright (C) NGINX, Inc. 5 */ 6 7 #ifndef _NJS_REGEXP_PATTERN_H_INCLUDED_ 8 #define _NJS_REGEXP_PATTERN_H_INCLUDED_ 9 10 11 typedef enum { 12 NJS_REGEXP_BYTE = 0, 13 NJS_REGEXP_UTF8, 14 } njs_regexp_utf8_t; 15 16 17 typedef struct njs_regexp_group_s njs_regexp_group_t; 18 19 20 struct njs_regexp_pattern_s { 21 njs_regex_t regex[2]; 22 23 /* A zero-terminated C string. */ 24 u_char *source; 25 26 uint16_t ncaptures; 27 uint16_t ngroups; 28 29 uint8_t global; /* 1 bit */ 30 uint8_t ignore_case; /* 1 bit */ 31 uint8_t multiline; /* 1 bit */ 32 uint8_t sticky; /* 1 bit */ 33 34 njs_regexp_group_t *groups; 35 }; 36 37 38 #endif /* _NJS_REGEXP_PATTERN_H_INCLUDED_ */ 39