fatou 0.5.0

A language server, formatter, and linter for Julia
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
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
//! Single-codepoint Unicode operators and their precedence tiers.
//!
//! Generated from JuliaSyntax's operator-kind tables (julia_version=1.12.6 juliasyntax_version=0.4.10 ).
//! Every entry is a length-1 non-ASCII operator string from
//! `Tokenize._nondot_symbolic_operator_kinds()`, classified by the
//! `is_prec_*` predicate for its kind. The table is sorted by code point so
//! [`unicode_op_kind`] can binary-search it. Regenerate on a JuliaSyntax bump
//! (see the parser-parity skill); do not hand-edit.

use super::lexer::TokKind;

/// Maps a Unicode operator code point to the [`TokKind`] for its precedence
/// tier, or `None` when the char is not a Julia operator.
pub(super) fn unicode_op_kind(c: char) -> Option<TokKind> {
    UNICODE_OPS
        .binary_search_by(|&(k, _)| k.cmp(&c))
        .ok()
        .map(|i| UNICODE_OPS[i].1)
}

/// `(operator char, tier kind)`, sorted ascending by code point.
#[rustfmt::skip]
static UNICODE_OPS: &[(char, TokKind)] = &[
    ('\u{a6}', TokKind::UniPlus), // ¦
    ('\u{ac}', TokKind::UniRadical), // ¬
    ('\u{b1}', TokKind::UniPlus), // ±
    ('\u{d7}', TokKind::UniTimes), // ×
    ('\u{f7}', TokKind::UniTimes), // ÷
    ('\u{2026}', TokKind::UniColon), //    ('\u{205d}', TokKind::UniColon), //    ('\u{214b}', TokKind::UniTimes), //    ('\u{2190}', TokKind::UniArrow), //    ('\u{2191}', TokKind::UniPower), //    ('\u{2192}', TokKind::UniArrow), //    ('\u{2193}', TokKind::UniPower), //    ('\u{2194}', TokKind::UniArrow), //    ('\u{219a}', TokKind::UniArrow), //    ('\u{219b}', TokKind::UniArrow), //    ('\u{219c}', TokKind::UniArrow), //    ('\u{219d}', TokKind::UniArrow), //    ('\u{219e}', TokKind::UniArrow), //    ('\u{21a0}', TokKind::UniArrow), //    ('\u{21a2}', TokKind::UniArrow), //    ('\u{21a3}', TokKind::UniArrow), //    ('\u{21a4}', TokKind::UniArrow), //    ('\u{21a6}', TokKind::UniArrow), //    ('\u{21a9}', TokKind::UniArrow), //    ('\u{21aa}', TokKind::UniArrow), //    ('\u{21ab}', TokKind::UniArrow), //    ('\u{21ac}', TokKind::UniArrow), //    ('\u{21ae}', TokKind::UniArrow), //    ('\u{21b6}', TokKind::UniArrow), //    ('\u{21b7}', TokKind::UniArrow), //    ('\u{21ba}', TokKind::UniArrow), //    ('\u{21bb}', TokKind::UniArrow), //    ('\u{21bc}', TokKind::UniArrow), //    ('\u{21bd}', TokKind::UniArrow), //    ('\u{21c0}', TokKind::UniArrow), //    ('\u{21c1}', TokKind::UniArrow), //    ('\u{21c4}', TokKind::UniArrow), //    ('\u{21c6}', TokKind::UniArrow), //    ('\u{21c7}', TokKind::UniArrow), //    ('\u{21c9}', TokKind::UniArrow), //    ('\u{21cb}', TokKind::UniArrow), //    ('\u{21cc}', TokKind::UniArrow), //    ('\u{21cd}', TokKind::UniArrow), //    ('\u{21ce}', TokKind::UniArrow), //    ('\u{21cf}', TokKind::UniArrow), //    ('\u{21d0}', TokKind::UniArrow), //    ('\u{21d2}', TokKind::UniArrow), //    ('\u{21d4}', TokKind::UniArrow), //    ('\u{21da}', TokKind::UniArrow), //    ('\u{21db}', TokKind::UniArrow), //    ('\u{21dc}', TokKind::UniArrow), //    ('\u{21dd}', TokKind::UniArrow), //    ('\u{21e0}', TokKind::UniArrow), //    ('\u{21e2}', TokKind::UniArrow), //    ('\u{21f4}', TokKind::UniArrow), //    ('\u{21f5}', TokKind::UniPower), //    ('\u{21f6}', TokKind::UniArrow), //    ('\u{21f7}', TokKind::UniArrow), //    ('\u{21f8}', TokKind::UniArrow), //    ('\u{21f9}', TokKind::UniArrow), //    ('\u{21fa}', TokKind::UniArrow), //    ('\u{21fb}', TokKind::UniArrow), //    ('\u{21fc}', TokKind::UniArrow), //    ('\u{21fd}', TokKind::UniArrow), //    ('\u{21fe}', TokKind::UniArrow), //    ('\u{21ff}', TokKind::UniArrow), //    ('\u{2208}', TokKind::UniComparison), //    ('\u{2209}', TokKind::UniComparison), //    ('\u{220a}', TokKind::UniComparison), //    ('\u{220b}', TokKind::UniComparison), //    ('\u{220c}', TokKind::UniComparison), //    ('\u{220d}', TokKind::UniComparison), //    ('\u{2213}', TokKind::UniPlus), //    ('\u{2214}', TokKind::UniPlus), //    ('\u{2217}', TokKind::UniTimes), //    ('\u{2218}', TokKind::UniTimes), //    ('\u{2219}', TokKind::UniTimes), //    ('\u{221a}', TokKind::UniRadical), //    ('\u{221b}', TokKind::UniRadical), //    ('\u{221c}', TokKind::UniRadical), //    ('\u{221d}', TokKind::UniComparison), //    ('\u{2224}', TokKind::UniTimes), //    ('\u{2225}', TokKind::UniComparison), //    ('\u{2226}', TokKind::UniComparison), //    ('\u{2227}', TokKind::UniTimes), //    ('\u{2228}', TokKind::UniPlus), //    ('\u{2229}', TokKind::UniTimes), //    ('\u{222a}', TokKind::UniPlus), //    ('\u{2237}', TokKind::UniComparison), //    ('\u{2238}', TokKind::UniPlus), //    ('\u{223a}', TokKind::UniComparison), //    ('\u{223b}', TokKind::UniComparison), //    ('\u{223d}', TokKind::UniComparison), //    ('\u{223e}', TokKind::UniComparison), //    ('\u{2240}', TokKind::UniTimes), //    ('\u{2241}', TokKind::UniComparison), //    ('\u{2242}', TokKind::UniComparison), //    ('\u{2243}', TokKind::UniComparison), //    ('\u{2244}', TokKind::UniComparison), //    ('\u{2245}', TokKind::UniComparison), //    ('\u{2246}', TokKind::UniComparison), //    ('\u{2247}', TokKind::UniComparison), //    ('\u{2248}', TokKind::UniComparison), //    ('\u{2249}', TokKind::UniComparison), //    ('\u{224a}', TokKind::UniComparison), //    ('\u{224b}', TokKind::UniComparison), //    ('\u{224c}', TokKind::UniComparison), //    ('\u{224d}', TokKind::UniComparison), //    ('\u{224e}', TokKind::UniComparison), //    ('\u{224f}', TokKind::UniPlus), //    ('\u{2250}', TokKind::UniComparison), //    ('\u{2251}', TokKind::UniComparison), //    ('\u{2252}', TokKind::UniComparison), //    ('\u{2253}', TokKind::UniComparison), //    ('\u{2254}', TokKind::UniAssign), //    ('\u{2255}', TokKind::UniAssign), //    ('\u{2256}', TokKind::UniComparison), //    ('\u{2257}', TokKind::UniComparison), //    ('\u{2258}', TokKind::UniComparison), //    ('\u{2259}', TokKind::UniComparison), //    ('\u{225a}', TokKind::UniComparison), //    ('\u{225b}', TokKind::UniComparison), //    ('\u{225c}', TokKind::UniComparison), //    ('\u{225d}', TokKind::UniComparison), //    ('\u{225e}', TokKind::UniComparison), //    ('\u{225f}', TokKind::UniComparison), //    ('\u{2260}', TokKind::UniComparison), //    ('\u{2261}', TokKind::UniComparison), //    ('\u{2262}', TokKind::UniComparison), //    ('\u{2263}', TokKind::UniComparison), //    ('\u{2264}', TokKind::UniComparison), //    ('\u{2265}', TokKind::UniComparison), //    ('\u{2266}', TokKind::UniComparison), //    ('\u{2267}', TokKind::UniComparison), //    ('\u{2268}', TokKind::UniComparison), //    ('\u{2269}', TokKind::UniComparison), //    ('\u{226a}', TokKind::UniComparison), //    ('\u{226b}', TokKind::UniComparison), //    ('\u{226c}', TokKind::UniComparison), //    ('\u{226d}', TokKind::UniComparison), //    ('\u{226e}', TokKind::UniComparison), //    ('\u{226f}', TokKind::UniComparison), //    ('\u{2270}', TokKind::UniComparison), //    ('\u{2271}', TokKind::UniComparison), //    ('\u{2272}', TokKind::UniComparison), //    ('\u{2273}', TokKind::UniComparison), //    ('\u{2274}', TokKind::UniComparison), //    ('\u{2275}', TokKind::UniComparison), //    ('\u{2276}', TokKind::UniComparison), //    ('\u{2277}', TokKind::UniComparison), //    ('\u{2278}', TokKind::UniComparison), //    ('\u{2279}', TokKind::UniComparison), //    ('\u{227a}', TokKind::UniComparison), //    ('\u{227b}', TokKind::UniComparison), //    ('\u{227c}', TokKind::UniComparison), //    ('\u{227d}', TokKind::UniComparison), //    ('\u{227e}', TokKind::UniComparison), //    ('\u{227f}', TokKind::UniComparison), //    ('\u{2280}', TokKind::UniComparison), //    ('\u{2281}', TokKind::UniComparison), //    ('\u{2282}', TokKind::UniComparison), //    ('\u{2283}', TokKind::UniComparison), //    ('\u{2284}', TokKind::UniComparison), //    ('\u{2285}', TokKind::UniComparison), //    ('\u{2286}', TokKind::UniComparison), //    ('\u{2287}', TokKind::UniComparison), //    ('\u{2288}', TokKind::UniComparison), //    ('\u{2289}', TokKind::UniComparison), //    ('\u{228a}', TokKind::UniComparison), //    ('\u{228b}', TokKind::UniComparison), //    ('\u{228d}', TokKind::UniTimes), //    ('\u{228e}', TokKind::UniPlus), //    ('\u{228f}', TokKind::UniComparison), //    ('\u{2290}', TokKind::UniComparison), //    ('\u{2291}', TokKind::UniComparison), //    ('\u{2292}', TokKind::UniComparison), //    ('\u{2293}', TokKind::UniTimes), //    ('\u{2294}', TokKind::UniPlus), //    ('\u{2295}', TokKind::UniPlus), //    ('\u{2296}', TokKind::UniPlus), //    ('\u{2297}', TokKind::UniTimes), //    ('\u{2298}', TokKind::UniTimes), //    ('\u{2299}', TokKind::UniTimes), //    ('\u{229a}', TokKind::UniTimes), //    ('\u{229b}', TokKind::UniTimes), //    ('\u{229c}', TokKind::UniComparison), //    ('\u{229e}', TokKind::UniPlus), //    ('\u{229f}', TokKind::UniPlus), //    ('\u{22a0}', TokKind::UniTimes), //    ('\u{22a1}', TokKind::UniTimes), //    ('\u{22a2}', TokKind::UniComparison), //    ('\u{22a3}', TokKind::UniComparison), //    ('\u{22a9}', TokKind::UniComparison), //    ('\u{22ac}', TokKind::UniComparison), //    ('\u{22ae}', TokKind::UniComparison), //    ('\u{22b0}', TokKind::UniComparison), //    ('\u{22b1}', TokKind::UniComparison), //    ('\u{22b2}', TokKind::UniComparison), //    ('\u{22b3}', TokKind::UniComparison), //    ('\u{22b4}', TokKind::UniComparison), //    ('\u{22b5}', TokKind::UniComparison), //    ('\u{22b6}', TokKind::UniComparison), //    ('\u{22b7}', TokKind::UniComparison), //    ('\u{22bb}', TokKind::UniPlus), //    ('\u{22bc}', TokKind::UniTimes), //    ('\u{22bd}', TokKind::UniPlus), //    ('\u{22c4}', TokKind::UniTimes), //    ('\u{22c5}', TokKind::UniTimes), //    ('\u{22c6}', TokKind::UniTimes), //    ('\u{22c7}', TokKind::UniTimes), //    ('\u{22c9}', TokKind::UniTimes), //    ('\u{22ca}', TokKind::UniTimes), //    ('\u{22cb}', TokKind::UniTimes), //    ('\u{22cc}', TokKind::UniTimes), //    ('\u{22cd}', TokKind::UniComparison), //    ('\u{22ce}', TokKind::UniPlus), //    ('\u{22cf}', TokKind::UniTimes), //    ('\u{22d0}', TokKind::UniComparison), //    ('\u{22d1}', TokKind::UniComparison), //    ('\u{22d2}', TokKind::UniTimes), //    ('\u{22d3}', TokKind::UniPlus), //    ('\u{22d5}', TokKind::UniComparison), //    ('\u{22d6}', TokKind::UniComparison), //    ('\u{22d7}', TokKind::UniComparison), //    ('\u{22d8}', TokKind::UniComparison), //    ('\u{22d9}', TokKind::UniComparison), //    ('\u{22da}', TokKind::UniComparison), //    ('\u{22db}', TokKind::UniComparison), //    ('\u{22dc}', TokKind::UniComparison), //    ('\u{22dd}', TokKind::UniComparison), //    ('\u{22de}', TokKind::UniComparison), //    ('\u{22df}', TokKind::UniComparison), //    ('\u{22e0}', TokKind::UniComparison), //    ('\u{22e1}', TokKind::UniComparison), //    ('\u{22e2}', TokKind::UniComparison), //    ('\u{22e3}', TokKind::UniComparison), //    ('\u{22e4}', TokKind::UniComparison), //    ('\u{22e5}', TokKind::UniComparison), //    ('\u{22e6}', TokKind::UniComparison), //    ('\u{22e7}', TokKind::UniComparison), //    ('\u{22e8}', TokKind::UniComparison), //    ('\u{22e9}', TokKind::UniComparison), //    ('\u{22ea}', TokKind::UniComparison), //    ('\u{22eb}', TokKind::UniComparison), //    ('\u{22ec}', TokKind::UniComparison), //    ('\u{22ed}', TokKind::UniComparison), //    ('\u{22ee}', TokKind::UniColon), //    ('\u{22ef}', TokKind::UniColon), //    ('\u{22f0}', TokKind::UniColon), //    ('\u{22f1}', TokKind::UniColon), //    ('\u{22f2}', TokKind::UniComparison), //    ('\u{22f3}', TokKind::UniComparison), //    ('\u{22f4}', TokKind::UniComparison), //    ('\u{22f5}', TokKind::UniComparison), //    ('\u{22f6}', TokKind::UniComparison), //    ('\u{22f7}', TokKind::UniComparison), //    ('\u{22f8}', TokKind::UniComparison), //    ('\u{22f9}', TokKind::UniComparison), //    ('\u{22fa}', TokKind::UniComparison), //    ('\u{22fb}', TokKind::UniComparison), //    ('\u{22fc}', TokKind::UniComparison), //    ('\u{22fd}', TokKind::UniComparison), //    ('\u{22fe}', TokKind::UniComparison), //    ('\u{22ff}', TokKind::UniComparison), //    ('\u{233f}', TokKind::UniTimes), //    ('\u{25b7}', TokKind::UniTimes), //    ('\u{27c2}', TokKind::UniComparison), //    ('\u{27c7}', TokKind::UniPlus), //    ('\u{27c8}', TokKind::UniComparison), //    ('\u{27c9}', TokKind::UniComparison), //    ('\u{27d1}', TokKind::UniTimes), //    ('\u{27d2}', TokKind::UniComparison), //    ('\u{27d5}', TokKind::UniTimes), //    ('\u{27d6}', TokKind::UniTimes), //    ('\u{27d7}', TokKind::UniTimes), //    ('\u{27f0}', TokKind::UniPower), //    ('\u{27f1}', TokKind::UniPower), //    ('\u{27f5}', TokKind::UniArrow), //    ('\u{27f6}', TokKind::UniArrow), //    ('\u{27f7}', TokKind::UniArrow), //    ('\u{27f9}', TokKind::UniArrow), //    ('\u{27fa}', TokKind::UniArrow), //    ('\u{27fb}', TokKind::UniArrow), //    ('\u{27fc}', TokKind::UniArrow), //    ('\u{27fd}', TokKind::UniArrow), //    ('\u{27fe}', TokKind::UniArrow), //    ('\u{27ff}', TokKind::UniArrow), //    ('\u{2900}', TokKind::UniArrow), //    ('\u{2901}', TokKind::UniArrow), //    ('\u{2902}', TokKind::UniArrow), //    ('\u{2903}', TokKind::UniArrow), //    ('\u{2904}', TokKind::UniArrow), //    ('\u{2905}', TokKind::UniArrow), //    ('\u{2906}', TokKind::UniArrow), //    ('\u{2907}', TokKind::UniArrow), //    ('\u{2908}', TokKind::UniPower), //    ('\u{2909}', TokKind::UniPower), //    ('\u{290a}', TokKind::UniPower), //    ('\u{290b}', TokKind::UniPower), //    ('\u{290c}', TokKind::UniArrow), //    ('\u{290d}', TokKind::UniArrow), //    ('\u{290e}', TokKind::UniArrow), //    ('\u{290f}', TokKind::UniArrow), //    ('\u{2910}', TokKind::UniArrow), //    ('\u{2911}', TokKind::UniArrow), //    ('\u{2912}', TokKind::UniPower), //    ('\u{2913}', TokKind::UniPower), //    ('\u{2914}', TokKind::UniArrow), //    ('\u{2915}', TokKind::UniArrow), //    ('\u{2916}', TokKind::UniArrow), //    ('\u{2917}', TokKind::UniArrow), //    ('\u{2918}', TokKind::UniArrow), //    ('\u{291d}', TokKind::UniArrow), //    ('\u{291e}', TokKind::UniArrow), //    ('\u{291f}', TokKind::UniArrow), //    ('\u{2920}', TokKind::UniArrow), //    ('\u{2944}', TokKind::UniArrow), //    ('\u{2945}', TokKind::UniArrow), //    ('\u{2946}', TokKind::UniArrow), //    ('\u{2947}', TokKind::UniArrow), //    ('\u{2948}', TokKind::UniArrow), //    ('\u{2949}', TokKind::UniPower), //    ('\u{294a}', TokKind::UniArrow), //    ('\u{294b}', TokKind::UniArrow), //    ('\u{294c}', TokKind::UniPower), //    ('\u{294d}', TokKind::UniPower), //    ('\u{294e}', TokKind::UniArrow), //    ('\u{294f}', TokKind::UniPower), //    ('\u{2950}', TokKind::UniArrow), //    ('\u{2951}', TokKind::UniPower), //    ('\u{2952}', TokKind::UniArrow), //    ('\u{2953}', TokKind::UniArrow), //    ('\u{2954}', TokKind::UniPower), //    ('\u{2955}', TokKind::UniPower), //    ('\u{2956}', TokKind::UniArrow), //    ('\u{2957}', TokKind::UniArrow), //    ('\u{2958}', TokKind::UniPower), //    ('\u{2959}', TokKind::UniPower), //    ('\u{295a}', TokKind::UniArrow), //    ('\u{295b}', TokKind::UniArrow), //    ('\u{295c}', TokKind::UniPower), //    ('\u{295d}', TokKind::UniPower), //    ('\u{295e}', TokKind::UniArrow), //    ('\u{295f}', TokKind::UniArrow), //    ('\u{2960}', TokKind::UniPower), //    ('\u{2961}', TokKind::UniPower), //    ('\u{2962}', TokKind::UniArrow), //    ('\u{2963}', TokKind::UniPower), //    ('\u{2964}', TokKind::UniArrow), //    ('\u{2965}', TokKind::UniPower), //    ('\u{2966}', TokKind::UniArrow), //    ('\u{2967}', TokKind::UniArrow), //    ('\u{2968}', TokKind::UniArrow), //    ('\u{2969}', TokKind::UniArrow), //    ('\u{296a}', TokKind::UniArrow), //    ('\u{296b}', TokKind::UniArrow), //    ('\u{296c}', TokKind::UniArrow), //    ('\u{296d}', TokKind::UniArrow), //    ('\u{296e}', TokKind::UniPower), //    ('\u{296f}', TokKind::UniPower), //    ('\u{2970}', TokKind::UniArrow), //    ('\u{2977}', TokKind::UniArrow), //    ('\u{297a}', TokKind::UniArrow), //    ('\u{29b7}', TokKind::UniComparison), //    ('\u{29b8}', TokKind::UniTimes), //    ('\u{29bc}', TokKind::UniTimes), //    ('\u{29be}', TokKind::UniTimes), //    ('\u{29bf}', TokKind::UniTimes), // ⦿
    ('\u{29c0}', TokKind::UniComparison), //    ('\u{29c1}', TokKind::UniComparison), //    ('\u{29e1}', TokKind::UniComparison), //    ('\u{29e3}', TokKind::UniComparison), //    ('\u{29e4}', TokKind::UniComparison), //    ('\u{29e5}', TokKind::UniComparison), //    ('\u{29f4}', TokKind::UniArrow), //    ('\u{29f6}', TokKind::UniTimes), //    ('\u{29f7}', TokKind::UniTimes), //    ('\u{29fa}', TokKind::UniPlus), //    ('\u{29fb}', TokKind::UniPlus), //    ('\u{2a07}', TokKind::UniTimes), //    ('\u{2a08}', TokKind::UniPlus), //    ('\u{2a1d}', TokKind::UniTimes), //    ('\u{2a1f}', TokKind::UniTimes), //    ('\u{2a22}', TokKind::UniPlus), //    ('\u{2a23}', TokKind::UniPlus), //    ('\u{2a24}', TokKind::UniPlus), //    ('\u{2a25}', TokKind::UniPlus), //    ('\u{2a26}', TokKind::UniPlus), //    ('\u{2a27}', TokKind::UniPlus), //    ('\u{2a28}', TokKind::UniPlus), //    ('\u{2a29}', TokKind::UniPlus), //    ('\u{2a2a}', TokKind::UniPlus), //    ('\u{2a2b}', TokKind::UniPlus), //    ('\u{2a2c}', TokKind::UniPlus), //    ('\u{2a2d}', TokKind::UniPlus), //    ('\u{2a2e}', TokKind::UniPlus), //    ('\u{2a30}', TokKind::UniTimes), //    ('\u{2a31}', TokKind::UniTimes), //    ('\u{2a32}', TokKind::UniTimes), //    ('\u{2a33}', TokKind::UniTimes), //    ('\u{2a34}', TokKind::UniTimes), //    ('\u{2a35}', TokKind::UniTimes), //    ('\u{2a36}', TokKind::UniTimes), //    ('\u{2a37}', TokKind::UniTimes), //    ('\u{2a38}', TokKind::UniTimes), //    ('\u{2a39}', TokKind::UniPlus), //    ('\u{2a3a}', TokKind::UniPlus), //    ('\u{2a3b}', TokKind::UniTimes), //    ('\u{2a3c}', TokKind::UniTimes), //    ('\u{2a3d}', TokKind::UniTimes), //    ('\u{2a40}', TokKind::UniTimes), //    ('\u{2a41}', TokKind::UniPlus), //    ('\u{2a42}', TokKind::UniPlus), //    ('\u{2a43}', TokKind::UniTimes), //    ('\u{2a44}', TokKind::UniTimes), //    ('\u{2a45}', TokKind::UniPlus), //    ('\u{2a4a}', TokKind::UniPlus), //    ('\u{2a4b}', TokKind::UniTimes), //    ('\u{2a4c}', TokKind::UniPlus), //    ('\u{2a4d}', TokKind::UniTimes), //    ('\u{2a4e}', TokKind::UniTimes), //    ('\u{2a4f}', TokKind::UniPlus), //    ('\u{2a50}', TokKind::UniPlus), //    ('\u{2a51}', TokKind::UniTimes), //    ('\u{2a52}', TokKind::UniPlus), //    ('\u{2a53}', TokKind::UniTimes), //    ('\u{2a54}', TokKind::UniPlus), //    ('\u{2a55}', TokKind::UniTimes), //    ('\u{2a56}', TokKind::UniPlus), //    ('\u{2a57}', TokKind::UniPlus), //    ('\u{2a58}', TokKind::UniTimes), //    ('\u{2a5a}', TokKind::UniTimes), //    ('\u{2a5b}', TokKind::UniPlus), //    ('\u{2a5c}', TokKind::UniTimes), //    ('\u{2a5d}', TokKind::UniPlus), //    ('\u{2a5e}', TokKind::UniTimes), //    ('\u{2a5f}', TokKind::UniTimes), //    ('\u{2a60}', TokKind::UniTimes), //    ('\u{2a61}', TokKind::UniPlus), //    ('\u{2a62}', TokKind::UniPlus), //    ('\u{2a63}', TokKind::UniPlus), //    ('\u{2a66}', TokKind::UniComparison), //    ('\u{2a67}', TokKind::UniComparison), //    ('\u{2a6a}', TokKind::UniComparison), //    ('\u{2a6b}', TokKind::UniComparison), //    ('\u{2a6c}', TokKind::UniComparison), //    ('\u{2a6d}', TokKind::UniComparison), //    ('\u{2a6e}', TokKind::UniComparison), //    ('\u{2a6f}', TokKind::UniComparison), //    ('\u{2a70}', TokKind::UniComparison), //    ('\u{2a71}', TokKind::UniComparison), //    ('\u{2a72}', TokKind::UniComparison), //    ('\u{2a73}', TokKind::UniComparison), //    ('\u{2a74}', TokKind::UniAssign), //    ('\u{2a75}', TokKind::UniComparison), //    ('\u{2a76}', TokKind::UniComparison), //    ('\u{2a77}', TokKind::UniComparison), //    ('\u{2a78}', TokKind::UniComparison), //    ('\u{2a79}', TokKind::UniComparison), //    ('\u{2a7a}', TokKind::UniComparison), //    ('\u{2a7b}', TokKind::UniComparison), //    ('\u{2a7c}', TokKind::UniComparison), //    ('\u{2a7d}', TokKind::UniComparison), //    ('\u{2a7e}', TokKind::UniComparison), //    ('\u{2a7f}', TokKind::UniComparison), // ⩿
    ('\u{2a80}', TokKind::UniComparison), //    ('\u{2a81}', TokKind::UniComparison), //    ('\u{2a82}', TokKind::UniComparison), //    ('\u{2a83}', TokKind::UniComparison), //    ('\u{2a84}', TokKind::UniComparison), //    ('\u{2a85}', TokKind::UniComparison), //    ('\u{2a86}', TokKind::UniComparison), //    ('\u{2a87}', TokKind::UniComparison), //    ('\u{2a88}', TokKind::UniComparison), //    ('\u{2a89}', TokKind::UniComparison), //    ('\u{2a8a}', TokKind::UniComparison), //    ('\u{2a8b}', TokKind::UniComparison), //    ('\u{2a8c}', TokKind::UniComparison), //    ('\u{2a8d}', TokKind::UniComparison), //    ('\u{2a8e}', TokKind::UniComparison), //    ('\u{2a8f}', TokKind::UniComparison), //    ('\u{2a90}', TokKind::UniComparison), //    ('\u{2a91}', TokKind::UniComparison), //    ('\u{2a92}', TokKind::UniComparison), //    ('\u{2a93}', TokKind::UniComparison), //    ('\u{2a94}', TokKind::UniComparison), //    ('\u{2a95}', TokKind::UniComparison), //    ('\u{2a96}', TokKind::UniComparison), //    ('\u{2a97}', TokKind::UniComparison), //    ('\u{2a98}', TokKind::UniComparison), //    ('\u{2a99}', TokKind::UniComparison), //    ('\u{2a9a}', TokKind::UniComparison), //    ('\u{2a9b}', TokKind::UniComparison), //    ('\u{2a9c}', TokKind::UniComparison), //    ('\u{2a9d}', TokKind::UniComparison), //    ('\u{2a9e}', TokKind::UniComparison), //    ('\u{2a9f}', TokKind::UniComparison), //    ('\u{2aa0}', TokKind::UniComparison), //    ('\u{2aa1}', TokKind::UniComparison), //    ('\u{2aa2}', TokKind::UniComparison), //    ('\u{2aa3}', TokKind::UniComparison), //    ('\u{2aa4}', TokKind::UniComparison), //    ('\u{2aa5}', TokKind::UniComparison), //    ('\u{2aa6}', TokKind::UniComparison), //    ('\u{2aa7}', TokKind::UniComparison), //    ('\u{2aa8}', TokKind::UniComparison), //    ('\u{2aa9}', TokKind::UniComparison), //    ('\u{2aaa}', TokKind::UniComparison), //    ('\u{2aab}', TokKind::UniComparison), //    ('\u{2aac}', TokKind::UniComparison), //    ('\u{2aad}', TokKind::UniComparison), //    ('\u{2aae}', TokKind::UniComparison), //    ('\u{2aaf}', TokKind::UniComparison), //    ('\u{2ab0}', TokKind::UniComparison), //    ('\u{2ab1}', TokKind::UniComparison), //    ('\u{2ab2}', TokKind::UniComparison), //    ('\u{2ab3}', TokKind::UniComparison), //    ('\u{2ab4}', TokKind::UniComparison), //    ('\u{2ab5}', TokKind::UniComparison), //    ('\u{2ab6}', TokKind::UniComparison), //    ('\u{2ab7}', TokKind::UniComparison), //    ('\u{2ab8}', TokKind::UniComparison), //    ('\u{2ab9}', TokKind::UniComparison), //    ('\u{2aba}', TokKind::UniComparison), //    ('\u{2abb}', TokKind::UniComparison), //    ('\u{2abc}', TokKind::UniComparison), //    ('\u{2abd}', TokKind::UniComparison), //    ('\u{2abe}', TokKind::UniComparison), //    ('\u{2abf}', TokKind::UniComparison), // ⪿
    ('\u{2ac0}', TokKind::UniComparison), //    ('\u{2ac1}', TokKind::UniComparison), //    ('\u{2ac2}', TokKind::UniComparison), //    ('\u{2ac3}', TokKind::UniComparison), //    ('\u{2ac4}', TokKind::UniComparison), //    ('\u{2ac5}', TokKind::UniComparison), //    ('\u{2ac6}', TokKind::UniComparison), //    ('\u{2ac7}', TokKind::UniComparison), //    ('\u{2ac8}', TokKind::UniComparison), //    ('\u{2ac9}', TokKind::UniComparison), //    ('\u{2aca}', TokKind::UniComparison), //    ('\u{2acb}', TokKind::UniComparison), //    ('\u{2acc}', TokKind::UniComparison), //    ('\u{2acd}', TokKind::UniComparison), //    ('\u{2ace}', TokKind::UniComparison), //    ('\u{2acf}', TokKind::UniComparison), //    ('\u{2ad0}', TokKind::UniComparison), //    ('\u{2ad1}', TokKind::UniComparison), //    ('\u{2ad2}', TokKind::UniComparison), //    ('\u{2ad3}', TokKind::UniComparison), //    ('\u{2ad4}', TokKind::UniComparison), //    ('\u{2ad5}', TokKind::UniComparison), //    ('\u{2ad6}', TokKind::UniComparison), //    ('\u{2ad7}', TokKind::UniComparison), //    ('\u{2ad8}', TokKind::UniComparison), //    ('\u{2ad9}', TokKind::UniComparison), //    ('\u{2adb}', TokKind::UniTimes), //    ('\u{2aea}', TokKind::UniComparison), //    ('\u{2aeb}', TokKind::UniComparison), //    ('\u{2af7}', TokKind::UniComparison), //    ('\u{2af8}', TokKind::UniComparison), //    ('\u{2af9}', TokKind::UniComparison), //    ('\u{2afa}', TokKind::UniComparison), //    ('\u{2b30}', TokKind::UniArrow), //    ('\u{2b31}', TokKind::UniArrow), //    ('\u{2b32}', TokKind::UniArrow), //    ('\u{2b33}', TokKind::UniArrow), //    ('\u{2b34}', TokKind::UniArrow), //    ('\u{2b35}', TokKind::UniArrow), //    ('\u{2b36}', TokKind::UniArrow), //    ('\u{2b37}', TokKind::UniArrow), //    ('\u{2b38}', TokKind::UniArrow), //    ('\u{2b39}', TokKind::UniArrow), //    ('\u{2b3a}', TokKind::UniArrow), //    ('\u{2b3b}', TokKind::UniArrow), //    ('\u{2b3c}', TokKind::UniArrow), //    ('\u{2b3d}', TokKind::UniArrow), //    ('\u{2b3e}', TokKind::UniArrow), //    ('\u{2b3f}', TokKind::UniArrow), // ⬿
    ('\u{2b40}', TokKind::UniArrow), //    ('\u{2b41}', TokKind::UniArrow), //    ('\u{2b42}', TokKind::UniArrow), //    ('\u{2b43}', TokKind::UniArrow), //    ('\u{2b44}', TokKind::UniArrow), //    ('\u{2b47}', TokKind::UniArrow), //    ('\u{2b48}', TokKind::UniArrow), //    ('\u{2b49}', TokKind::UniArrow), //    ('\u{2b4a}', TokKind::UniArrow), //    ('\u{2b4b}', TokKind::UniArrow), //    ('\u{2b4c}', TokKind::UniArrow), //    ('\u{ffe9}', TokKind::UniArrow), //    ('\u{ffea}', TokKind::UniPower), //    ('\u{ffeb}', TokKind::UniArrow), //    ('\u{ffec}', TokKind::UniPower), //];