2
This file is part of the Free Component Library
4
XML naming character tables, built upon w3.org specifications
6
See the file COPYING.FPC, included in this distribution,
7
for details about the copyright.
9
This program is distributed in the hope that it will be useful,
10
but WITHOUT ANY WARRANTY; without even the implied warranty of
11
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
**********************************************************************}
16
TSetOfByte = set of Byte;
19
// colon ($3a) is excluded, it is handled in the code
20
ns_ASCII = [{ $3A,} $41..$5A, $5F, $61..$7A, $C0..$D6, $D8..$F6, $F8..$FF];
21
ns_0200 = [0..$17, $50..$A8, $BB..$C1];
22
ns_0300 = [$86, $88..$8A, $8C, $8E..$A1,
23
$A3..$CE, $D0..$D6, $DA, $DC,
25
ns_0400 = [$01..$0C, $0E..$4F, $51..$5C,
26
$5E..$81, $90..$C4, $C7..$C8,
27
$CB..$CC, $D0..$EB, $EE..$F5,
29
ns_0500 = [$31..$56, $59, $61..$86, $D0..$EA, $F0..$F2];
30
ns_0600 = [$21..$3A, $41..$4A, $71..$B7,
31
$BA..$BE, $C0..$CE, $D0..$D3,
33
ns_0900 = [$05..$39, $3D, $58..$61,
34
$85..$8C, $8F..$90, $93..$A8,
35
$AA..$B0, $B2, $B6..$B9,
36
$DC..$DD, $DF..$E1, $F0..$F1];
37
ns_0A00 = [$05..$0A, $0F..$10, $13..$28,
38
$2A..$30, $32..$33, $35..$36,
39
$38..$39, $59..$5C, $5E, $72..$74,
40
$85..$8B, $8D, $8F..$91, $93..$A8,
41
$AA..$B0, $B2..$B3, $B5..$B9, $BD, $E0];
42
ns_0B00 = [$05..$0C, $0F..$10, $13..$28,
43
$2A..$30, $32..$33, $36..$39,
44
$3D, $5C..$5D, $5F..$61, $85..$8A,
45
$8E..$90, $92..$95, $99..$9A,
46
$9C, $9E..$9F, $A3..$A4, $A8..$AA,
48
ns_0C00 = [$05..$0C, $0E..$10, $12..$28,
49
$2A..$33, $35..$39, $60..$61,
50
$85..$8C, $8E..$90, $92..$A8,
51
$AA..$B3, $B5..$B9, $DE, $E0..$E1];
52
ns_0D00 = [$05..$0C, $0E..$10, $12..$28, $2A..$39, $60..$61];
53
ns_0E00 = [$01..$2E, $30, $32..$33, $40..$45,
54
$81..$82, $84, $87..$88, $8A, $8D,
55
$94..$97, $99..$9F, $A1..$A3,
56
$A5, $A7, $AA..$AB, $AD..$AE,
57
$B0, $B2..$B3, $BD, $C0..$C4];
58
ns_0F00 = [$40..$47, $49..$69];
60
ns_3000 = [$41..$94, $A1..$FA] + [$07, $21..$29];
62
namingBitmap: array[0..$30] of TSetOfByte = (
64
[], // 00 - nothing allowed
65
[0..255], // 01 - all allowed
67
[0..$31, $34..$3E, $41..$48, // 03 - $0100, both Name and NameStart
68
$4A..$7E, $80..$C3, $CD..$F0,
83
[$A0..$C5, $D0..$F6], // 10 - $1000, both Name and NameStart
84
[0, $02..03, $05..$07, $09, // 11 - $1100, both Name and NameStart
85
$0B..$0C, $0E..$12, $3C, $3E,
86
$40, $4C, $4E, $50, $54..$55,
87
$59, $5F..$61, $63, $65, $67,
88
$69, $6D..$6E, $72..$73, $75,
89
$9E, $A8, $AB, $AE..$AF,
90
$B7..$B8, $BA, $BC..$C2, $EB, $F0, $F9],
91
[0..$9B, $A0..$F9], // 12 - $1E00, both Name and NameStart
92
[0..$15, $18..$1D, $20..$45, // 13 - $1F00, both Name and NameStart
93
$48..$4D, $50..$57, $59, $5B, $5D,
94
$5F..$7D, $80..$B4, $B6..$BC, $BE,
95
$C2..$C4, $C6..$CC, $D0..$D3,
96
$D6..$DB, $E0..$EC, $F2..$F4, $F6..$FC],
97
[$26, $2A..$2B, $2E, $80..$82], // 14 - $2100, NameStart
99
[$05..$2C], // 16 - $3100, NameStart
100
[0..$A5], // 17 - $9F00, NameStart (ideographs)
101
[0..$A3], // 18 - $D700, NameStart
103
ns_ASCII + // 19 - $0000, Names
104
[$2D..$2E, $30..$39, $B7],
105
ns_0200 + // 1A - $0200, Names
107
ns_0300 + // 1B - $0300, Names
108
[0..$45, $60..$61, $87],
109
ns_0400 + // 1C - $0400, Names
111
ns_0500 + // 1D - $0500, Names
112
[$91..$A1, $A3..$B9, $BB..$BD, { combining }
114
ns_0600 + // 1E - $0600, Names
115
[$4B..$52, $70, $D6..$DC, $DD..$DF, { combining }
116
$E0..$E4, $E7..$E8, $EA..$ED] +
117
[$60..$69, $F0..$F9] + [$40], { digits + ext }
118
ns_0900 + // 1F - $0900, Names
119
[$01..$03, $3C, $3E..$4C, $4D, { combining }
120
$51..$54, $62..$63, $81..$83,
121
$BC, $BE, $BF, $C0..$C4, $C7..$C8,
122
$CB..$CD, $D7, $E2..$E3] +
123
[$66..$6F, $E6..$EF], { digits }
124
ns_0A00 + // 20 - $0A00, Names
125
[$02, $3C, $3E..$42, $47..$48, $4B..$4D, { combining }
126
$70..$71, $81..$83, $BC, $BE..$C5,
127
$C7..$C9, $CB..$CD] +
128
[$66..$6F, $E6..$EF], { digits }
129
ns_0B00 + // 21 - $0B00, Names
130
[$01..$03, $3C, $3E..$43, $47..$48, { combining }
131
$4B..$4D, $56..$57, $82..$83, $BE..$C2,
132
$C6..$C8, $CA..$CD, $D7] +
133
[$66..$6F, $E7..$EF], { digits }
134
ns_0C00 + // 22 - $0C00, Names
135
[$01..$03, $3E..$44, $46..$48, { combining }
136
$4A..$4D, $55..$56, $82..$83,
137
$BE..$C4, $C6..$C8, $CA..$CD, $D5..$D6] +
138
[$66..$6F, $E6..$EF], { digits }
139
ns_0D00 + // 23 - $0D00, Names
140
[$02..$03, $3E..$43, { combining }
141
$46..$48, $4A..$4D, $57] +
142
[$66..$6F], { digits }
143
ns_0E00 + // 24 - $0E00, Names
144
[$31, $34..$3A, $47..$4E, { combining }
145
$B1, $B4..$B9, $BB..$BC,
147
[$50..$59, $D0..$D9] + { digits }
148
[$46, $C6], { extenders }
149
ns_0F00 + // 25 - $0F00, Names
150
[$18..$19, $35, $37, $39, { combining }
151
$3E, $3F, $71..$84, $86..$8B,
152
$90..$95, $97, $99..$AD,
154
[$20..$29], { digits }
155
[$D0..$DC, $E1], // 26 - $2000, Names (combining)
156
ns_3000 + // 27 - $3000, Names
157
[$2A..$2F, $99, $9A] + { combining }
158
[$05, $31..$35, $9D..$9E, $FC..$FE], { extenders }
160
{ XML 1.1 additions }
162
[0..$CF, $F0..$FF], // 28 $FD00 - NameStart
163
[0..$EF], // 29 $2F00 - NameStart
164
[$0C..$0D, $70..$FF], // 2A $2000 - NameStart
165
[0..$8F], // 2B $2100 - NameStart
166
[$70..$7D, $7F..$FF], // 2C $0300 - NameStart
167
[1..$FF], // 2D $3000 - NameStart
168
[0..$7D, $7F..$FF], // 2E $0300 - Names
169
[$0C..$0D, $3F..$40, $70..$FF], // 2F $2000 - Names
170
[$00..$FD] // 30 $FF00 - both Name and NameStart
173
Xml11HighPages: TSetOfByte = [0..$21, $2C..$D7, $F9..$FE];
175
NamePages: array[0..511] of Byte = (
176
$02, $03, $04, $05, $06, $07, $08, $00,
177
$00, $09, $0A, $0B, $0C, $0D, $0E, $0F,
178
$10, $11, $00, $00, $00, $00, $00, $00,
179
$00, $00, $00, $00, $00, $00, $12, $13,
180
$00, $14, $00, $00, $00, $00, $00, $00,
181
$00, $00, $00, $00, $00, $00, $00, $00,
182
$15, $16, $00, $00, $00, $00, $00, $00,
183
$00, $00, $00, $00, $00, $00, $00, $00,
184
$00, $00, $00, $00, $00, $00, $00, $00,
185
$00, $00, $00, $00, $00, $00, $01, $01,
186
$01, $01, $01, $01, $01, $01, $01, $01,
187
$01, $01, $01, $01, $01, $01, $01, $01,
188
$01, $01, $01, $01, $01, $01, $01, $01,
189
$01, $01, $01, $01, $01, $01, $01, $01,
190
$01, $01, $01, $01, $01, $01, $01, $01,
191
$01, $01, $01, $01, $01, $01, $01, $01,
192
$01, $01, $01, $01, $01, $01, $01, $01,
193
$01, $01, $01, $01, $01, $01, $01, $01,
194
$01, $01, $01, $01, $01, $01, $01, $01,
195
$01, $01, $01, $01, $01, $01, $01, $17,
196
$00, $00, $00, $00, $00, $00, $00, $00,
197
$00, $00, $00, $00, $01, $01, $01, $01,
198
$01, $01, $01, $01, $01, $01, $01, $01,
199
$01, $01, $01, $01, $01, $01, $01, $01,
200
$01, $01, $01, $01, $01, $01, $01, $01,
201
$01, $01, $01, $01, $01, $01, $01, $01,
202
$01, $01, $01, $01, $01, $01, $01, $18,
203
$00, $00, $00, $00, $00, $00, $00, $00,
204
$00, $00, $00, $00, $00, $00, $00, $00,
205
$00, $00, $00, $00, $00, $00, $00, $00,
206
$00, $00, $00, $00, $00, $00, $00, $00,
207
$00, $00, $00, $00, $00, $00, $00, $00,
208
// second half - NameChars
209
$19, $03, $1A, $1B, $1C, $1D, $1E, $00,
210
$00, $1F, $20, $21, $22, $23, $24, $25,
211
$10, $11, $00, $00, $00, $00, $00, $00,
212
$00, $00, $00, $00, $00, $00, $12, $13,
213
$26, $14, $00, $00, $00, $00, $00, $00,
214
$00, $00, $00, $00, $00, $00, $00, $00,
215
$27, $16, $00, $00, $00, $00, $00, $00,
216
$00, $00, $00, $00, $00, $00, $00, $00,
217
$00, $00, $00, $00, $00, $00, $00, $00,
218
$00, $00, $00, $00, $00, $00, $01, $01,
219
$01, $01, $01, $01, $01, $01, $01, $01,
220
$01, $01, $01, $01, $01, $01, $01, $01,
221
$01, $01, $01, $01, $01, $01, $01, $01,
222
$01, $01, $01, $01, $01, $01, $01, $01,
223
$01, $01, $01, $01, $01, $01, $01, $01,
224
$01, $01, $01, $01, $01, $01, $01, $01,
225
$01, $01, $01, $01, $01, $01, $01, $01,
226
$01, $01, $01, $01, $01, $01, $01, $01,
227
$01, $01, $01, $01, $01, $01, $01, $01,
228
$01, $01, $01, $01, $01, $01, $01, $17,
229
$00, $00, $00, $00, $00, $00, $00, $00,
230
$00, $00, $00, $00, $01, $01, $01, $01,
231
$01, $01, $01, $01, $01, $01, $01, $01,
232
$01, $01, $01, $01, $01, $01, $01, $01,
233
$01, $01, $01, $01, $01, $01, $01, $01,
234
$01, $01, $01, $01, $01, $01, $01, $01,
235
$01, $01, $01, $01, $01, $01, $01, $18,
236
$00, $00, $00, $00, $00, $00, $00, $00,
237
$00, $00, $00, $00, $00, $00, $00, $00,
238
$00, $00, $00, $00, $00, $00, $00, $00,
239
$00, $00, $00, $00, $00, $00, $00, $00,
240
$00, $00, $00, $00, $00, $00, $00, $00);