1/*************************************************
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 */
199