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