Process Hacker
pcre_chartables.c
Go to the documentation of this file.
1 /*************************************************
2 * Perl-Compatible Regular Expressions *
3 *************************************************/
4 
5 /* This file contains character tables that are used when no external tables
6 are passed to PCRE by the application that calls it. The tables are used only
7 for characters whose code values are less than 256.
8 
9 This is a default version of the tables that assumes ASCII encoding. A program
10 called dftables (which is distributed with PCRE) can be used to build
11 alternative versions of this file. This is necessary if you are running in an
12 EBCDIC environment, or if you want to default to a different encoding, for
13 example ISO-8859-1. When dftables is run, it creates these tables in the
14 current locale. If PCRE is configured with --enable-rebuild-chartables, this
15 happens automatically.
16 
17 The following #includes are present because without them gcc 4.x may remove the
18 array definition from the final binary if PCRE is built into a static library
19 and dead code stripping is activated. This leads to link errors. Pulling in the
20 header ensures that the array gets flagged as "someone outside this compilation
21 unit might reference this" and so it will always be supplied to the linker. */
22 
23 #define HAVE_CONFIG_H
24 #ifdef HAVE_CONFIG_H
25 #include "config.h"
26 #endif
27 
28 #include "pcre_internal.h"
29 
30 const unsigned char _pcre_default_tables[] = {
31 
32 /* This table is a lower casing table. */
33 
34  0, 1, 2, 3, 4, 5, 6, 7,
35  8, 9, 10, 11, 12, 13, 14, 15,
36  16, 17, 18, 19, 20, 21, 22, 23,
37  24, 25, 26, 27, 28, 29, 30, 31,
38  32, 33, 34, 35, 36, 37, 38, 39,
39  40, 41, 42, 43, 44, 45, 46, 47,
40  48, 49, 50, 51, 52, 53, 54, 55,
41  56, 57, 58, 59, 60, 61, 62, 63,
42  64, 97, 98, 99,100,101,102,103,
43  104,105,106,107,108,109,110,111,
44  112,113,114,115,116,117,118,119,
45  120,121,122, 91, 92, 93, 94, 95,
46  96, 97, 98, 99,100,101,102,103,
47  104,105,106,107,108,109,110,111,
48  112,113,114,115,116,117,118,119,
49  120,121,122,123,124,125,126,127,
50  128,129,130,131,132,133,134,135,
51  136,137,138,139,140,141,142,143,
52  144,145,146,147,148,149,150,151,
53  152,153,154,155,156,157,158,159,
54  160,161,162,163,164,165,166,167,
55  168,169,170,171,172,173,174,175,
56  176,177,178,179,180,181,182,183,
57  184,185,186,187,188,189,190,191,
58  192,193,194,195,196,197,198,199,
59  200,201,202,203,204,205,206,207,
60  208,209,210,211,212,213,214,215,
61  216,217,218,219,220,221,222,223,
62  224,225,226,227,228,229,230,231,
63  232,233,234,235,236,237,238,239,
64  240,241,242,243,244,245,246,247,
65  248,249,250,251,252,253,254,255,
66 
67 /* This table is a case flipping table. */
68 
69  0, 1, 2, 3, 4, 5, 6, 7,
70  8, 9, 10, 11, 12, 13, 14, 15,
71  16, 17, 18, 19, 20, 21, 22, 23,
72  24, 25, 26, 27, 28, 29, 30, 31,
73  32, 33, 34, 35, 36, 37, 38, 39,
74  40, 41, 42, 43, 44, 45, 46, 47,
75  48, 49, 50, 51, 52, 53, 54, 55,
76  56, 57, 58, 59, 60, 61, 62, 63,
77  64, 97, 98, 99,100,101,102,103,
78  104,105,106,107,108,109,110,111,
79  112,113,114,115,116,117,118,119,
80  120,121,122, 91, 92, 93, 94, 95,
81  96, 65, 66, 67, 68, 69, 70, 71,
82  72, 73, 74, 75, 76, 77, 78, 79,
83  80, 81, 82, 83, 84, 85, 86, 87,
84  88, 89, 90,123,124,125,126,127,
85  128,129,130,131,132,133,134,135,
86  136,137,138,139,140,141,142,143,
87  144,145,146,147,148,149,150,151,
88  152,153,154,155,156,157,158,159,
89  160,161,162,163,164,165,166,167,
90  168,169,170,171,172,173,174,175,
91  176,177,178,179,180,181,182,183,
92  184,185,186,187,188,189,190,191,
93  192,193,194,195,196,197,198,199,
94  200,201,202,203,204,205,206,207,
95  208,209,210,211,212,213,214,215,
96  216,217,218,219,220,221,222,223,
97  224,225,226,227,228,229,230,231,
98  232,233,234,235,236,237,238,239,
99  240,241,242,243,244,245,246,247,
100  248,249,250,251,252,253,254,255,
101 
102 /* This table contains bit maps for various character classes. Each map is 32
103 bytes long and the bits run from the least significant end of each byte. The
104 classes that have their own maps are: space, xdigit, digit, upper, lower, word,
105 graph, print, punct, and cntrl. Other classes are built from combinations. */
106 
107  0x00,0x3e,0x00,0x00,0x01,0x00,0x00,0x00,
108  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
109  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
110  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
111 
112  0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
113  0x7e,0x00,0x00,0x00,0x7e,0x00,0x00,0x00,
114  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
115  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
116 
117  0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
118  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
119  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
120  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
121 
122  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
123  0xfe,0xff,0xff,0x07,0x00,0x00,0x00,0x00,
124  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
125  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
126 
127  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
128  0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0x07,
129  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
130  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
131 
132  0x00,0x00,0x00,0x00,0x00,0x00,0xff,0x03,
133  0xfe,0xff,0xff,0x87,0xfe,0xff,0xff,0x07,
134  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
135  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
136 
137  0x00,0x00,0x00,0x00,0xfe,0xff,0xff,0xff,
138  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
139  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
140  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
141 
142  0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff,
143  0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f,
144  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
145  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
146 
147  0x00,0x00,0x00,0x00,0xfe,0xff,0x00,0xfc,
148  0x01,0x00,0x00,0xf8,0x01,0x00,0x00,0x78,
149  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
150  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
151 
152  0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00,
153  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x80,
154  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
155  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
156 
157 /* This table identifies various classes of character by individual bits:
158  0x01 white space character
159  0x02 letter
160  0x04 decimal digit
161  0x08 hexadecimal digit
162  0x10 alphanumeric or '_'
163  0x80 regular expression metacharacter or binary zero
164 */
165 
166  0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0- 7 */
167  0x00,0x01,0x01,0x00,0x01,0x01,0x00,0x00, /* 8- 15 */
168  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 16- 23 */
169  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 24- 31 */
170  0x01,0x00,0x00,0x00,0x80,0x00,0x00,0x00, /* - ' */
171  0x80,0x80,0x80,0x80,0x00,0x00,0x80,0x00, /* ( - / */
172  0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c,0x1c, /* 0 - 7 */
173  0x1c,0x1c,0x00,0x00,0x00,0x00,0x00,0x80, /* 8 - ? */
174  0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* @ - G */
175  0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* H - O */
176  0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* P - W */
177  0x12,0x12,0x12,0x80,0x80,0x00,0x80,0x10, /* X - _ */
178  0x00,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x12, /* ` - g */
179  0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* h - o */
180  0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, /* p - w */
181  0x12,0x12,0x12,0x80,0x80,0x00,0x00,0x00, /* x -127 */
182  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 128-135 */
183  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 136-143 */
184  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 144-151 */
185  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 152-159 */
186  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 160-167 */
187  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 168-175 */
188  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 176-183 */
189  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 184-191 */
190  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 192-199 */
191  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 200-207 */
192  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 208-215 */
193  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 216-223 */
194  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 224-231 */
195  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 232-239 */
196  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 240-247 */
197  0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/* 248-255 */
198 
199 /* End of pcre_chartables.c */