… | |
… | |
6 | |
6 | |
7 | /* C o n f i g u r a t i o n |
7 | /* C o n f i g u r a t i o n |
8 | */ |
8 | */ |
9 | |
9 | |
10 | #define SAFE_CHECKS /* Regexp's with syntax errors will core dump if |
10 | #define SAFE_CHECKS /* Regexp's with syntax errors will core dump if |
11 | * this is undefined. |
11 | * this is undefined. |
12 | */ |
12 | */ |
13 | |
13 | |
14 | #define RE_TOKEN_MAX 64 /* Max amount of tokens in a regexp. |
14 | #define RE_TOKEN_MAX 64 /* Max amount of tokens in a regexp. |
15 | * Each token uses ~264 bytes. They are allocated |
15 | * Each token uses ~264 bytes. They are allocated |
16 | * as needed, but never de-allocated. |
16 | * as needed, but never de-allocated. |
17 | * E.g. [A-Za-z0-9_] counts as one token, so 64 |
17 | * E.g. [A-Za-z0-9_] counts as one token, so 64 |
18 | * should be plenty for most purposes. |
18 | * should be plenty for most purposes. |
19 | */ |
19 | */ |
20 | |
20 | |
21 | /* D o n o t c h a n g e b e l o w |
21 | /* D o n o t c h a n g e b e l o w |
22 | */ |
22 | */ |
23 | |
23 | |
24 | #ifdef uchar |
24 | #ifdef uchar |
… | |
… | |
57 | } repetetion_type; |
57 | } repetetion_type; |
58 | |
58 | |
59 | typedef struct { |
59 | typedef struct { |
60 | selection_type type; |
60 | selection_type type; |
61 | union { |
61 | union { |
62 | uchar single; |
62 | uchar single; |
63 | struct { |
63 | struct { |
64 | uchar low, high; |
64 | uchar low, high; |
65 | } range; |
65 | } range; |
66 | Boolean array[UCHAR_MAX]; |
66 | Boolean array[UCHAR_MAX]; |
67 | } u; |
67 | } u; |
68 | repetetion_type repeat; |
68 | repetetion_type repeat; |
69 | } selection; |
69 | } selection; |