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