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