tree-sitter-lispex 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/src/unicode.h ADDED
@@ -0,0 +1,864 @@
1
+ // Generated by scripts/generate-unicode.rs; Unicode 16.0.0.
2
+ // Rust char::is_alphanumeric: Alphabetic or Number, independent of locale.
3
+ #ifndef LISPEX_UNICODE_H_
4
+ #define LISPEX_UNICODE_H_
5
+
6
+ #include <stdbool.h>
7
+ #include <stdint.h>
8
+
9
+ static const uint32_t alphanumeric_ranges[][2] = {
10
+ {0xAA, 0xAA},
11
+ {0xB2, 0xB3},
12
+ {0xB5, 0xB5},
13
+ {0xB9, 0xBA},
14
+ {0xBC, 0xBE},
15
+ {0xC0, 0xD6},
16
+ {0xD8, 0xF6},
17
+ {0xF8, 0x2C1},
18
+ {0x2C6, 0x2D1},
19
+ {0x2E0, 0x2E4},
20
+ {0x2EC, 0x2EC},
21
+ {0x2EE, 0x2EE},
22
+ {0x345, 0x345},
23
+ {0x363, 0x374},
24
+ {0x376, 0x377},
25
+ {0x37A, 0x37D},
26
+ {0x37F, 0x37F},
27
+ {0x386, 0x386},
28
+ {0x388, 0x38A},
29
+ {0x38C, 0x38C},
30
+ {0x38E, 0x3A1},
31
+ {0x3A3, 0x3F5},
32
+ {0x3F7, 0x481},
33
+ {0x48A, 0x52F},
34
+ {0x531, 0x556},
35
+ {0x559, 0x559},
36
+ {0x560, 0x588},
37
+ {0x5B0, 0x5BD},
38
+ {0x5BF, 0x5BF},
39
+ {0x5C1, 0x5C2},
40
+ {0x5C4, 0x5C5},
41
+ {0x5C7, 0x5C7},
42
+ {0x5D0, 0x5EA},
43
+ {0x5EF, 0x5F2},
44
+ {0x610, 0x61A},
45
+ {0x620, 0x657},
46
+ {0x659, 0x669},
47
+ {0x66E, 0x6D3},
48
+ {0x6D5, 0x6DC},
49
+ {0x6E1, 0x6E8},
50
+ {0x6ED, 0x6FC},
51
+ {0x6FF, 0x6FF},
52
+ {0x710, 0x73F},
53
+ {0x74D, 0x7B1},
54
+ {0x7C0, 0x7EA},
55
+ {0x7F4, 0x7F5},
56
+ {0x7FA, 0x7FA},
57
+ {0x800, 0x817},
58
+ {0x81A, 0x82C},
59
+ {0x840, 0x858},
60
+ {0x860, 0x86A},
61
+ {0x870, 0x887},
62
+ {0x889, 0x88E},
63
+ {0x897, 0x897},
64
+ {0x8A0, 0x8C9},
65
+ {0x8D4, 0x8DF},
66
+ {0x8E3, 0x8E9},
67
+ {0x8F0, 0x93B},
68
+ {0x93D, 0x94C},
69
+ {0x94E, 0x950},
70
+ {0x955, 0x963},
71
+ {0x966, 0x96F},
72
+ {0x971, 0x983},
73
+ {0x985, 0x98C},
74
+ {0x98F, 0x990},
75
+ {0x993, 0x9A8},
76
+ {0x9AA, 0x9B0},
77
+ {0x9B2, 0x9B2},
78
+ {0x9B6, 0x9B9},
79
+ {0x9BD, 0x9C4},
80
+ {0x9C7, 0x9C8},
81
+ {0x9CB, 0x9CC},
82
+ {0x9CE, 0x9CE},
83
+ {0x9D7, 0x9D7},
84
+ {0x9DC, 0x9DD},
85
+ {0x9DF, 0x9E3},
86
+ {0x9E6, 0x9F1},
87
+ {0x9F4, 0x9F9},
88
+ {0x9FC, 0x9FC},
89
+ {0xA01, 0xA03},
90
+ {0xA05, 0xA0A},
91
+ {0xA0F, 0xA10},
92
+ {0xA13, 0xA28},
93
+ {0xA2A, 0xA30},
94
+ {0xA32, 0xA33},
95
+ {0xA35, 0xA36},
96
+ {0xA38, 0xA39},
97
+ {0xA3E, 0xA42},
98
+ {0xA47, 0xA48},
99
+ {0xA4B, 0xA4C},
100
+ {0xA51, 0xA51},
101
+ {0xA59, 0xA5C},
102
+ {0xA5E, 0xA5E},
103
+ {0xA66, 0xA75},
104
+ {0xA81, 0xA83},
105
+ {0xA85, 0xA8D},
106
+ {0xA8F, 0xA91},
107
+ {0xA93, 0xAA8},
108
+ {0xAAA, 0xAB0},
109
+ {0xAB2, 0xAB3},
110
+ {0xAB5, 0xAB9},
111
+ {0xABD, 0xAC5},
112
+ {0xAC7, 0xAC9},
113
+ {0xACB, 0xACC},
114
+ {0xAD0, 0xAD0},
115
+ {0xAE0, 0xAE3},
116
+ {0xAE6, 0xAEF},
117
+ {0xAF9, 0xAFC},
118
+ {0xB01, 0xB03},
119
+ {0xB05, 0xB0C},
120
+ {0xB0F, 0xB10},
121
+ {0xB13, 0xB28},
122
+ {0xB2A, 0xB30},
123
+ {0xB32, 0xB33},
124
+ {0xB35, 0xB39},
125
+ {0xB3D, 0xB44},
126
+ {0xB47, 0xB48},
127
+ {0xB4B, 0xB4C},
128
+ {0xB56, 0xB57},
129
+ {0xB5C, 0xB5D},
130
+ {0xB5F, 0xB63},
131
+ {0xB66, 0xB6F},
132
+ {0xB71, 0xB77},
133
+ {0xB82, 0xB83},
134
+ {0xB85, 0xB8A},
135
+ {0xB8E, 0xB90},
136
+ {0xB92, 0xB95},
137
+ {0xB99, 0xB9A},
138
+ {0xB9C, 0xB9C},
139
+ {0xB9E, 0xB9F},
140
+ {0xBA3, 0xBA4},
141
+ {0xBA8, 0xBAA},
142
+ {0xBAE, 0xBB9},
143
+ {0xBBE, 0xBC2},
144
+ {0xBC6, 0xBC8},
145
+ {0xBCA, 0xBCC},
146
+ {0xBD0, 0xBD0},
147
+ {0xBD7, 0xBD7},
148
+ {0xBE6, 0xBF2},
149
+ {0xC00, 0xC0C},
150
+ {0xC0E, 0xC10},
151
+ {0xC12, 0xC28},
152
+ {0xC2A, 0xC39},
153
+ {0xC3D, 0xC44},
154
+ {0xC46, 0xC48},
155
+ {0xC4A, 0xC4C},
156
+ {0xC55, 0xC56},
157
+ {0xC58, 0xC5A},
158
+ {0xC5D, 0xC5D},
159
+ {0xC60, 0xC63},
160
+ {0xC66, 0xC6F},
161
+ {0xC78, 0xC7E},
162
+ {0xC80, 0xC83},
163
+ {0xC85, 0xC8C},
164
+ {0xC8E, 0xC90},
165
+ {0xC92, 0xCA8},
166
+ {0xCAA, 0xCB3},
167
+ {0xCB5, 0xCB9},
168
+ {0xCBD, 0xCC4},
169
+ {0xCC6, 0xCC8},
170
+ {0xCCA, 0xCCC},
171
+ {0xCD5, 0xCD6},
172
+ {0xCDD, 0xCDE},
173
+ {0xCE0, 0xCE3},
174
+ {0xCE6, 0xCEF},
175
+ {0xCF1, 0xCF3},
176
+ {0xD00, 0xD0C},
177
+ {0xD0E, 0xD10},
178
+ {0xD12, 0xD3A},
179
+ {0xD3D, 0xD44},
180
+ {0xD46, 0xD48},
181
+ {0xD4A, 0xD4C},
182
+ {0xD4E, 0xD4E},
183
+ {0xD54, 0xD63},
184
+ {0xD66, 0xD78},
185
+ {0xD7A, 0xD7F},
186
+ {0xD81, 0xD83},
187
+ {0xD85, 0xD96},
188
+ {0xD9A, 0xDB1},
189
+ {0xDB3, 0xDBB},
190
+ {0xDBD, 0xDBD},
191
+ {0xDC0, 0xDC6},
192
+ {0xDCF, 0xDD4},
193
+ {0xDD6, 0xDD6},
194
+ {0xDD8, 0xDDF},
195
+ {0xDE6, 0xDEF},
196
+ {0xDF2, 0xDF3},
197
+ {0xE01, 0xE3A},
198
+ {0xE40, 0xE46},
199
+ {0xE4D, 0xE4D},
200
+ {0xE50, 0xE59},
201
+ {0xE81, 0xE82},
202
+ {0xE84, 0xE84},
203
+ {0xE86, 0xE8A},
204
+ {0xE8C, 0xEA3},
205
+ {0xEA5, 0xEA5},
206
+ {0xEA7, 0xEB9},
207
+ {0xEBB, 0xEBD},
208
+ {0xEC0, 0xEC4},
209
+ {0xEC6, 0xEC6},
210
+ {0xECD, 0xECD},
211
+ {0xED0, 0xED9},
212
+ {0xEDC, 0xEDF},
213
+ {0xF00, 0xF00},
214
+ {0xF20, 0xF33},
215
+ {0xF40, 0xF47},
216
+ {0xF49, 0xF6C},
217
+ {0xF71, 0xF83},
218
+ {0xF88, 0xF97},
219
+ {0xF99, 0xFBC},
220
+ {0x1000, 0x1036},
221
+ {0x1038, 0x1038},
222
+ {0x103B, 0x1049},
223
+ {0x1050, 0x109D},
224
+ {0x10A0, 0x10C5},
225
+ {0x10C7, 0x10C7},
226
+ {0x10CD, 0x10CD},
227
+ {0x10D0, 0x10FA},
228
+ {0x10FC, 0x1248},
229
+ {0x124A, 0x124D},
230
+ {0x1250, 0x1256},
231
+ {0x1258, 0x1258},
232
+ {0x125A, 0x125D},
233
+ {0x1260, 0x1288},
234
+ {0x128A, 0x128D},
235
+ {0x1290, 0x12B0},
236
+ {0x12B2, 0x12B5},
237
+ {0x12B8, 0x12BE},
238
+ {0x12C0, 0x12C0},
239
+ {0x12C2, 0x12C5},
240
+ {0x12C8, 0x12D6},
241
+ {0x12D8, 0x1310},
242
+ {0x1312, 0x1315},
243
+ {0x1318, 0x135A},
244
+ {0x1369, 0x137C},
245
+ {0x1380, 0x138F},
246
+ {0x13A0, 0x13F5},
247
+ {0x13F8, 0x13FD},
248
+ {0x1401, 0x166C},
249
+ {0x166F, 0x167F},
250
+ {0x1681, 0x169A},
251
+ {0x16A0, 0x16EA},
252
+ {0x16EE, 0x16F8},
253
+ {0x1700, 0x1713},
254
+ {0x171F, 0x1733},
255
+ {0x1740, 0x1753},
256
+ {0x1760, 0x176C},
257
+ {0x176E, 0x1770},
258
+ {0x1772, 0x1773},
259
+ {0x1780, 0x17B3},
260
+ {0x17B6, 0x17C8},
261
+ {0x17D7, 0x17D7},
262
+ {0x17DC, 0x17DC},
263
+ {0x17E0, 0x17E9},
264
+ {0x17F0, 0x17F9},
265
+ {0x1810, 0x1819},
266
+ {0x1820, 0x1878},
267
+ {0x1880, 0x18AA},
268
+ {0x18B0, 0x18F5},
269
+ {0x1900, 0x191E},
270
+ {0x1920, 0x192B},
271
+ {0x1930, 0x1938},
272
+ {0x1946, 0x196D},
273
+ {0x1970, 0x1974},
274
+ {0x1980, 0x19AB},
275
+ {0x19B0, 0x19C9},
276
+ {0x19D0, 0x19DA},
277
+ {0x1A00, 0x1A1B},
278
+ {0x1A20, 0x1A5E},
279
+ {0x1A61, 0x1A74},
280
+ {0x1A80, 0x1A89},
281
+ {0x1A90, 0x1A99},
282
+ {0x1AA7, 0x1AA7},
283
+ {0x1ABF, 0x1AC0},
284
+ {0x1ACC, 0x1ACE},
285
+ {0x1B00, 0x1B33},
286
+ {0x1B35, 0x1B43},
287
+ {0x1B45, 0x1B4C},
288
+ {0x1B50, 0x1B59},
289
+ {0x1B80, 0x1BA9},
290
+ {0x1BAC, 0x1BE5},
291
+ {0x1BE7, 0x1BF1},
292
+ {0x1C00, 0x1C36},
293
+ {0x1C40, 0x1C49},
294
+ {0x1C4D, 0x1C7D},
295
+ {0x1C80, 0x1C8A},
296
+ {0x1C90, 0x1CBA},
297
+ {0x1CBD, 0x1CBF},
298
+ {0x1CE9, 0x1CEC},
299
+ {0x1CEE, 0x1CF3},
300
+ {0x1CF5, 0x1CF6},
301
+ {0x1CFA, 0x1CFA},
302
+ {0x1D00, 0x1DBF},
303
+ {0x1DD3, 0x1DF4},
304
+ {0x1E00, 0x1F15},
305
+ {0x1F18, 0x1F1D},
306
+ {0x1F20, 0x1F45},
307
+ {0x1F48, 0x1F4D},
308
+ {0x1F50, 0x1F57},
309
+ {0x1F59, 0x1F59},
310
+ {0x1F5B, 0x1F5B},
311
+ {0x1F5D, 0x1F5D},
312
+ {0x1F5F, 0x1F7D},
313
+ {0x1F80, 0x1FB4},
314
+ {0x1FB6, 0x1FBC},
315
+ {0x1FBE, 0x1FBE},
316
+ {0x1FC2, 0x1FC4},
317
+ {0x1FC6, 0x1FCC},
318
+ {0x1FD0, 0x1FD3},
319
+ {0x1FD6, 0x1FDB},
320
+ {0x1FE0, 0x1FEC},
321
+ {0x1FF2, 0x1FF4},
322
+ {0x1FF6, 0x1FFC},
323
+ {0x2070, 0x2071},
324
+ {0x2074, 0x2079},
325
+ {0x207F, 0x2089},
326
+ {0x2090, 0x209C},
327
+ {0x2102, 0x2102},
328
+ {0x2107, 0x2107},
329
+ {0x210A, 0x2113},
330
+ {0x2115, 0x2115},
331
+ {0x2119, 0x211D},
332
+ {0x2124, 0x2124},
333
+ {0x2126, 0x2126},
334
+ {0x2128, 0x2128},
335
+ {0x212A, 0x212D},
336
+ {0x212F, 0x2139},
337
+ {0x213C, 0x213F},
338
+ {0x2145, 0x2149},
339
+ {0x214E, 0x214E},
340
+ {0x2150, 0x2189},
341
+ {0x2460, 0x249B},
342
+ {0x24B6, 0x24FF},
343
+ {0x2776, 0x2793},
344
+ {0x2C00, 0x2CE4},
345
+ {0x2CEB, 0x2CEE},
346
+ {0x2CF2, 0x2CF3},
347
+ {0x2CFD, 0x2CFD},
348
+ {0x2D00, 0x2D25},
349
+ {0x2D27, 0x2D27},
350
+ {0x2D2D, 0x2D2D},
351
+ {0x2D30, 0x2D67},
352
+ {0x2D6F, 0x2D6F},
353
+ {0x2D80, 0x2D96},
354
+ {0x2DA0, 0x2DA6},
355
+ {0x2DA8, 0x2DAE},
356
+ {0x2DB0, 0x2DB6},
357
+ {0x2DB8, 0x2DBE},
358
+ {0x2DC0, 0x2DC6},
359
+ {0x2DC8, 0x2DCE},
360
+ {0x2DD0, 0x2DD6},
361
+ {0x2DD8, 0x2DDE},
362
+ {0x2DE0, 0x2DFF},
363
+ {0x2E2F, 0x2E2F},
364
+ {0x3005, 0x3007},
365
+ {0x3021, 0x3029},
366
+ {0x3031, 0x3035},
367
+ {0x3038, 0x303C},
368
+ {0x3041, 0x3096},
369
+ {0x309D, 0x309F},
370
+ {0x30A1, 0x30FA},
371
+ {0x30FC, 0x30FF},
372
+ {0x3105, 0x312F},
373
+ {0x3131, 0x318E},
374
+ {0x3192, 0x3195},
375
+ {0x31A0, 0x31BF},
376
+ {0x31F0, 0x31FF},
377
+ {0x3220, 0x3229},
378
+ {0x3248, 0x324F},
379
+ {0x3251, 0x325F},
380
+ {0x3280, 0x3289},
381
+ {0x32B1, 0x32BF},
382
+ {0x3400, 0x4DBF},
383
+ {0x4E00, 0xA48C},
384
+ {0xA4D0, 0xA4FD},
385
+ {0xA500, 0xA60C},
386
+ {0xA610, 0xA62B},
387
+ {0xA640, 0xA66E},
388
+ {0xA674, 0xA67B},
389
+ {0xA67F, 0xA6EF},
390
+ {0xA717, 0xA71F},
391
+ {0xA722, 0xA788},
392
+ {0xA78B, 0xA7CD},
393
+ {0xA7D0, 0xA7D1},
394
+ {0xA7D3, 0xA7D3},
395
+ {0xA7D5, 0xA7DC},
396
+ {0xA7F2, 0xA805},
397
+ {0xA807, 0xA827},
398
+ {0xA830, 0xA835},
399
+ {0xA840, 0xA873},
400
+ {0xA880, 0xA8C3},
401
+ {0xA8C5, 0xA8C5},
402
+ {0xA8D0, 0xA8D9},
403
+ {0xA8F2, 0xA8F7},
404
+ {0xA8FB, 0xA8FB},
405
+ {0xA8FD, 0xA92A},
406
+ {0xA930, 0xA952},
407
+ {0xA960, 0xA97C},
408
+ {0xA980, 0xA9B2},
409
+ {0xA9B4, 0xA9BF},
410
+ {0xA9CF, 0xA9D9},
411
+ {0xA9E0, 0xA9FE},
412
+ {0xAA00, 0xAA36},
413
+ {0xAA40, 0xAA4D},
414
+ {0xAA50, 0xAA59},
415
+ {0xAA60, 0xAA76},
416
+ {0xAA7A, 0xAABE},
417
+ {0xAAC0, 0xAAC0},
418
+ {0xAAC2, 0xAAC2},
419
+ {0xAADB, 0xAADD},
420
+ {0xAAE0, 0xAAEF},
421
+ {0xAAF2, 0xAAF5},
422
+ {0xAB01, 0xAB06},
423
+ {0xAB09, 0xAB0E},
424
+ {0xAB11, 0xAB16},
425
+ {0xAB20, 0xAB26},
426
+ {0xAB28, 0xAB2E},
427
+ {0xAB30, 0xAB5A},
428
+ {0xAB5C, 0xAB69},
429
+ {0xAB70, 0xABEA},
430
+ {0xABF0, 0xABF9},
431
+ {0xAC00, 0xD7A3},
432
+ {0xD7B0, 0xD7C6},
433
+ {0xD7CB, 0xD7FB},
434
+ {0xF900, 0xFA6D},
435
+ {0xFA70, 0xFAD9},
436
+ {0xFB00, 0xFB06},
437
+ {0xFB13, 0xFB17},
438
+ {0xFB1D, 0xFB28},
439
+ {0xFB2A, 0xFB36},
440
+ {0xFB38, 0xFB3C},
441
+ {0xFB3E, 0xFB3E},
442
+ {0xFB40, 0xFB41},
443
+ {0xFB43, 0xFB44},
444
+ {0xFB46, 0xFBB1},
445
+ {0xFBD3, 0xFD3D},
446
+ {0xFD50, 0xFD8F},
447
+ {0xFD92, 0xFDC7},
448
+ {0xFDF0, 0xFDFB},
449
+ {0xFE70, 0xFE74},
450
+ {0xFE76, 0xFEFC},
451
+ {0xFF10, 0xFF19},
452
+ {0xFF21, 0xFF3A},
453
+ {0xFF41, 0xFF5A},
454
+ {0xFF66, 0xFFBE},
455
+ {0xFFC2, 0xFFC7},
456
+ {0xFFCA, 0xFFCF},
457
+ {0xFFD2, 0xFFD7},
458
+ {0xFFDA, 0xFFDC},
459
+ {0x10000, 0x1000B},
460
+ {0x1000D, 0x10026},
461
+ {0x10028, 0x1003A},
462
+ {0x1003C, 0x1003D},
463
+ {0x1003F, 0x1004D},
464
+ {0x10050, 0x1005D},
465
+ {0x10080, 0x100FA},
466
+ {0x10107, 0x10133},
467
+ {0x10140, 0x10178},
468
+ {0x1018A, 0x1018B},
469
+ {0x10280, 0x1029C},
470
+ {0x102A0, 0x102D0},
471
+ {0x102E1, 0x102FB},
472
+ {0x10300, 0x10323},
473
+ {0x1032D, 0x1034A},
474
+ {0x10350, 0x1037A},
475
+ {0x10380, 0x1039D},
476
+ {0x103A0, 0x103C3},
477
+ {0x103C8, 0x103CF},
478
+ {0x103D1, 0x103D5},
479
+ {0x10400, 0x1049D},
480
+ {0x104A0, 0x104A9},
481
+ {0x104B0, 0x104D3},
482
+ {0x104D8, 0x104FB},
483
+ {0x10500, 0x10527},
484
+ {0x10530, 0x10563},
485
+ {0x10570, 0x1057A},
486
+ {0x1057C, 0x1058A},
487
+ {0x1058C, 0x10592},
488
+ {0x10594, 0x10595},
489
+ {0x10597, 0x105A1},
490
+ {0x105A3, 0x105B1},
491
+ {0x105B3, 0x105B9},
492
+ {0x105BB, 0x105BC},
493
+ {0x105C0, 0x105F3},
494
+ {0x10600, 0x10736},
495
+ {0x10740, 0x10755},
496
+ {0x10760, 0x10767},
497
+ {0x10780, 0x10785},
498
+ {0x10787, 0x107B0},
499
+ {0x107B2, 0x107BA},
500
+ {0x10800, 0x10805},
501
+ {0x10808, 0x10808},
502
+ {0x1080A, 0x10835},
503
+ {0x10837, 0x10838},
504
+ {0x1083C, 0x1083C},
505
+ {0x1083F, 0x10855},
506
+ {0x10858, 0x10876},
507
+ {0x10879, 0x1089E},
508
+ {0x108A7, 0x108AF},
509
+ {0x108E0, 0x108F2},
510
+ {0x108F4, 0x108F5},
511
+ {0x108FB, 0x1091B},
512
+ {0x10920, 0x10939},
513
+ {0x10980, 0x109B7},
514
+ {0x109BC, 0x109CF},
515
+ {0x109D2, 0x10A03},
516
+ {0x10A05, 0x10A06},
517
+ {0x10A0C, 0x10A13},
518
+ {0x10A15, 0x10A17},
519
+ {0x10A19, 0x10A35},
520
+ {0x10A40, 0x10A48},
521
+ {0x10A60, 0x10A7E},
522
+ {0x10A80, 0x10A9F},
523
+ {0x10AC0, 0x10AC7},
524
+ {0x10AC9, 0x10AE4},
525
+ {0x10AEB, 0x10AEF},
526
+ {0x10B00, 0x10B35},
527
+ {0x10B40, 0x10B55},
528
+ {0x10B58, 0x10B72},
529
+ {0x10B78, 0x10B91},
530
+ {0x10BA9, 0x10BAF},
531
+ {0x10C00, 0x10C48},
532
+ {0x10C80, 0x10CB2},
533
+ {0x10CC0, 0x10CF2},
534
+ {0x10CFA, 0x10D27},
535
+ {0x10D30, 0x10D39},
536
+ {0x10D40, 0x10D65},
537
+ {0x10D69, 0x10D69},
538
+ {0x10D6F, 0x10D85},
539
+ {0x10E60, 0x10E7E},
540
+ {0x10E80, 0x10EA9},
541
+ {0x10EAB, 0x10EAC},
542
+ {0x10EB0, 0x10EB1},
543
+ {0x10EC2, 0x10EC4},
544
+ {0x10EFC, 0x10EFC},
545
+ {0x10F00, 0x10F27},
546
+ {0x10F30, 0x10F45},
547
+ {0x10F51, 0x10F54},
548
+ {0x10F70, 0x10F81},
549
+ {0x10FB0, 0x10FCB},
550
+ {0x10FE0, 0x10FF6},
551
+ {0x11000, 0x11045},
552
+ {0x11052, 0x1106F},
553
+ {0x11071, 0x11075},
554
+ {0x11080, 0x110B8},
555
+ {0x110C2, 0x110C2},
556
+ {0x110D0, 0x110E8},
557
+ {0x110F0, 0x110F9},
558
+ {0x11100, 0x11132},
559
+ {0x11136, 0x1113F},
560
+ {0x11144, 0x11147},
561
+ {0x11150, 0x11172},
562
+ {0x11176, 0x11176},
563
+ {0x11180, 0x111BF},
564
+ {0x111C1, 0x111C4},
565
+ {0x111CE, 0x111DA},
566
+ {0x111DC, 0x111DC},
567
+ {0x111E1, 0x111F4},
568
+ {0x11200, 0x11211},
569
+ {0x11213, 0x11234},
570
+ {0x11237, 0x11237},
571
+ {0x1123E, 0x11241},
572
+ {0x11280, 0x11286},
573
+ {0x11288, 0x11288},
574
+ {0x1128A, 0x1128D},
575
+ {0x1128F, 0x1129D},
576
+ {0x1129F, 0x112A8},
577
+ {0x112B0, 0x112E8},
578
+ {0x112F0, 0x112F9},
579
+ {0x11300, 0x11303},
580
+ {0x11305, 0x1130C},
581
+ {0x1130F, 0x11310},
582
+ {0x11313, 0x11328},
583
+ {0x1132A, 0x11330},
584
+ {0x11332, 0x11333},
585
+ {0x11335, 0x11339},
586
+ {0x1133D, 0x11344},
587
+ {0x11347, 0x11348},
588
+ {0x1134B, 0x1134C},
589
+ {0x11350, 0x11350},
590
+ {0x11357, 0x11357},
591
+ {0x1135D, 0x11363},
592
+ {0x11380, 0x11389},
593
+ {0x1138B, 0x1138B},
594
+ {0x1138E, 0x1138E},
595
+ {0x11390, 0x113B5},
596
+ {0x113B7, 0x113C0},
597
+ {0x113C2, 0x113C2},
598
+ {0x113C5, 0x113C5},
599
+ {0x113C7, 0x113CA},
600
+ {0x113CC, 0x113CD},
601
+ {0x113D1, 0x113D1},
602
+ {0x113D3, 0x113D3},
603
+ {0x11400, 0x11441},
604
+ {0x11443, 0x11445},
605
+ {0x11447, 0x1144A},
606
+ {0x11450, 0x11459},
607
+ {0x1145F, 0x11461},
608
+ {0x11480, 0x114C1},
609
+ {0x114C4, 0x114C5},
610
+ {0x114C7, 0x114C7},
611
+ {0x114D0, 0x114D9},
612
+ {0x11580, 0x115B5},
613
+ {0x115B8, 0x115BE},
614
+ {0x115D8, 0x115DD},
615
+ {0x11600, 0x1163E},
616
+ {0x11640, 0x11640},
617
+ {0x11644, 0x11644},
618
+ {0x11650, 0x11659},
619
+ {0x11680, 0x116B5},
620
+ {0x116B8, 0x116B8},
621
+ {0x116C0, 0x116C9},
622
+ {0x116D0, 0x116E3},
623
+ {0x11700, 0x1171A},
624
+ {0x1171D, 0x1172A},
625
+ {0x11730, 0x1173B},
626
+ {0x11740, 0x11746},
627
+ {0x11800, 0x11838},
628
+ {0x118A0, 0x118F2},
629
+ {0x118FF, 0x11906},
630
+ {0x11909, 0x11909},
631
+ {0x1190C, 0x11913},
632
+ {0x11915, 0x11916},
633
+ {0x11918, 0x11935},
634
+ {0x11937, 0x11938},
635
+ {0x1193B, 0x1193C},
636
+ {0x1193F, 0x11942},
637
+ {0x11950, 0x11959},
638
+ {0x119A0, 0x119A7},
639
+ {0x119AA, 0x119D7},
640
+ {0x119DA, 0x119DF},
641
+ {0x119E1, 0x119E1},
642
+ {0x119E3, 0x119E4},
643
+ {0x11A00, 0x11A32},
644
+ {0x11A35, 0x11A3E},
645
+ {0x11A50, 0x11A97},
646
+ {0x11A9D, 0x11A9D},
647
+ {0x11AB0, 0x11AF8},
648
+ {0x11BC0, 0x11BE0},
649
+ {0x11BF0, 0x11BF9},
650
+ {0x11C00, 0x11C08},
651
+ {0x11C0A, 0x11C36},
652
+ {0x11C38, 0x11C3E},
653
+ {0x11C40, 0x11C40},
654
+ {0x11C50, 0x11C6C},
655
+ {0x11C72, 0x11C8F},
656
+ {0x11C92, 0x11CA7},
657
+ {0x11CA9, 0x11CB6},
658
+ {0x11D00, 0x11D06},
659
+ {0x11D08, 0x11D09},
660
+ {0x11D0B, 0x11D36},
661
+ {0x11D3A, 0x11D3A},
662
+ {0x11D3C, 0x11D3D},
663
+ {0x11D3F, 0x11D41},
664
+ {0x11D43, 0x11D43},
665
+ {0x11D46, 0x11D47},
666
+ {0x11D50, 0x11D59},
667
+ {0x11D60, 0x11D65},
668
+ {0x11D67, 0x11D68},
669
+ {0x11D6A, 0x11D8E},
670
+ {0x11D90, 0x11D91},
671
+ {0x11D93, 0x11D96},
672
+ {0x11D98, 0x11D98},
673
+ {0x11DA0, 0x11DA9},
674
+ {0x11EE0, 0x11EF6},
675
+ {0x11F00, 0x11F10},
676
+ {0x11F12, 0x11F3A},
677
+ {0x11F3E, 0x11F40},
678
+ {0x11F50, 0x11F59},
679
+ {0x11FB0, 0x11FB0},
680
+ {0x11FC0, 0x11FD4},
681
+ {0x12000, 0x12399},
682
+ {0x12400, 0x1246E},
683
+ {0x12480, 0x12543},
684
+ {0x12F90, 0x12FF0},
685
+ {0x13000, 0x1342F},
686
+ {0x13441, 0x13446},
687
+ {0x13460, 0x143FA},
688
+ {0x14400, 0x14646},
689
+ {0x16100, 0x1612E},
690
+ {0x16130, 0x16139},
691
+ {0x16800, 0x16A38},
692
+ {0x16A40, 0x16A5E},
693
+ {0x16A60, 0x16A69},
694
+ {0x16A70, 0x16ABE},
695
+ {0x16AC0, 0x16AC9},
696
+ {0x16AD0, 0x16AED},
697
+ {0x16B00, 0x16B2F},
698
+ {0x16B40, 0x16B43},
699
+ {0x16B50, 0x16B59},
700
+ {0x16B5B, 0x16B61},
701
+ {0x16B63, 0x16B77},
702
+ {0x16B7D, 0x16B8F},
703
+ {0x16D40, 0x16D6C},
704
+ {0x16D70, 0x16D79},
705
+ {0x16E40, 0x16E96},
706
+ {0x16F00, 0x16F4A},
707
+ {0x16F4F, 0x16F87},
708
+ {0x16F8F, 0x16F9F},
709
+ {0x16FE0, 0x16FE1},
710
+ {0x16FE3, 0x16FE3},
711
+ {0x16FF0, 0x16FF1},
712
+ {0x17000, 0x187F7},
713
+ {0x18800, 0x18CD5},
714
+ {0x18CFF, 0x18D08},
715
+ {0x1AFF0, 0x1AFF3},
716
+ {0x1AFF5, 0x1AFFB},
717
+ {0x1AFFD, 0x1AFFE},
718
+ {0x1B000, 0x1B122},
719
+ {0x1B132, 0x1B132},
720
+ {0x1B150, 0x1B152},
721
+ {0x1B155, 0x1B155},
722
+ {0x1B164, 0x1B167},
723
+ {0x1B170, 0x1B2FB},
724
+ {0x1BC00, 0x1BC6A},
725
+ {0x1BC70, 0x1BC7C},
726
+ {0x1BC80, 0x1BC88},
727
+ {0x1BC90, 0x1BC99},
728
+ {0x1BC9E, 0x1BC9E},
729
+ {0x1CCF0, 0x1CCF9},
730
+ {0x1D2C0, 0x1D2D3},
731
+ {0x1D2E0, 0x1D2F3},
732
+ {0x1D360, 0x1D378},
733
+ {0x1D400, 0x1D454},
734
+ {0x1D456, 0x1D49C},
735
+ {0x1D49E, 0x1D49F},
736
+ {0x1D4A2, 0x1D4A2},
737
+ {0x1D4A5, 0x1D4A6},
738
+ {0x1D4A9, 0x1D4AC},
739
+ {0x1D4AE, 0x1D4B9},
740
+ {0x1D4BB, 0x1D4BB},
741
+ {0x1D4BD, 0x1D4C3},
742
+ {0x1D4C5, 0x1D505},
743
+ {0x1D507, 0x1D50A},
744
+ {0x1D50D, 0x1D514},
745
+ {0x1D516, 0x1D51C},
746
+ {0x1D51E, 0x1D539},
747
+ {0x1D53B, 0x1D53E},
748
+ {0x1D540, 0x1D544},
749
+ {0x1D546, 0x1D546},
750
+ {0x1D54A, 0x1D550},
751
+ {0x1D552, 0x1D6A5},
752
+ {0x1D6A8, 0x1D6C0},
753
+ {0x1D6C2, 0x1D6DA},
754
+ {0x1D6DC, 0x1D6FA},
755
+ {0x1D6FC, 0x1D714},
756
+ {0x1D716, 0x1D734},
757
+ {0x1D736, 0x1D74E},
758
+ {0x1D750, 0x1D76E},
759
+ {0x1D770, 0x1D788},
760
+ {0x1D78A, 0x1D7A8},
761
+ {0x1D7AA, 0x1D7C2},
762
+ {0x1D7C4, 0x1D7CB},
763
+ {0x1D7CE, 0x1D7FF},
764
+ {0x1DF00, 0x1DF1E},
765
+ {0x1DF25, 0x1DF2A},
766
+ {0x1E000, 0x1E006},
767
+ {0x1E008, 0x1E018},
768
+ {0x1E01B, 0x1E021},
769
+ {0x1E023, 0x1E024},
770
+ {0x1E026, 0x1E02A},
771
+ {0x1E030, 0x1E06D},
772
+ {0x1E08F, 0x1E08F},
773
+ {0x1E100, 0x1E12C},
774
+ {0x1E137, 0x1E13D},
775
+ {0x1E140, 0x1E149},
776
+ {0x1E14E, 0x1E14E},
777
+ {0x1E290, 0x1E2AD},
778
+ {0x1E2C0, 0x1E2EB},
779
+ {0x1E2F0, 0x1E2F9},
780
+ {0x1E4D0, 0x1E4EB},
781
+ {0x1E4F0, 0x1E4F9},
782
+ {0x1E5D0, 0x1E5ED},
783
+ {0x1E5F0, 0x1E5FA},
784
+ {0x1E7E0, 0x1E7E6},
785
+ {0x1E7E8, 0x1E7EB},
786
+ {0x1E7ED, 0x1E7EE},
787
+ {0x1E7F0, 0x1E7FE},
788
+ {0x1E800, 0x1E8C4},
789
+ {0x1E8C7, 0x1E8CF},
790
+ {0x1E900, 0x1E943},
791
+ {0x1E947, 0x1E947},
792
+ {0x1E94B, 0x1E94B},
793
+ {0x1E950, 0x1E959},
794
+ {0x1EC71, 0x1ECAB},
795
+ {0x1ECAD, 0x1ECAF},
796
+ {0x1ECB1, 0x1ECB4},
797
+ {0x1ED01, 0x1ED2D},
798
+ {0x1ED2F, 0x1ED3D},
799
+ {0x1EE00, 0x1EE03},
800
+ {0x1EE05, 0x1EE1F},
801
+ {0x1EE21, 0x1EE22},
802
+ {0x1EE24, 0x1EE24},
803
+ {0x1EE27, 0x1EE27},
804
+ {0x1EE29, 0x1EE32},
805
+ {0x1EE34, 0x1EE37},
806
+ {0x1EE39, 0x1EE39},
807
+ {0x1EE3B, 0x1EE3B},
808
+ {0x1EE42, 0x1EE42},
809
+ {0x1EE47, 0x1EE47},
810
+ {0x1EE49, 0x1EE49},
811
+ {0x1EE4B, 0x1EE4B},
812
+ {0x1EE4D, 0x1EE4F},
813
+ {0x1EE51, 0x1EE52},
814
+ {0x1EE54, 0x1EE54},
815
+ {0x1EE57, 0x1EE57},
816
+ {0x1EE59, 0x1EE59},
817
+ {0x1EE5B, 0x1EE5B},
818
+ {0x1EE5D, 0x1EE5D},
819
+ {0x1EE5F, 0x1EE5F},
820
+ {0x1EE61, 0x1EE62},
821
+ {0x1EE64, 0x1EE64},
822
+ {0x1EE67, 0x1EE6A},
823
+ {0x1EE6C, 0x1EE72},
824
+ {0x1EE74, 0x1EE77},
825
+ {0x1EE79, 0x1EE7C},
826
+ {0x1EE7E, 0x1EE7E},
827
+ {0x1EE80, 0x1EE89},
828
+ {0x1EE8B, 0x1EE9B},
829
+ {0x1EEA1, 0x1EEA3},
830
+ {0x1EEA5, 0x1EEA9},
831
+ {0x1EEAB, 0x1EEBB},
832
+ {0x1F100, 0x1F10C},
833
+ {0x1F130, 0x1F149},
834
+ {0x1F150, 0x1F169},
835
+ {0x1F170, 0x1F189},
836
+ {0x1FBF0, 0x1FBF9},
837
+ {0x20000, 0x2A6DF},
838
+ {0x2A700, 0x2B739},
839
+ {0x2B740, 0x2B81D},
840
+ {0x2B820, 0x2CEA1},
841
+ {0x2CEB0, 0x2EBE0},
842
+ {0x2EBF0, 0x2EE5D},
843
+ {0x2F800, 0x2FA1D},
844
+ {0x30000, 0x3134A},
845
+ {0x31350, 0x323AF},
846
+ };
847
+
848
+ static bool is_unicode_alphanumeric(int32_t c) {
849
+ if (c < 128) {
850
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') ||
851
+ (c >= '0' && c <= '9');
852
+ }
853
+ unsigned low = 0;
854
+ unsigned high = sizeof(alphanumeric_ranges) / sizeof(alphanumeric_ranges[0]);
855
+ while (low < high) {
856
+ unsigned mid = low + (high - low) / 2;
857
+ if ((uint32_t)c < alphanumeric_ranges[mid][0]) high = mid;
858
+ else if ((uint32_t)c > alphanumeric_ranges[mid][1]) low = mid + 1;
859
+ else return true;
860
+ }
861
+ return false;
862
+ }
863
+
864
+ #endif // LISPEX_UNICODE_H_