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