-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathunicode_arabic_shaping.pl
441 lines (423 loc) · 25.6 KB
/
unicode_arabic_shaping.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% This file is part of VivoMind Prolog Unicode Resources
%
% VivoMind Prolog Unicode Resources is free software distributed using the
% Creative Commons CC0 1.0 Universal (CC0 1.0) - Public Domain Dedication
% license
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Last modified: March 20, 2012
%
% Original Unicode file header comments follow
/*
# ArabicShaping-6.1.0.txt
# Date: 2011-04-15, 23:16:00 GMT [KW]
#
# This file is a normative contributory data file in the
# Unicode Character Database.
#
# Copyright (c) 1991-2011 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
# This file defines the Joining_Type and Joining_Group
# property values for Arabic, Syriac, N'Ko, and Mandaic
# positional shaping, repeating in machine readable form the
# information exemplified in Tables 8-3, 8-8, 8-9, 8-10, 8-13, 8-14,
# 8-15, 13-5, 14-5, and 14-6 of The Unicode Standard, Version 6.1.
#
# See sections 8.2, 8.3, 13.5, and 14.12 of The Unicode Standard,
# Version 6.1 for more information.
#
# Each line contains four fields, separated by a semicolon.
#
# Field 0: the code point, in 4-digit hexadecimal
# form, of an Arabic, Syriac, N'Ko, or Mandaic character.
#
# Field 1: gives a short schematic name for that character.
# The schematic name is descriptive of the shape, based as
# consistently as possible on a name for the skeleton and
# then the diacritic marks applied to the skeleton, if any.
# Note that this schematic name is considered a comment,
# and does not constitute a formal property value.
#
# Field 2: defines the joining type (property name: Joining_Type)
# R Right_Joining
# L Left_Joining
# D Dual_Joining
# C Join_Causing
# U Non_Joining
# T Transparent
# See Section 8.2, Arabic for more information on these types.
#
# Field 3: defines the joining group (property name: Joining_Group)
#
# The values of the joining group are based schematically on character
# names. Where a schematic character name consists of two or more parts separated
# by spaces, the formal Joining_Group property value, as specified in
# PropertyValueAliases.txt, consists of the same name parts joined by
# underscores. Hence, the entry:
#
# 0629, 'TEH MARBUTA', 'R', 'TEH MARBUTA
#
# corresponds to [Joining_Group = Teh_Marbuta].
#
# Note: The property value now designated [Joining_Group = Teh_Marbuta_Goal]
# used to apply to both of the following characters
# in earlier versions of the standard:
#
# U+06C2 ARABIC LETTER HEH GOAL WITH HAMZA ABOVE
# U+06C3 ARABIC LETTER TEH MARBUTA GOAL
#
# However, it currently applies only to U+06C3, and *not* to U+06C2.
# To avoid destabilizing existing Joining_Group property aliases, the
# prior Joining_Group value for U+06C3 (Hamza_On_Heh_Goal) has been
# retained as a property value alias, despite the fact that it
# no longer applies to its namesake character, U+06C2.
# See PropertyValueAliases.txt.
#
# When other cursive scripts are added to the Unicode Standard in
# the future, the joining group value of all its letters will default
# to jg=No_Joining_Group in this data file. Other, more specific
# joining group values will be defined only if an explicit proposal
# to define those values exactly has been approved by the UTC. This
# is the convention exemplified by the N'Ko and Mandaic scripts. Only the Arabic
# and Syriac scripts currently have explicit joining group values defined.
#
# Note: Code points that are not explicitly listed in this file are
# either of joining type T or U:
#
# - Those that not explicitly listed that are of General Category Mn, Me, or Cf
# have joining type T.
# - All others not explicitly listed have joining type U.
#
# For an explicit listing of characters of joining type T, see
# the derived property file DerivedJoiningType.txt.
#
# There are currently no characters of joining type L defined in Unicode.
#
# #############################################################
*/
% Unicode, 'Schematic Name, 'Joining Type, 'Joining Group
% Arabic Characters
unicode_arabic_shaping(0x0600, 'ARABIC NUMBER SIGN', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0601, 'ARABIC SIGN SANAH', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0602, 'ARABIC FOOTNOTE MARKER', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0603, 'ARABIC SIGN SAFHA', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0604, 'ARABIC SIGN SAMVAT', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0608, 'ARABIC RAY', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x060B, 'AFGHANI SIGN', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0620, 'DOTLESS YEH WITH SEPARATE RING BELOW', 'D', 'YEH').
unicode_arabic_shaping(0x0621, 'HAMZA', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0622, 'ALEF WITH MADDA ABOVE', 'R', 'ALEF').
unicode_arabic_shaping(0x0623, 'ALEF WITH HAMZA ABOVE', 'R', 'ALEF').
unicode_arabic_shaping(0x0624, 'WAW WITH HAMZA ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x0625, 'ALEF WITH HAMZA BELOW', 'R', 'ALEF').
unicode_arabic_shaping(0x0626, 'DOTLESS YEH WITH HAMZA ABOVE', 'D', 'YEH').
unicode_arabic_shaping(0x0627, 'ALEF', 'R', 'ALEF').
unicode_arabic_shaping(0x0628, 'BEH', 'D', 'BEH').
unicode_arabic_shaping(0x0629, 'TEH MARBUTA', 'R', 'TEH MARBUTA').
unicode_arabic_shaping(0x062A, 'DOTLESS BEH WITH 2 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x062B, 'DOTLESS BEH WITH 3 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x062C, 'HAH WITH DOT BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x062D, 'HAH', 'D', 'HAH').
unicode_arabic_shaping(0x062E, 'HAH WITH DOT ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x062F, 'DAL', 'R', 'DAL').
unicode_arabic_shaping(0x0630, 'DAL WITH DOT ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x0631, 'REH', 'R', 'REH').
unicode_arabic_shaping(0x0632, 'REH WITH DOT ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x0633, 'SEEN', 'D', 'SEEN').
unicode_arabic_shaping(0x0634, 'SEEN WITH 3 DOTS ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x0635, 'SAD', 'D', 'SAD').
unicode_arabic_shaping(0x0636, 'SAD WITH DOT ABOVE', 'D', 'SAD').
unicode_arabic_shaping(0x0637, 'TAH', 'D', 'TAH').
unicode_arabic_shaping(0x0638, 'TAH WITH DOT ABOVE', 'D', 'TAH').
unicode_arabic_shaping(0x0639, 'AIN', 'D', 'AIN').
unicode_arabic_shaping(0x063A, 'AIN WITH DOT ABOVE', 'D', 'AIN').
unicode_arabic_shaping(0x063B, 'KEHEH WITH 2 DOTS ABOVE', 'D', 'GAF').
unicode_arabic_shaping(0x063C, 'KEHEH WITH 3 DOTS BELOW', 'D', 'GAF').
unicode_arabic_shaping(0x063D, 'FARSI YEH WITH INVERTED V ABOVE', 'D', 'FARSI YEH').
unicode_arabic_shaping(0x063E, 'FARSI YEH WITH 2 DOTS ABOVE', 'D', 'FARSI YEH').
unicode_arabic_shaping(0x063F, 'FARSI YEH WITH 3 DOTS ABOVE', 'D', 'FARSI YEH').
unicode_arabic_shaping(0x0640, 'TATWEEL', 'C', 'No_Joining_Group').
unicode_arabic_shaping(0x0641, 'FEH', 'D', 'FEH').
unicode_arabic_shaping(0x0642, 'QAF', 'D', 'QAF').
unicode_arabic_shaping(0x0643, 'KAF', 'D', 'KAF').
unicode_arabic_shaping(0x0644, 'LAM', 'D', 'LAM').
unicode_arabic_shaping(0x0645, 'MEEM', 'D', 'MEEM').
unicode_arabic_shaping(0x0646, 'NOON', 'D', 'NOON').
unicode_arabic_shaping(0x0647, 'HEH', 'D', 'HEH').
unicode_arabic_shaping(0x0648, 'WAW', 'R', 'WAW').
unicode_arabic_shaping(0x0649, 'DOTLESS YEH', 'D', 'YEH').
unicode_arabic_shaping(0x064A, 'YEH', 'D', 'YEH').
unicode_arabic_shaping(0x066E, 'DOTLESS BEH', 'D', 'BEH').
unicode_arabic_shaping(0x066F, 'DOTLESS QAF', 'D', 'QAF').
unicode_arabic_shaping(0x0671, 'ALEF WITH WASLA ABOVE', 'R', 'ALEF').
unicode_arabic_shaping(0x0672, 'ALEF WITH WAVY HAMZA ABOVE', 'R', 'ALEF').
unicode_arabic_shaping(0x0673, 'ALEF WITH WAVY HAMZA BELOW', 'R', 'ALEF').
unicode_arabic_shaping(0x0674, 'HIGH HAMZA', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0675, 'HIGH HAMZA ALEF', 'R', 'ALEF').
unicode_arabic_shaping(0x0676, 'HIGH HAMZA WAW', 'R', 'WAW').
unicode_arabic_shaping(0x0677, 'HIGH HAMZA WAW WITH DAMMA ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x0678, 'HIGH HAMZA DOTLESS YEH', 'D', 'YEH').
unicode_arabic_shaping(0x0679, 'DOTLESS BEH WITH TAH ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x067A, 'DOTLESS BEH WITH VERTICAL 2 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x067B, 'DOTLESS BEH WITH VERTICAL 2 DOTS BELOW', 'D', 'BEH').
unicode_arabic_shaping(0x067C, 'DOTLESS BEH WITH ATTACHED RING BELOW AND 2 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x067D, 'DOTLESS BEH WITH INVERTED 3 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x067E, 'DOTLESS BEH WITH 3 DOTS BELOW', 'D', 'BEH').
unicode_arabic_shaping(0x067F, 'DOTLESS BEH WITH 4 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x0680, 'DOTLESS BEH WITH 4 DOTS BELOW', 'D', 'BEH').
unicode_arabic_shaping(0x0681, 'HAH WITH HAMZA ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x0682, 'HAH WITH VERTICAL 2 DOTS ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x0683, 'HAH WITH 2 DOTS BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x0684, 'HAH WITH VERTICAL 2 DOTS BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x0685, 'HAH WITH 3 DOTS ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x0686, 'HAH WITH 3 DOTS BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x0687, 'HAH WITH 4 DOTS BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x0688, 'DAL WITH TAH ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x0689, 'DAL WITH ATTACHED RING BELOW', 'R', 'DAL').
unicode_arabic_shaping(0x068A, 'DAL WITH DOT BELOW', 'R', 'DAL').
unicode_arabic_shaping(0x068B, 'DAL WITH DOT BELOW AND TAH ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x068C, 'DAL WITH 2 DOTS ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x068D, 'DAL WITH 2 DOTS BELOW', 'R', 'DAL').
unicode_arabic_shaping(0x068E, 'DAL WITH 3 DOTS ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x068F, 'DAL WITH INVERTED 3 DOTS ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x0690, 'DAL WITH 4 DOTS ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x0691, 'REH WITH TAH ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x0692, 'REH WITH V ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x0693, 'REH WITH ATTACHED RING BELOW', 'R', 'REH').
unicode_arabic_shaping(0x0694, 'REH WITH DOT BELOW', 'R', 'REH').
unicode_arabic_shaping(0x0695, 'REH WITH V BELOW', 'R', 'REH').
unicode_arabic_shaping(0x0696, 'REH WITH DOT BELOW AND DOT WITHIN', 'R', 'REH').
unicode_arabic_shaping(0x0697, 'REH WITH 2 DOTS ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x0698, 'REH WITH 3 DOTS ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x0699, 'REH WITH 4 DOTS ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x069A, 'SEEN WITH DOT BELOW AND DOT ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x069B, 'SEEN WITH 3 DOTS BELOW', 'D', 'SEEN').
unicode_arabic_shaping(0x069C, 'SEEN WITH 3 DOTS BELOW AND 3 DOTS ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x069D, 'SAD WITH 2 DOTS BELOW', 'D', 'SAD').
unicode_arabic_shaping(0x069E, 'SAD WITH 3 DOTS ABOVE', 'D', 'SAD').
unicode_arabic_shaping(0x069F, 'TAH WITH 3 DOTS ABOVE', 'D', 'TAH').
unicode_arabic_shaping(0x06A0, 'AIN WITH 3 DOTS ABOVE', 'D', 'AIN').
unicode_arabic_shaping(0x06A1, 'DOTLESS FEH', 'D', 'FEH').
unicode_arabic_shaping(0x06A2, 'DOTLESS FEH WITH DOT BELOW', 'D', 'FEH').
unicode_arabic_shaping(0x06A3, 'FEH WITH DOT BELOW', 'D', 'FEH').
unicode_arabic_shaping(0x06A4, 'DOTLESS FEH WITH 3 DOTS ABOVE', 'D', 'FEH').
unicode_arabic_shaping(0x06A5, 'DOTLESS FEH WITH 3 DOTS BELOW', 'D', 'FEH').
unicode_arabic_shaping(0x06A6, 'DOTLESS FEH WITH 4 DOTS ABOVE', 'D', 'FEH').
unicode_arabic_shaping(0x06A7, 'DOTLESS QAF WITH DOT ABOVE', 'D', 'QAF').
unicode_arabic_shaping(0x06A8, 'DOTLESS QAF WITH 3 DOTS ABOVE', 'D', 'QAF').
unicode_arabic_shaping(0x06A9, 'KEHEH', 'D', 'GAF').
unicode_arabic_shaping(0x06AA, 'SWASH KAF', 'D', 'SWASH KAF').
unicode_arabic_shaping(0x06AB, 'KEHEH WITH ATTACHED RING BELOW', 'D', 'GAF').
unicode_arabic_shaping(0x06AC, 'KAF WITH DOT ABOVE', 'D', 'KAF').
unicode_arabic_shaping(0x06AD, 'KAF WITH 3 DOTS ABOVE', 'D', 'KAF').
unicode_arabic_shaping(0x06AE, 'KAF WITH 3 DOTS BELOW', 'D', 'KAF').
unicode_arabic_shaping(0x06AF, 'GAF', 'D', 'GAF').
unicode_arabic_shaping(0x06B0, 'GAF WITH ATTACHED RING BELOW', 'D', 'GAF').
unicode_arabic_shaping(0x06B1, 'GAF WITH 2 DOTS ABOVE', 'D', 'GAF').
unicode_arabic_shaping(0x06B2, 'GAF WITH 2 DOTS BELOW', 'D', 'GAF').
unicode_arabic_shaping(0x06B3, 'GAF WITH VERTICAL 2 DOTS BELOW', 'D', 'GAF').
unicode_arabic_shaping(0x06B4, 'GAF WITH 3 DOTS ABOVE', 'D', 'GAF').
unicode_arabic_shaping(0x06B5, 'LAM WITH V ABOVE', 'D', 'LAM').
unicode_arabic_shaping(0x06B6, 'LAM WITH DOT ABOVE', 'D', 'LAM').
unicode_arabic_shaping(0x06B7, 'LAM WITH 3 DOTS ABOVE', 'D', 'LAM').
unicode_arabic_shaping(0x06B8, 'LAM WITH 3 DOTS BELOW', 'D', 'LAM').
unicode_arabic_shaping(0x06B9, 'NOON WITH DOT BELOW', 'D', 'NOON').
unicode_arabic_shaping(0x06BA, 'DOTLESS NOON', 'D', 'NOON').
unicode_arabic_shaping(0x06BB, 'DOTLESS NOON WITH TAH ABOVE', 'D', 'NOON').
unicode_arabic_shaping(0x06BC, 'NOON WITH ATTACHED RING BELOW', 'D', 'NOON').
unicode_arabic_shaping(0x06BD, 'NYA', 'D', 'NYA').
unicode_arabic_shaping(0x06BE, 'KNOTTED HEH', 'D', 'KNOTTED HEH').
unicode_arabic_shaping(0x06BF, 'HAH WITH 3 DOTS BELOW AND DOT ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x06C0, 'DOTLESS TEH MARBUTA WITH HAMZA ABOVE', 'R', 'TEH MARBUTA').
unicode_arabic_shaping(0x06C1, 'HEH GOAL', 'D', 'HEH GOAL').
unicode_arabic_shaping(0x06C2, 'HEH GOAL WITH HAMZA ABOVE', 'D', 'HEH GOAL').
unicode_arabic_shaping(0x06C3, 'TEH MARBUTA GOAL', 'R', 'TEH MARBUTA GOAL').
unicode_arabic_shaping(0x06C4, 'WAW WITH ATTACHED RING WITHIN', 'R', 'WAW').
unicode_arabic_shaping(0x06C5, 'WAW WITH BAR', 'R', 'WAW').
unicode_arabic_shaping(0x06C6, 'WAW WITH V ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x06C7, 'WAW WITH DAMMA ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x06C8, 'WAW WITH ALEF ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x06C9, 'WAW WITH INVERTED V ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x06CA, 'WAW WITH 2 DOTS ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x06CB, 'WAW WITH 3 DOTS ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x06CC, 'FARSI YEH', 'D', 'FARSI YEH').
unicode_arabic_shaping(0x06CD, 'YEH WITH TAIL', 'R', 'YEH WITH TAIL').
unicode_arabic_shaping(0x06CE, 'FARSI YEH WITH V ABOVE', 'D', 'FARSI YEH').
unicode_arabic_shaping(0x06CF, 'WAW WITH DOT ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x06D0, 'DOTLESS YEH WITH VERTICAL 2 DOTS BELOW', 'D', 'YEH').
unicode_arabic_shaping(0x06D1, 'DOTLESS YEH WITH 3 DOTS BELOW', 'D', 'YEH').
unicode_arabic_shaping(0x06D2, 'YEH BARREE', 'R', 'YEH BARREE').
unicode_arabic_shaping(0x06D3, 'YEH BARREE WITH HAMZA ABOVE', 'R', 'YEH BARREE').
unicode_arabic_shaping(0x06D5, 'DOTLESS TEH MARBUTA', 'R', 'TEH MARBUTA').
unicode_arabic_shaping(0x06DD, 'ARABIC END OF AYAH', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x06EE, 'DAL WITH INVERTED V ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x06EF, 'REH WITH INVERTED V ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x06FA, 'SEEN WITH DOT BELOW AND 3 DOTS ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x06FB, 'SAD WITH DOT BELOW AND DOT ABOVE', 'D', 'SAD').
unicode_arabic_shaping(0x06FC, 'AIN WITH DOT BELOW AND DOT ABOVE', 'D', 'AIN').
unicode_arabic_shaping(0x06FF, 'KNOTTED HEH WITH INVERTED V ABOVE', 'D', 'KNOTTED HEH').
% Syriac Characters
unicode_arabic_shaping(0x0710, 'ALAPH', 'R', 'ALAPH').
unicode_arabic_shaping(0x0712, 'BETH', 'D', 'BETH').
unicode_arabic_shaping(0x0713, 'GAMAL', 'D', 'GAMAL').
unicode_arabic_shaping(0x0714, 'GAMAL GARSHUNI', 'D', 'GAMAL').
unicode_arabic_shaping(0x0715, 'DALATH', 'R', 'DALATH RISH').
unicode_arabic_shaping(0x0716, 'DOTLESS DALATH RISH', 'R', 'DALATH RISH').
unicode_arabic_shaping(0x0717, 'HE', 'R', 'HE').
unicode_arabic_shaping(0x0718, 'WAW', 'R', 'SYRIAC WAW').
unicode_arabic_shaping(0x0719, 'ZAIN', 'R', 'ZAIN').
unicode_arabic_shaping(0x071A, 'HETH', 'D', 'HETH').
unicode_arabic_shaping(0x071B, 'TETH', 'D', 'TETH').
unicode_arabic_shaping(0x071C, 'TETH GARSHUNI', 'D', 'TETH').
unicode_arabic_shaping(0x071D, 'YUDH', 'D', 'YUDH').
unicode_arabic_shaping(0x071E, 'YUDH HE', 'R', 'YUDH HE').
unicode_arabic_shaping(0x071F, 'KAPH', 'D', 'KAPH').
unicode_arabic_shaping(0x0720, 'LAMADH', 'D', 'LAMADH').
unicode_arabic_shaping(0x0721, 'MIM', 'D', 'MIM').
unicode_arabic_shaping(0x0722, 'NUN', 'D', 'NUN').
unicode_arabic_shaping(0x0723, 'SEMKATH', 'D', 'SEMKATH').
unicode_arabic_shaping(0x0724, 'FINAL SEMKATH', 'D', 'FINAL SEMKATH').
unicode_arabic_shaping(0x0725, 'E', 'D', 'E').
unicode_arabic_shaping(0x0726, 'PE', 'D', 'PE').
unicode_arabic_shaping(0x0727, 'REVERSED PE', 'D', 'REVERSED PE').
unicode_arabic_shaping(0x0728, 'SADHE', 'R', 'SADHE').
unicode_arabic_shaping(0x0729, 'QAPH', 'D', 'QAPH').
unicode_arabic_shaping(0x072A, 'RISH', 'R', 'DALATH RISH').
unicode_arabic_shaping(0x072B, 'SHIN', 'D', 'SHIN').
unicode_arabic_shaping(0x072C, 'TAW', 'R', 'TAW').
unicode_arabic_shaping(0x072D, 'PERSIAN BHETH', 'D', 'BETH').
unicode_arabic_shaping(0x072E, 'PERSIAN GHAMAL', 'D', 'GAMAL').
unicode_arabic_shaping(0x072F, 'PERSIAN DHALATH', 'R', 'DALATH RISH').
unicode_arabic_shaping(0x074D, 'SOGDIAN ZHAIN', 'R', 'ZHAIN').
unicode_arabic_shaping(0x074E, 'SOGDIAN KHAPH', 'D', 'KHAPH').
unicode_arabic_shaping(0x074F, 'SOGDIAN FE', 'D', 'FE').
% Arabic Supplement Characters
unicode_arabic_shaping(0x0750, 'DOTLESS BEH WITH HORIZONTAL 3 DOTS BELOW', 'D', 'BEH').
unicode_arabic_shaping(0x0751, 'BEH WITH 3 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x0752, 'DOTLESS BEH WITH INVERTED 3 DOTS BELOW', 'D', 'BEH').
unicode_arabic_shaping(0x0753, 'DOTLESS BEH WITH INVERTED 3 DOTS BELOW AND 2 DOTS ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x0754, 'DOTLESS BEH WITH 2 DOTS BELOW AND DOT ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x0755, 'DOTLESS BEH WITH INVERTED V BELOW', 'D', 'BEH').
unicode_arabic_shaping(0x0756, 'DOTLESS BEH WITH V ABOVE', 'D', 'BEH').
unicode_arabic_shaping(0x0757, 'HAH WITH 2 DOTS ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x0758, 'HAH WITH INVERTED 3 DOTS BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x0759, 'DAL WITH VERTICAL 2 DOTS BELOW AND TAH ABOVE', 'R', 'DAL').
unicode_arabic_shaping(0x075A, 'DAL WITH INVERTED V BELOW', 'R', 'DAL').
unicode_arabic_shaping(0x075B, 'REH WITH BAR', 'R', 'REH').
unicode_arabic_shaping(0x075C, 'SEEN WITH 4 DOTS ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x075D, 'AIN WITH 2 DOTS ABOVE', 'D', 'AIN').
unicode_arabic_shaping(0x075E, 'AIN WITH INVERTED 3 DOTS ABOVE', 'D', 'AIN').
unicode_arabic_shaping(0x075F, 'AIN WITH VERTICAL 2 DOTS ABOVE', 'D', 'AIN').
unicode_arabic_shaping(0x0760, 'DOTLESS FEH WITH 2 DOTS BELOW', 'D', 'FEH').
unicode_arabic_shaping(0x0761, 'DOTLESS FEH WITH INVERTED 3 DOTS BELOW', 'D', 'FEH').
unicode_arabic_shaping(0x0762, 'KEHEH WITH DOT ABOVE', 'D', 'GAF').
unicode_arabic_shaping(0x0763, 'KEHEH WITH 3 DOTS ABOVE', 'D', 'GAF').
unicode_arabic_shaping(0x0764, 'KEHEH WITH INVERTED 3 DOTS BELOW', 'D', 'GAF').
unicode_arabic_shaping(0x0765, 'MEEM WITH DOT ABOVE', 'D', 'MEEM').
unicode_arabic_shaping(0x0766, 'MEEM WITH DOT BELOW', 'D', 'MEEM').
unicode_arabic_shaping(0x0767, 'NOON WITH 2 DOTS BELOW', 'D', 'NOON').
unicode_arabic_shaping(0x0768, 'NOON WITH TAH ABOVE', 'D', 'NOON').
unicode_arabic_shaping(0x0769, 'NOON WITH V ABOVE', 'D', 'NOON').
unicode_arabic_shaping(0x076A, 'LAM WITH BAR', 'D', 'LAM').
unicode_arabic_shaping(0x076B, 'REH WITH VERTICAL 2 DOTS ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x076C, 'REH WITH HAMZA ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x076D, 'SEEN WITH VERTICAL 2 DOTS ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x076E, 'HAH WITH TAH BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x076F, 'HAH WITH TAH AND 2 DOTS BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x0770, 'SEEN WITH 2 DOTS AND TAH ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x0771, 'REH WITH 2 DOTS AND TAH ABOVE', 'R', 'REH').
unicode_arabic_shaping(0x0772, 'HAH WITH TAH ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x0773, 'ALEF WITH DIGIT TWO ABOVE', 'R', 'ALEF').
unicode_arabic_shaping(0x0774, 'ALEF WITH DIGIT THREE ABOVE', 'R', 'ALEF').
unicode_arabic_shaping(0x0775, 'FARSI YEH WITH DIGIT TWO ABOVE', 'D', 'FARSI YEH').
unicode_arabic_shaping(0x0776, 'FARSI YEH WITH DIGIT THREE ABOVE', 'D', 'FARSI YEH').
unicode_arabic_shaping(0x0777, 'DOTLESS YEH WITH DIGIT FOUR BELOW', 'D', 'YEH').
unicode_arabic_shaping(0x0778, 'WAW WITH DIGIT TWO ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x0779, 'WAW WITH DIGIT THREE ABOVE', 'R', 'WAW').
unicode_arabic_shaping(0x077A, 'BURUSHASKI YEH BARREE WITH DIGIT TWO ABOVE', 'D', 'BURUSHASKI YEH BARREE').
unicode_arabic_shaping(0x077B, 'BURUSHASKI YEH BARREE WITH DIGIT THREE ABOVE', 'D', 'BURUSHASKI YEH BARREE').
unicode_arabic_shaping(0x077C, 'HAH WITH DIGIT FOUR BELOW', 'D', 'HAH').
unicode_arabic_shaping(0x077D, 'SEEN WITH DIGIT FOUR ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x077E, 'SEEN WITH INVERTED V ABOVE', 'D', 'SEEN').
unicode_arabic_shaping(0x077F, 'KAF WITH 2 DOTS ABOVE', 'D', 'KAF').
% N'Ko Characters
unicode_arabic_shaping(0x07CA, 'NKO A', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07CB, 'NKO EE', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07CC, 'NKO I', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07CD, 'NKO E', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07CE, 'NKO U', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07CF, 'NKO OO', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D0, 'NKO O', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D1, 'NKO DAGBASINNA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D2, 'NKO N', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D3, 'NKO BA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D4, 'NKO PA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D5, 'NKO TA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D6, 'NKO JA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D7, 'NKO CHA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D8, 'NKO DA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07D9, 'NKO RA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07DA, 'NKO RRA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07DB, 'NKO SA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07DC, 'NKO GBA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07DD, 'NKO FA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07DE, 'NKO KA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07DF, 'NKO LA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E0, 'NKO NA WOLOSO', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E1, 'NKO MA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E2, 'NKO NYA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E3, 'NKO NA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E4, 'NKO HA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E5, 'NKO WA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E6, 'NKO YA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E7, 'NKO NYA WOLOSO', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E8, 'NKO JONA JA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07E9, 'NKO JONA CHA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07EA, 'NKO JONA RA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x07FA, 'NKO LAJANYALAN', 'C', 'No_Joining_Group').
% Mandaic Characters
unicode_arabic_shaping(0x0840, 'MANDAIC HALQA', 'R', 'No_Joining_Group').
unicode_arabic_shaping(0x0841, 'MANDAIC AB', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0842, 'MANDAIC AG', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0843, 'MANDAIC AD', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0844, 'MANDAIC AH', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0845, 'MANDAIC USHENNA', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0846, 'MANDAIC AZ', 'R', 'No_Joining_Group').
unicode_arabic_shaping(0x0847, 'MANDAIC IT', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0848, 'MANDAIC ATT', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0849, 'MANDAIC AKSA', 'R', 'No_Joining_Group').
unicode_arabic_shaping(0x084A, 'MANDAIC AK', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x084B, 'MANDAIC AL', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x084C, 'MANDAIC AM', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x084D, 'MANDAIC AN', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x084E, 'MANDAIC AS', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x084F, 'MANDAIC IN', 'R', 'No_Joining_Group').
unicode_arabic_shaping(0x0850, 'MANDAIC AP', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0851, 'MANDAIC ASZ', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0852, 'MANDAIC AQ', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0853, 'MANDAIC AR', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0854, 'MANDAIC ASH', 'R', 'No_Joining_Group').
unicode_arabic_shaping(0x0855, 'MANDAIC AT', 'D', 'No_Joining_Group').
unicode_arabic_shaping(0x0856, 'MANDAIC DUSHENNA', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0857, 'MANDAIC KAD', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x0858, 'MANDAIC AIN', 'U', 'No_Joining_Group').
% Arabic Extended-A Characters
unicode_arabic_shaping(0x08A0, 'DOTLESS BEH WITH V BELOW', 'D', 'BEH').
unicode_arabic_shaping(0x08A2, 'HAH WITH DOT BELOW AND 2 DOTS ABOVE', 'D', 'HAH').
unicode_arabic_shaping(0x08A3, 'TAH WITH 2 DOTS ABOVE', 'D', 'TAH').
unicode_arabic_shaping(0x08A4, 'DOTLESS FEH WITH DOT BELOW AND 3 DOTS ABOVE', 'D', 'FEH').
unicode_arabic_shaping(0x08A5, 'QAF WITH DOT BELOW', 'D', 'QAF').
unicode_arabic_shaping(0x08A6, 'LAM WITH DOUBLE BAR', 'D', 'LAM').
unicode_arabic_shaping(0x08A7, 'MEEM WITH 3 DOTS ABOVE', 'D', 'MEEM').
unicode_arabic_shaping(0x08A8, 'YEH WITH HAMZA ABOVE', 'D', 'YEH').
unicode_arabic_shaping(0x08A9, 'YEH WITH DOT ABOVE', 'D', 'YEH').
unicode_arabic_shaping(0x08AA, 'REH WITH LOOP', 'R', 'REH').
unicode_arabic_shaping(0x08AB, 'WAW WITH DOT WITHIN', 'R', 'WAW').
unicode_arabic_shaping(0x08AC, 'ROHINGYA YEH', 'R', 'ROHINGYA YEH').
% Other
unicode_arabic_shaping(0x200C, 'ZERO WIDTH NON-JOINER', 'U', 'No_Joining_Group').
unicode_arabic_shaping(0x200D, 'ZERO WIDTH JOINER', 'C', 'No_Joining_Group').
% EOF