This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Make many EBCDIC tables generated instead of hand-coded
[perl5.git] / ebcdic_tables.h
CommitLineData
4bc3dcfa
KW
1/* -*- buffer-read-only: t -*-
2 * !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
3 * This file is built by regen/ebcdic.pl.
4 * Any changes made here will be lost!
5 */
6
7
8#ifndef H_EBCDIC_TABLES /* Guard against nested #includes */
9#define H_EBCDIC_TABLES 1
10
11/* This file contains definitions for various tables used in EBCDIC handling.
12 * More info is in utfebcdic.h */
13
14#if 'A' == 193 /* EBCDIC 1047 */ \
15 && '\\' == 224 && '[' == 173 && ']' == 189 && '{' == 192 && '}' == 208 \
16 && '^' == 95 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
17 && '$' == 91 && '@' == 124 && '`' == 121
18
19/* Index is ASCII platform code point; value is EBCDIC 1047 equivalent */
20EXTCONST U8 PL_a2e[] = {
21 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
22 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
23 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
24 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
25 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
26 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189, 95, 109,
27 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
28 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
29 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
30 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
31 65, 170, 74, 177, 159, 178, 106, 181, 187, 180, 154, 138, 176, 202, 175, 188,
32 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
33 100, 101, 98, 102, 99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
34 172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 186, 174, 89,
35 68, 69, 66, 70, 67, 71, 156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
36 140, 73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
37};
38
39/* Index is EBCDIC 1047 code point; value is ASCII platform equivalent */
40EXTCONST U8 PL_e2a[] = {
41 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
42 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
43 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
44 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
45 32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162, 46, 60, 40, 43, 124,
46 38, 233, 234, 235, 232, 237, 238, 239, 236, 223, 33, 36, 42, 41, 59, 94,
47 45, 47, 194, 196, 192, 193, 195, 197, 199, 209, 166, 44, 37, 95, 62, 63,
48 248, 201, 202, 203, 200, 205, 206, 207, 204, 96, 58, 35, 64, 39, 61, 34,
49 216, 97, 98, 99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
50 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
51 181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 91, 222, 174,
52 172, 163, 165, 183, 169, 167, 182, 188, 189, 190, 221, 168, 175, 93, 180, 215,
53 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 173, 244, 246, 242, 243, 245,
54 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 185, 251, 252, 249, 250, 255,
55 92, 247, 83, 84, 85, 86, 87, 88, 89, 90, 178, 212, 214, 210, 211, 213,
56 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 179, 219, 220, 217, 218, 159
57};
58
59/* (Confusingly named) Index is EBCDIC 1047 I8 byte; value is
60 * EBCDIC 1047 UTF-EBCDIC equivalent */
61EXTCONST U8 PL_utf2e[] = {
62 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
63 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
64 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
65 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
66 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
67 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 173, 224, 189, 95, 109,
68 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
69 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
70 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
71 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
72 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 81, 82, 83, 84, 85, 86,
73 87, 88, 89, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114, 115,
74 116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156,
75 157, 158, 159, 160, 170, 171, 172, 174, 175, 176, 177, 178, 179, 180, 181, 182,
76 183, 184, 185, 186, 187, 188, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
77 220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
78};
79
80/* (Confusingly named) Index is EBCDIC 1047 UTF-EBCDIC byte; value is
81 * EBCDIC 1047 I8 equivalent */
82EXTCONST U8 PL_e2utf[] = {
83 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
84 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
85 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
86 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
87 32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 46, 60, 40, 43, 124,
88 38, 170, 171, 172, 173, 174, 175, 176, 177, 178, 33, 36, 42, 41, 59, 94,
89 45, 47, 179, 180, 181, 182, 183, 184, 185, 186, 187, 44, 37, 95, 62, 63,
90 188, 189, 190, 191, 192, 193, 194, 195, 196, 96, 58, 35, 64, 39, 61, 34,
91 197, 97, 98, 99, 100, 101, 102, 103, 104, 105, 198, 199, 200, 201, 202, 203,
92 204, 106, 107, 108, 109, 110, 111, 112, 113, 114, 205, 206, 207, 208, 209, 210,
93 211, 126, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214, 91, 215, 216,
94 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 93, 230, 231,
95 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
96 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 238, 239, 240, 241, 242, 243,
97 92, 244, 83, 84, 85, 86, 87, 88, 89, 90, 245, 246, 247, 248, 249, 250,
98 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 251, 252, 253, 254, 255, 159
99};
100
101/* Index is EBCDIC 1047 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
102 * 1 for continuation. Adapted from the shadow flags table in tr16. The
103 * entries marked 9 in tr16 are continuation bytes and are marked as length 1
104 * here so that we can recover. */
105EXTCONST U8 PL_utf8skip[] = {
106 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
107 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
108 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
109 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
110 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
111 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
112 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
113 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
114 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
115 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
116 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 1, 2, 2,
117 2, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 1, 3, 3,
118 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
119 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4,
120 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 5, 5, 5,
121 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 6, 7, 7, 1
122};
123
124/* Index is EBCDIC 1047 code point; value is its lowercase equivalent */
125EXTCONST U8 PL_latin1_lc[] = {
126 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
127 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
128 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
129 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
130 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
131 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
132 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
133 112, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
134 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
135 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
136 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 173, 142, 175,
137 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
138 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
139 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
140 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
141 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
142};
143
144/* Index is EBCDIC 1047 code point; value is its uppercase equivalent.
145 * The 'mod' in the name means that codepoints whose uppercase is above 255 or
146 * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
147EXTCONST U8 PL_mod_latin1_uc[] = {
148 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
149 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
150 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
151 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
152 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
153 80, 113, 114, 115, 116, 117, 118, 119, 120, 223, 90, 91, 92, 93, 94, 95,
154 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
155 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
156 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
157 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
158 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
159 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
160 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
161 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
162 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
163 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
164};
165
166/* Index is EBCDIC 1047 code point; For A-Z, value is a-z; for a-z, value
167 * is A-Z; all other code points map to themselves */
168EXTCONST U8 PL_fold[] = {
169 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
170 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
171 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
172 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
173 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
174 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
175 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
176 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
177 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
178 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
179 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
180 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
181 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
182 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
183 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
184 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
185};
186
187/* Index is EBCDIC 1047 code point; value is its other fold-pair equivalent
188 * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is
189 * the code point itself */
190EXTCONST U8 PL_fold_latin1[] = {
191 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
192 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
193 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
194 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
195 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
196 80, 113, 114, 115, 116, 117, 118, 119, 120, 89, 90, 91, 92, 93, 94, 95,
197 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
198 128, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
199 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 186, 174, 143,
200 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
201 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 173, 142, 175,
202 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 141, 187, 188, 189, 190, 191,
203 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
204 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
205 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
206 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
207};
208
209#endif /* EBCDIC 1047 */
210
211#if 'A' == 193 /* EBCDIC 037 */ \
212 && '\\' == 224 && '[' == 186 && ']' == 187 && '{' == 192 && '}' == 208 \
213 && '^' == 176 && '~' == 161 && '!' == 90 && '#' == 123 && '|' == 79 \
214 && '$' == 91 && '@' == 124 && '`' == 121
215
216/* Index is ASCII platform code point; value is EBCDIC 037 equivalent */
217EXTCONST U8 PL_a2e[] = {
218 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
219 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
220 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
221 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
222 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
223 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
224 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
225 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
226 32, 33, 34, 35, 36, 21, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
227 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
228 65, 170, 74, 177, 159, 178, 106, 181, 189, 180, 154, 138, 95, 202, 175, 188,
229 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
230 100, 101, 98, 102, 99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
231 172, 105, 237, 238, 235, 239, 236, 191, 128, 253, 254, 251, 252, 173, 174, 89,
232 68, 69, 66, 70, 67, 71, 156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
233 140, 73, 205, 206, 203, 207, 204, 225, 112, 221, 222, 219, 220, 141, 142, 223
234};
235
236/* Index is EBCDIC 037 code point; value is ASCII platform equivalent */
237EXTCONST U8 PL_e2a[] = {
238 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
239 16, 17, 18, 19, 157, 133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
240 128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
241 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
242 32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 162, 46, 60, 40, 43, 124,
243 38, 233, 234, 235, 232, 237, 238, 239, 236, 223, 33, 36, 42, 41, 59, 172,
244 45, 47, 194, 196, 192, 193, 195, 197, 199, 209, 166, 44, 37, 95, 62, 63,
245 248, 201, 202, 203, 200, 205, 206, 207, 204, 96, 58, 35, 64, 39, 61, 34,
246 216, 97, 98, 99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
247 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
248 181, 126, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
249 94, 163, 165, 183, 169, 167, 182, 188, 189, 190, 91, 93, 175, 168, 180, 215,
250 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 173, 244, 246, 242, 243, 245,
251 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 185, 251, 252, 249, 250, 255,
252 92, 247, 83, 84, 85, 86, 87, 88, 89, 90, 178, 212, 214, 210, 211, 213,
253 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 179, 219, 220, 217, 218, 159
254};
255
256/* (Confusingly named) Index is EBCDIC 037 I8 byte; value is
257 * EBCDIC 037 UTF-EBCDIC equivalent */
258EXTCONST U8 PL_utf2e[] = {
259 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 37, 11, 12, 13, 14, 15,
260 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
261 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
262 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
263 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
264 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 186, 224, 187, 176, 109,
265 121, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
266 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 192, 79, 208, 161, 7,
267 32, 33, 34, 35, 36, 21, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
268 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 255,
269 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 81, 82, 83, 84, 85, 86,
270 87, 88, 89, 95, 98, 99, 100, 101, 102, 103, 104, 105, 106, 112, 113, 114,
271 115, 116, 117, 118, 119, 120, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155,
272 156, 157, 158, 159, 160, 170, 171, 172, 173, 174, 175, 177, 178, 179, 180, 181,
273 182, 183, 184, 185, 188, 189, 190, 191, 202, 203, 204, 205, 206, 207, 218, 219,
274 220, 221, 222, 223, 225, 234, 235, 236, 237, 238, 239, 250, 251, 252, 253, 254
275};
276
277/* (Confusingly named) Index is EBCDIC 037 UTF-EBCDIC byte; value is
278 * EBCDIC 037 I8 equivalent */
279EXTCONST U8 PL_e2utf[] = {
280 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
281 16, 17, 18, 19, 157, 133, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
282 128, 129, 130, 131, 132, 10, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
283 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
284 32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 46, 60, 40, 43, 124,
285 38, 170, 171, 172, 173, 174, 175, 176, 177, 178, 33, 36, 42, 41, 59, 179,
286 45, 47, 180, 181, 182, 183, 184, 185, 186, 187, 188, 44, 37, 95, 62, 63,
287 189, 190, 191, 192, 193, 194, 195, 196, 197, 96, 58, 35, 64, 39, 61, 34,
288 198, 97, 98, 99, 100, 101, 102, 103, 104, 105, 199, 200, 201, 202, 203, 204,
289 205, 106, 107, 108, 109, 110, 111, 112, 113, 114, 206, 207, 208, 209, 210, 211,
290 212, 126, 115, 116, 117, 118, 119, 120, 121, 122, 213, 214, 215, 216, 217, 218,
291 94, 219, 220, 221, 222, 223, 224, 225, 226, 227, 91, 93, 228, 229, 230, 231,
292 123, 65, 66, 67, 68, 69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
293 125, 74, 75, 76, 77, 78, 79, 80, 81, 82, 238, 239, 240, 241, 242, 243,
294 92, 244, 83, 84, 85, 86, 87, 88, 89, 90, 245, 246, 247, 248, 249, 250,
295 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 251, 252, 253, 254, 255, 159
296};
297
298/* Index is EBCDIC 037 UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
299 * 1 for continuation. Adapted from the shadow flags table in tr16. The
300 * entries marked 9 in tr16 are continuation bytes and are marked as length 1
301 * here so that we can recover. */
302EXTCONST U8 PL_utf8skip[] = {
303 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
304 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
305 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
306 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
307 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
308 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
309 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
310 1, 1, 1, 2, 2, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1,
311 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
312 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
313 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
314 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 1, 1, 3, 3, 3, 3,
315 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
316 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, 4, 4, 4,
317 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 4, 4, 5, 5, 5,
318 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 5, 6, 6, 7, 7, 1
319};
320
321/* Index is EBCDIC 037 code point; value is its lowercase equivalent */
322EXTCONST U8 PL_latin1_lc[] = {
323 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
324 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
325 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
326 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
327 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
328 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
329 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
330 112, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
331 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
332 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
333 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
334 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
335 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
336 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
337 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
338 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
339};
340
341/* Index is EBCDIC 037 code point; value is its uppercase equivalent.
342 * The 'mod' in the name means that codepoints whose uppercase is above 255 or
343 * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
344EXTCONST U8 PL_mod_latin1_uc[] = {
345 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
346 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
347 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
348 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
349 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
350 80, 113, 114, 115, 116, 117, 118, 119, 120, 223, 90, 91, 92, 93, 94, 95,
351 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
352 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
353 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
354 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
355 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
356 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
357 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
358 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 251, 252, 253, 254, 223,
359 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
360 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
361};
362
363/* Index is EBCDIC 037 code point; For A-Z, value is a-z; for a-z, value
364 * is A-Z; all other code points map to themselves */
365EXTCONST U8 PL_fold[] = {
366 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
367 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
368 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
369 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
370 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
371 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
372 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
373 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
374 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
375 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
376 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
377 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
378 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
379 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
380 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
381 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
382};
383
384/* Index is EBCDIC 037 code point; value is its other fold-pair equivalent
385 * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is
386 * the code point itself */
387EXTCONST U8 PL_fold_latin1[] = {
388 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
389 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
390 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
391 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
392 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
393 80, 113, 114, 115, 116, 117, 118, 119, 120, 89, 90, 91, 92, 93, 94, 95,
394 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
395 128, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
396 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
397 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
398 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
399 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
400 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
401 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 251, 252, 253, 254, 223,
402 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
403 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 219, 220, 221, 222, 255
404};
405
406#endif /* EBCDIC 037 */
407
408#if 'A' == 193 /* EBCDIC POSIX-BC */ \
409 && '\\' == 188 && '[' == 187 && ']' == 189 && '{' == 251 && '}' == 253 \
410 && '^' == 106 && '~' == 255 && '!' == 90 && '#' == 123 && '|' == 79 \
411 && '$' == 91 && '@' == 124 && '`' == 74
412
413/* Index is ASCII platform code point; value is EBCDIC POSIX-BC equivalent */
414EXTCONST U8 PL_a2e[] = {
415 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
416 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
417 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
418 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
419 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
420 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
421 74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
422 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251, 79, 253, 255, 7,
423 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
424 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 95,
425 65, 170, 176, 177, 159, 178, 208, 181, 121, 180, 154, 138, 186, 202, 175, 161,
426 144, 143, 234, 250, 190, 160, 182, 179, 157, 218, 155, 139, 183, 184, 185, 171,
427 100, 101, 98, 102, 99, 103, 158, 104, 116, 113, 114, 115, 120, 117, 118, 119,
428 172, 105, 237, 238, 235, 239, 236, 191, 128, 224, 254, 221, 252, 173, 174, 89,
429 68, 69, 66, 70, 67, 71, 156, 72, 84, 81, 82, 83, 88, 85, 86, 87,
430 140, 73, 205, 206, 203, 207, 204, 225, 112, 192, 222, 219, 220, 141, 142, 223
431};
432
433/* Index is EBCDIC POSIX-BC code point; value is ASCII platform equivalent */
434EXTCONST U8 PL_e2a[] = {
435 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
436 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
437 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
438 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
439 32, 160, 226, 228, 224, 225, 227, 229, 231, 241, 96, 46, 60, 40, 43, 124,
440 38, 233, 234, 235, 232, 237, 238, 239, 236, 223, 33, 36, 42, 41, 59, 159,
441 45, 47, 194, 196, 192, 193, 195, 197, 199, 209, 94, 44, 37, 95, 62, 63,
442 248, 201, 202, 203, 200, 205, 206, 207, 204, 168, 58, 35, 64, 39, 61, 34,
443 216, 97, 98, 99, 100, 101, 102, 103, 104, 105, 171, 187, 240, 253, 254, 177,
444 176, 106, 107, 108, 109, 110, 111, 112, 113, 114, 170, 186, 230, 184, 198, 164,
445 181, 175, 115, 116, 117, 118, 119, 120, 121, 122, 161, 191, 208, 221, 222, 174,
446 162, 163, 165, 183, 169, 167, 182, 188, 189, 190, 172, 91, 92, 93, 180, 215,
447 249, 65, 66, 67, 68, 69, 70, 71, 72, 73, 173, 244, 246, 242, 243, 245,
448 166, 74, 75, 76, 77, 78, 79, 80, 81, 82, 185, 251, 252, 219, 250, 255,
449 217, 247, 83, 84, 85, 86, 87, 88, 89, 90, 178, 212, 214, 210, 211, 213,
450 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 179, 123, 220, 125, 218, 126
451};
452
453/* (Confusingly named) Index is EBCDIC POSIX-BC I8 byte; value is
454 * EBCDIC POSIX-BC UTF-EBCDIC equivalent */
455EXTCONST U8 PL_utf2e[] = {
456 0, 1, 2, 3, 55, 45, 46, 47, 22, 5, 21, 11, 12, 13, 14, 15,
457 16, 17, 18, 19, 60, 61, 50, 38, 24, 25, 63, 39, 28, 29, 30, 31,
458 64, 90, 127, 123, 91, 108, 80, 125, 77, 93, 92, 78, 107, 96, 75, 97,
459 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 122, 94, 76, 126, 110, 111,
460 124, 193, 194, 195, 196, 197, 198, 199, 200, 201, 209, 210, 211, 212, 213, 214,
461 215, 216, 217, 226, 227, 228, 229, 230, 231, 232, 233, 187, 188, 189, 106, 109,
462 74, 129, 130, 131, 132, 133, 134, 135, 136, 137, 145, 146, 147, 148, 149, 150,
463 151, 152, 153, 162, 163, 164, 165, 166, 167, 168, 169, 251, 79, 253, 255, 7,
464 32, 33, 34, 35, 36, 37, 6, 23, 40, 41, 42, 43, 44, 9, 10, 27,
465 48, 49, 26, 51, 52, 53, 54, 8, 56, 57, 58, 59, 4, 20, 62, 95,
466 65, 66, 67, 68, 69, 70, 71, 72, 73, 81, 82, 83, 84, 85, 86, 87,
467 88, 89, 98, 99, 100, 101, 102, 103, 104, 105, 112, 113, 114, 115, 116, 117,
468 118, 119, 120, 121, 128, 138, 139, 140, 141, 142, 143, 144, 154, 155, 156, 157,
469 158, 159, 160, 161, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
470 182, 183, 184, 185, 186, 190, 191, 192, 202, 203, 204, 205, 206, 207, 208, 218,
471 219, 220, 221, 222, 223, 224, 225, 234, 235, 236, 237, 238, 239, 250, 252, 254
472};
473
474/* (Confusingly named) Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is
475 * EBCDIC POSIX-BC I8 equivalent */
476EXTCONST U8 PL_e2utf[] = {
477 0, 1, 2, 3, 156, 9, 134, 127, 151, 141, 142, 11, 12, 13, 14, 15,
478 16, 17, 18, 19, 157, 10, 8, 135, 24, 25, 146, 143, 28, 29, 30, 31,
479 128, 129, 130, 131, 132, 133, 23, 27, 136, 137, 138, 139, 140, 5, 6, 7,
480 144, 145, 22, 147, 148, 149, 150, 4, 152, 153, 154, 155, 20, 21, 158, 26,
481 32, 160, 161, 162, 163, 164, 165, 166, 167, 168, 96, 46, 60, 40, 43, 124,
482 38, 169, 170, 171, 172, 173, 174, 175, 176, 177, 33, 36, 42, 41, 59, 159,
483 45, 47, 178, 179, 180, 181, 182, 183, 184, 185, 94, 44, 37, 95, 62, 63,
484 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 58, 35, 64, 39, 61, 34,
485 196, 97, 98, 99, 100, 101, 102, 103, 104, 105, 197, 198, 199, 200, 201, 202,
486 203, 106, 107, 108, 109, 110, 111, 112, 113, 114, 204, 205, 206, 207, 208, 209,
487 210, 211, 115, 116, 117, 118, 119, 120, 121, 122, 212, 213, 214, 215, 216, 217,
488 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 91, 92, 93, 229, 230,
489 231, 65, 66, 67, 68, 69, 70, 71, 72, 73, 232, 233, 234, 235, 236, 237,
490 238, 74, 75, 76, 77, 78, 79, 80, 81, 82, 239, 240, 241, 242, 243, 244,
491 245, 246, 83, 84, 85, 86, 87, 88, 89, 90, 247, 248, 249, 250, 251, 252,
492 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 253, 123, 254, 125, 255, 126
493};
494
495/* Index is EBCDIC POSIX-BC UTF-EBCDIC byte; value is UTF8SKIP for start bytes;
496 * 1 for continuation. Adapted from the shadow flags table in tr16. The
497 * entries marked 9 in tr16 are continuation bytes and are marked as length 1
498 * here so that we can recover. */
499EXTCONST U8 PL_utf8skip[] = {
500 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
501 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
502 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
503 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
504 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
505 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
506 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
507 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 1, 1, 1, 1, 1, 1,
508 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
509 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
510 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2,
511 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 1, 1, 1, 3, 3,
512 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 3, 3,
513 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 4, 4,
514 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 4, 5, 5, 5, 5, 6,
515 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 7, 1, 7, 1
516};
517
518/* Index is EBCDIC POSIX-BC code point; value is its lowercase equivalent */
519EXTCONST U8 PL_latin1_lc[] = {
520 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
521 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
522 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
523 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
524 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
525 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
526 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
527 112, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
528 112, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
529 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 156, 159,
530 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 140, 141, 142, 175,
531 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
532 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
533 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 219, 222, 223,
534 192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
535 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
536};
537
538/* Index is EBCDIC POSIX-BC code point; value is its uppercase equivalent.
539 * The 'mod' in the name means that codepoints whose uppercase is above 255 or
540 * longer than 1 character map to LATIN SMALL LETTER Y WITH DIARESIS */
541EXTCONST U8 PL_mod_latin1_uc[] = {
542 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
543 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
544 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
545 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
546 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
547 80, 113, 114, 115, 116, 117, 118, 119, 120, 223, 90, 91, 92, 93, 94, 95,
548 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
549 128, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
550 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
551 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 158, 159,
552 223, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
553 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
554 224, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 235, 236, 237, 238, 239,
555 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 221, 252, 221, 254, 223,
556 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
557 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
558};
559
560/* Index is EBCDIC POSIX-BC code point; For A-Z, value is a-z; for a-z, value
561 * is A-Z; all other code points map to themselves */
562EXTCONST U8 PL_fold[] = {
563 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
564 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
565 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
566 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
567 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
568 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
569 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
570 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
571 128, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 140, 141, 142, 143,
572 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 156, 157, 158, 159,
573 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 172, 173, 174, 175,
574 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
575 192, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 203, 204, 205, 206, 207,
576 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 219, 220, 221, 222, 223,
577 224, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 235, 236, 237, 238, 239,
578 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
579};
580
581/* Index is EBCDIC POSIX-BC code point; value is its other fold-pair equivalent
582 * (A => a; a => A, etc) in the 0-255 range. If no such equivalent, value is
583 * the code point itself */
584EXTCONST U8 PL_fold_latin1[] = {
585 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
586 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
587 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
588 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
589 64, 65, 98, 99, 100, 101, 102, 103, 104, 105, 74, 75, 76, 77, 78, 79,
590 80, 113, 114, 115, 116, 117, 118, 119, 120, 89, 90, 91, 92, 93, 94, 95,
591 96, 97, 66, 67, 68, 69, 70, 71, 72, 73, 106, 107, 108, 109, 110, 111,
592 128, 81, 82, 83, 84, 85, 86, 87, 88, 121, 122, 123, 124, 125, 126, 127,
593 112, 193, 194, 195, 196, 197, 198, 199, 200, 201, 138, 139, 172, 173, 174, 143,
594 144, 209, 210, 211, 212, 213, 214, 215, 216, 217, 154, 155, 158, 157, 156, 159,
595 160, 161, 226, 227, 228, 229, 230, 231, 232, 233, 170, 171, 140, 141, 142, 175,
596 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
597 224, 129, 130, 131, 132, 133, 134, 135, 136, 137, 202, 235, 236, 237, 238, 239,
598 208, 145, 146, 147, 148, 149, 150, 151, 152, 153, 218, 221, 252, 219, 254, 223,
599 192, 225, 162, 163, 164, 165, 166, 167, 168, 169, 234, 203, 204, 205, 206, 207,
600 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 220, 253, 222, 255
601};
602
603#endif /* EBCDIC POSIX-BC */
604
605#endif /* H_EBCDIC_TABLES */
606
607/* ex: set ro: */