1//===--- UnicodeCharSets.h - Contains important sets of characters --------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8#ifndef LLVM_CLANG_LIB_LEX_UNICODECHARSETS_H
9#define LLVM_CLANG_LIB_LEX_UNICODECHARSETS_H
10
11#include "llvm/Support/UnicodeCharRanges.h"
12
13// Unicode 15.1 XID_Start
14static const llvm::sys::UnicodeCharRange XIDStartRanges[] = {
15 {.Lower: 0x0041, .Upper: 0x005A}, {.Lower: 0x0061, .Upper: 0x007A}, {.Lower: 0x00AA, .Upper: 0x00AA},
16 {.Lower: 0x00B5, .Upper: 0x00B5}, {.Lower: 0x00BA, .Upper: 0x00BA}, {.Lower: 0x00C0, .Upper: 0x00D6},
17 {.Lower: 0x00D8, .Upper: 0x00F6}, {.Lower: 0x00F8, .Upper: 0x02C1}, {.Lower: 0x02C6, .Upper: 0x02D1},
18 {.Lower: 0x02E0, .Upper: 0x02E4}, {.Lower: 0x02EC, .Upper: 0x02EC}, {.Lower: 0x02EE, .Upper: 0x02EE},
19 {.Lower: 0x0370, .Upper: 0x0374}, {.Lower: 0x0376, .Upper: 0x0377}, {.Lower: 0x037B, .Upper: 0x037D},
20 {.Lower: 0x037F, .Upper: 0x037F}, {.Lower: 0x0386, .Upper: 0x0386}, {.Lower: 0x0388, .Upper: 0x038A},
21 {.Lower: 0x038C, .Upper: 0x038C}, {.Lower: 0x038E, .Upper: 0x03A1}, {.Lower: 0x03A3, .Upper: 0x03F5},
22 {.Lower: 0x03F7, .Upper: 0x0481}, {.Lower: 0x048A, .Upper: 0x052F}, {.Lower: 0x0531, .Upper: 0x0556},
23 {.Lower: 0x0559, .Upper: 0x0559}, {.Lower: 0x0560, .Upper: 0x0588}, {.Lower: 0x05D0, .Upper: 0x05EA},
24 {.Lower: 0x05EF, .Upper: 0x05F2}, {.Lower: 0x0620, .Upper: 0x064A}, {.Lower: 0x066E, .Upper: 0x066F},
25 {.Lower: 0x0671, .Upper: 0x06D3}, {.Lower: 0x06D5, .Upper: 0x06D5}, {.Lower: 0x06E5, .Upper: 0x06E6},
26 {.Lower: 0x06EE, .Upper: 0x06EF}, {.Lower: 0x06FA, .Upper: 0x06FC}, {.Lower: 0x06FF, .Upper: 0x06FF},
27 {.Lower: 0x0710, .Upper: 0x0710}, {.Lower: 0x0712, .Upper: 0x072F}, {.Lower: 0x074D, .Upper: 0x07A5},
28 {.Lower: 0x07B1, .Upper: 0x07B1}, {.Lower: 0x07CA, .Upper: 0x07EA}, {.Lower: 0x07F4, .Upper: 0x07F5},
29 {.Lower: 0x07FA, .Upper: 0x07FA}, {.Lower: 0x0800, .Upper: 0x0815}, {.Lower: 0x081A, .Upper: 0x081A},
30 {.Lower: 0x0824, .Upper: 0x0824}, {.Lower: 0x0828, .Upper: 0x0828}, {.Lower: 0x0840, .Upper: 0x0858},
31 {.Lower: 0x0860, .Upper: 0x086A}, {.Lower: 0x0870, .Upper: 0x0887}, {.Lower: 0x0889, .Upper: 0x088E},
32 {.Lower: 0x08A0, .Upper: 0x08C9}, {.Lower: 0x0904, .Upper: 0x0939}, {.Lower: 0x093D, .Upper: 0x093D},
33 {.Lower: 0x0950, .Upper: 0x0950}, {.Lower: 0x0958, .Upper: 0x0961}, {.Lower: 0x0971, .Upper: 0x0980},
34 {.Lower: 0x0985, .Upper: 0x098C}, {.Lower: 0x098F, .Upper: 0x0990}, {.Lower: 0x0993, .Upper: 0x09A8},
35 {.Lower: 0x09AA, .Upper: 0x09B0}, {.Lower: 0x09B2, .Upper: 0x09B2}, {.Lower: 0x09B6, .Upper: 0x09B9},
36 {.Lower: 0x09BD, .Upper: 0x09BD}, {.Lower: 0x09CE, .Upper: 0x09CE}, {.Lower: 0x09DC, .Upper: 0x09DD},
37 {.Lower: 0x09DF, .Upper: 0x09E1}, {.Lower: 0x09F0, .Upper: 0x09F1}, {.Lower: 0x09FC, .Upper: 0x09FC},
38 {.Lower: 0x0A05, .Upper: 0x0A0A}, {.Lower: 0x0A0F, .Upper: 0x0A10}, {.Lower: 0x0A13, .Upper: 0x0A28},
39 {.Lower: 0x0A2A, .Upper: 0x0A30}, {.Lower: 0x0A32, .Upper: 0x0A33}, {.Lower: 0x0A35, .Upper: 0x0A36},
40 {.Lower: 0x0A38, .Upper: 0x0A39}, {.Lower: 0x0A59, .Upper: 0x0A5C}, {.Lower: 0x0A5E, .Upper: 0x0A5E},
41 {.Lower: 0x0A72, .Upper: 0x0A74}, {.Lower: 0x0A85, .Upper: 0x0A8D}, {.Lower: 0x0A8F, .Upper: 0x0A91},
42 {.Lower: 0x0A93, .Upper: 0x0AA8}, {.Lower: 0x0AAA, .Upper: 0x0AB0}, {.Lower: 0x0AB2, .Upper: 0x0AB3},
43 {.Lower: 0x0AB5, .Upper: 0x0AB9}, {.Lower: 0x0ABD, .Upper: 0x0ABD}, {.Lower: 0x0AD0, .Upper: 0x0AD0},
44 {.Lower: 0x0AE0, .Upper: 0x0AE1}, {.Lower: 0x0AF9, .Upper: 0x0AF9}, {.Lower: 0x0B05, .Upper: 0x0B0C},
45 {.Lower: 0x0B0F, .Upper: 0x0B10}, {.Lower: 0x0B13, .Upper: 0x0B28}, {.Lower: 0x0B2A, .Upper: 0x0B30},
46 {.Lower: 0x0B32, .Upper: 0x0B33}, {.Lower: 0x0B35, .Upper: 0x0B39}, {.Lower: 0x0B3D, .Upper: 0x0B3D},
47 {.Lower: 0x0B5C, .Upper: 0x0B5D}, {.Lower: 0x0B5F, .Upper: 0x0B61}, {.Lower: 0x0B71, .Upper: 0x0B71},
48 {.Lower: 0x0B83, .Upper: 0x0B83}, {.Lower: 0x0B85, .Upper: 0x0B8A}, {.Lower: 0x0B8E, .Upper: 0x0B90},
49 {.Lower: 0x0B92, .Upper: 0x0B95}, {.Lower: 0x0B99, .Upper: 0x0B9A}, {.Lower: 0x0B9C, .Upper: 0x0B9C},
50 {.Lower: 0x0B9E, .Upper: 0x0B9F}, {.Lower: 0x0BA3, .Upper: 0x0BA4}, {.Lower: 0x0BA8, .Upper: 0x0BAA},
51 {.Lower: 0x0BAE, .Upper: 0x0BB9}, {.Lower: 0x0BD0, .Upper: 0x0BD0}, {.Lower: 0x0C05, .Upper: 0x0C0C},
52 {.Lower: 0x0C0E, .Upper: 0x0C10}, {.Lower: 0x0C12, .Upper: 0x0C28}, {.Lower: 0x0C2A, .Upper: 0x0C39},
53 {.Lower: 0x0C3D, .Upper: 0x0C3D}, {.Lower: 0x0C58, .Upper: 0x0C5A}, {.Lower: 0x0C5D, .Upper: 0x0C5D},
54 {.Lower: 0x0C60, .Upper: 0x0C61}, {.Lower: 0x0C80, .Upper: 0x0C80}, {.Lower: 0x0C85, .Upper: 0x0C8C},
55 {.Lower: 0x0C8E, .Upper: 0x0C90}, {.Lower: 0x0C92, .Upper: 0x0CA8}, {.Lower: 0x0CAA, .Upper: 0x0CB3},
56 {.Lower: 0x0CB5, .Upper: 0x0CB9}, {.Lower: 0x0CBD, .Upper: 0x0CBD}, {.Lower: 0x0CDD, .Upper: 0x0CDE},
57 {.Lower: 0x0CE0, .Upper: 0x0CE1}, {.Lower: 0x0CF1, .Upper: 0x0CF2}, {.Lower: 0x0D04, .Upper: 0x0D0C},
58 {.Lower: 0x0D0E, .Upper: 0x0D10}, {.Lower: 0x0D12, .Upper: 0x0D3A}, {.Lower: 0x0D3D, .Upper: 0x0D3D},
59 {.Lower: 0x0D4E, .Upper: 0x0D4E}, {.Lower: 0x0D54, .Upper: 0x0D56}, {.Lower: 0x0D5F, .Upper: 0x0D61},
60 {.Lower: 0x0D7A, .Upper: 0x0D7F}, {.Lower: 0x0D85, .Upper: 0x0D96}, {.Lower: 0x0D9A, .Upper: 0x0DB1},
61 {.Lower: 0x0DB3, .Upper: 0x0DBB}, {.Lower: 0x0DBD, .Upper: 0x0DBD}, {.Lower: 0x0DC0, .Upper: 0x0DC6},
62 {.Lower: 0x0E01, .Upper: 0x0E30}, {.Lower: 0x0E32, .Upper: 0x0E32}, {.Lower: 0x0E40, .Upper: 0x0E46},
63 {.Lower: 0x0E81, .Upper: 0x0E82}, {.Lower: 0x0E84, .Upper: 0x0E84}, {.Lower: 0x0E86, .Upper: 0x0E8A},
64 {.Lower: 0x0E8C, .Upper: 0x0EA3}, {.Lower: 0x0EA5, .Upper: 0x0EA5}, {.Lower: 0x0EA7, .Upper: 0x0EB0},
65 {.Lower: 0x0EB2, .Upper: 0x0EB2}, {.Lower: 0x0EBD, .Upper: 0x0EBD}, {.Lower: 0x0EC0, .Upper: 0x0EC4},
66 {.Lower: 0x0EC6, .Upper: 0x0EC6}, {.Lower: 0x0EDC, .Upper: 0x0EDF}, {.Lower: 0x0F00, .Upper: 0x0F00},
67 {.Lower: 0x0F40, .Upper: 0x0F47}, {.Lower: 0x0F49, .Upper: 0x0F6C}, {.Lower: 0x0F88, .Upper: 0x0F8C},
68 {.Lower: 0x1000, .Upper: 0x102A}, {.Lower: 0x103F, .Upper: 0x103F}, {.Lower: 0x1050, .Upper: 0x1055},
69 {.Lower: 0x105A, .Upper: 0x105D}, {.Lower: 0x1061, .Upper: 0x1061}, {.Lower: 0x1065, .Upper: 0x1066},
70 {.Lower: 0x106E, .Upper: 0x1070}, {.Lower: 0x1075, .Upper: 0x1081}, {.Lower: 0x108E, .Upper: 0x108E},
71 {.Lower: 0x10A0, .Upper: 0x10C5}, {.Lower: 0x10C7, .Upper: 0x10C7}, {.Lower: 0x10CD, .Upper: 0x10CD},
72 {.Lower: 0x10D0, .Upper: 0x10FA}, {.Lower: 0x10FC, .Upper: 0x1248}, {.Lower: 0x124A, .Upper: 0x124D},
73 {.Lower: 0x1250, .Upper: 0x1256}, {.Lower: 0x1258, .Upper: 0x1258}, {.Lower: 0x125A, .Upper: 0x125D},
74 {.Lower: 0x1260, .Upper: 0x1288}, {.Lower: 0x128A, .Upper: 0x128D}, {.Lower: 0x1290, .Upper: 0x12B0},
75 {.Lower: 0x12B2, .Upper: 0x12B5}, {.Lower: 0x12B8, .Upper: 0x12BE}, {.Lower: 0x12C0, .Upper: 0x12C0},
76 {.Lower: 0x12C2, .Upper: 0x12C5}, {.Lower: 0x12C8, .Upper: 0x12D6}, {.Lower: 0x12D8, .Upper: 0x1310},
77 {.Lower: 0x1312, .Upper: 0x1315}, {.Lower: 0x1318, .Upper: 0x135A}, {.Lower: 0x1380, .Upper: 0x138F},
78 {.Lower: 0x13A0, .Upper: 0x13F5}, {.Lower: 0x13F8, .Upper: 0x13FD}, {.Lower: 0x1401, .Upper: 0x166C},
79 {.Lower: 0x166F, .Upper: 0x167F}, {.Lower: 0x1681, .Upper: 0x169A}, {.Lower: 0x16A0, .Upper: 0x16EA},
80 {.Lower: 0x16EE, .Upper: 0x16F8}, {.Lower: 0x1700, .Upper: 0x1711}, {.Lower: 0x171F, .Upper: 0x1731},
81 {.Lower: 0x1740, .Upper: 0x1751}, {.Lower: 0x1760, .Upper: 0x176C}, {.Lower: 0x176E, .Upper: 0x1770},
82 {.Lower: 0x1780, .Upper: 0x17B3}, {.Lower: 0x17D7, .Upper: 0x17D7}, {.Lower: 0x17DC, .Upper: 0x17DC},
83 {.Lower: 0x1820, .Upper: 0x1878}, {.Lower: 0x1880, .Upper: 0x18A8}, {.Lower: 0x18AA, .Upper: 0x18AA},
84 {.Lower: 0x18B0, .Upper: 0x18F5}, {.Lower: 0x1900, .Upper: 0x191E}, {.Lower: 0x1950, .Upper: 0x196D},
85 {.Lower: 0x1970, .Upper: 0x1974}, {.Lower: 0x1980, .Upper: 0x19AB}, {.Lower: 0x19B0, .Upper: 0x19C9},
86 {.Lower: 0x1A00, .Upper: 0x1A16}, {.Lower: 0x1A20, .Upper: 0x1A54}, {.Lower: 0x1AA7, .Upper: 0x1AA7},
87 {.Lower: 0x1B05, .Upper: 0x1B33}, {.Lower: 0x1B45, .Upper: 0x1B4C}, {.Lower: 0x1B83, .Upper: 0x1BA0},
88 {.Lower: 0x1BAE, .Upper: 0x1BAF}, {.Lower: 0x1BBA, .Upper: 0x1BE5}, {.Lower: 0x1C00, .Upper: 0x1C23},
89 {.Lower: 0x1C4D, .Upper: 0x1C4F}, {.Lower: 0x1C5A, .Upper: 0x1C7D}, {.Lower: 0x1C80, .Upper: 0x1C88},
90 {.Lower: 0x1C90, .Upper: 0x1CBA}, {.Lower: 0x1CBD, .Upper: 0x1CBF}, {.Lower: 0x1CE9, .Upper: 0x1CEC},
91 {.Lower: 0x1CEE, .Upper: 0x1CF3}, {.Lower: 0x1CF5, .Upper: 0x1CF6}, {.Lower: 0x1CFA, .Upper: 0x1CFA},
92 {.Lower: 0x1D00, .Upper: 0x1DBF}, {.Lower: 0x1E00, .Upper: 0x1F15}, {.Lower: 0x1F18, .Upper: 0x1F1D},
93 {.Lower: 0x1F20, .Upper: 0x1F45}, {.Lower: 0x1F48, .Upper: 0x1F4D}, {.Lower: 0x1F50, .Upper: 0x1F57},
94 {.Lower: 0x1F59, .Upper: 0x1F59}, {.Lower: 0x1F5B, .Upper: 0x1F5B}, {.Lower: 0x1F5D, .Upper: 0x1F5D},
95 {.Lower: 0x1F5F, .Upper: 0x1F7D}, {.Lower: 0x1F80, .Upper: 0x1FB4}, {.Lower: 0x1FB6, .Upper: 0x1FBC},
96 {.Lower: 0x1FBE, .Upper: 0x1FBE}, {.Lower: 0x1FC2, .Upper: 0x1FC4}, {.Lower: 0x1FC6, .Upper: 0x1FCC},
97 {.Lower: 0x1FD0, .Upper: 0x1FD3}, {.Lower: 0x1FD6, .Upper: 0x1FDB}, {.Lower: 0x1FE0, .Upper: 0x1FEC},
98 {.Lower: 0x1FF2, .Upper: 0x1FF4}, {.Lower: 0x1FF6, .Upper: 0x1FFC}, {.Lower: 0x2071, .Upper: 0x2071},
99 {.Lower: 0x207F, .Upper: 0x207F}, {.Lower: 0x2090, .Upper: 0x209C}, {.Lower: 0x2102, .Upper: 0x2102},
100 {.Lower: 0x2107, .Upper: 0x2107}, {.Lower: 0x210A, .Upper: 0x2113}, {.Lower: 0x2115, .Upper: 0x2115},
101 {.Lower: 0x2118, .Upper: 0x211D}, {.Lower: 0x2124, .Upper: 0x2124}, {.Lower: 0x2126, .Upper: 0x2126},
102 {.Lower: 0x2128, .Upper: 0x2128}, {.Lower: 0x212A, .Upper: 0x2139}, {.Lower: 0x213C, .Upper: 0x213F},
103 {.Lower: 0x2145, .Upper: 0x2149}, {.Lower: 0x214E, .Upper: 0x214E}, {.Lower: 0x2160, .Upper: 0x2188},
104 {.Lower: 0x2C00, .Upper: 0x2CE4}, {.Lower: 0x2CEB, .Upper: 0x2CEE}, {.Lower: 0x2CF2, .Upper: 0x2CF3},
105 {.Lower: 0x2D00, .Upper: 0x2D25}, {.Lower: 0x2D27, .Upper: 0x2D27}, {.Lower: 0x2D2D, .Upper: 0x2D2D},
106 {.Lower: 0x2D30, .Upper: 0x2D67}, {.Lower: 0x2D6F, .Upper: 0x2D6F}, {.Lower: 0x2D80, .Upper: 0x2D96},
107 {.Lower: 0x2DA0, .Upper: 0x2DA6}, {.Lower: 0x2DA8, .Upper: 0x2DAE}, {.Lower: 0x2DB0, .Upper: 0x2DB6},
108 {.Lower: 0x2DB8, .Upper: 0x2DBE}, {.Lower: 0x2DC0, .Upper: 0x2DC6}, {.Lower: 0x2DC8, .Upper: 0x2DCE},
109 {.Lower: 0x2DD0, .Upper: 0x2DD6}, {.Lower: 0x2DD8, .Upper: 0x2DDE}, {.Lower: 0x3005, .Upper: 0x3007},
110 {.Lower: 0x3021, .Upper: 0x3029}, {.Lower: 0x3031, .Upper: 0x3035}, {.Lower: 0x3038, .Upper: 0x303C},
111 {.Lower: 0x3041, .Upper: 0x3096}, {.Lower: 0x309D, .Upper: 0x309F}, {.Lower: 0x30A1, .Upper: 0x30FA},
112 {.Lower: 0x30FC, .Upper: 0x30FF}, {.Lower: 0x3105, .Upper: 0x312F}, {.Lower: 0x3131, .Upper: 0x318E},
113 {.Lower: 0x31A0, .Upper: 0x31BF}, {.Lower: 0x31F0, .Upper: 0x31FF}, {.Lower: 0x3400, .Upper: 0x4DBF},
114 {.Lower: 0x4E00, .Upper: 0xA48C}, {.Lower: 0xA4D0, .Upper: 0xA4FD}, {.Lower: 0xA500, .Upper: 0xA60C},
115 {.Lower: 0xA610, .Upper: 0xA61F}, {.Lower: 0xA62A, .Upper: 0xA62B}, {.Lower: 0xA640, .Upper: 0xA66E},
116 {.Lower: 0xA67F, .Upper: 0xA69D}, {.Lower: 0xA6A0, .Upper: 0xA6EF}, {.Lower: 0xA717, .Upper: 0xA71F},
117 {.Lower: 0xA722, .Upper: 0xA788}, {.Lower: 0xA78B, .Upper: 0xA7CA}, {.Lower: 0xA7D0, .Upper: 0xA7D1},
118 {.Lower: 0xA7D3, .Upper: 0xA7D3}, {.Lower: 0xA7D5, .Upper: 0xA7D9}, {.Lower: 0xA7F2, .Upper: 0xA801},
119 {.Lower: 0xA803, .Upper: 0xA805}, {.Lower: 0xA807, .Upper: 0xA80A}, {.Lower: 0xA80C, .Upper: 0xA822},
120 {.Lower: 0xA840, .Upper: 0xA873}, {.Lower: 0xA882, .Upper: 0xA8B3}, {.Lower: 0xA8F2, .Upper: 0xA8F7},
121 {.Lower: 0xA8FB, .Upper: 0xA8FB}, {.Lower: 0xA8FD, .Upper: 0xA8FE}, {.Lower: 0xA90A, .Upper: 0xA925},
122 {.Lower: 0xA930, .Upper: 0xA946}, {.Lower: 0xA960, .Upper: 0xA97C}, {.Lower: 0xA984, .Upper: 0xA9B2},
123 {.Lower: 0xA9CF, .Upper: 0xA9CF}, {.Lower: 0xA9E0, .Upper: 0xA9E4}, {.Lower: 0xA9E6, .Upper: 0xA9EF},
124 {.Lower: 0xA9FA, .Upper: 0xA9FE}, {.Lower: 0xAA00, .Upper: 0xAA28}, {.Lower: 0xAA40, .Upper: 0xAA42},
125 {.Lower: 0xAA44, .Upper: 0xAA4B}, {.Lower: 0xAA60, .Upper: 0xAA76}, {.Lower: 0xAA7A, .Upper: 0xAA7A},
126 {.Lower: 0xAA7E, .Upper: 0xAAAF}, {.Lower: 0xAAB1, .Upper: 0xAAB1}, {.Lower: 0xAAB5, .Upper: 0xAAB6},
127 {.Lower: 0xAAB9, .Upper: 0xAABD}, {.Lower: 0xAAC0, .Upper: 0xAAC0}, {.Lower: 0xAAC2, .Upper: 0xAAC2},
128 {.Lower: 0xAADB, .Upper: 0xAADD}, {.Lower: 0xAAE0, .Upper: 0xAAEA}, {.Lower: 0xAAF2, .Upper: 0xAAF4},
129 {.Lower: 0xAB01, .Upper: 0xAB06}, {.Lower: 0xAB09, .Upper: 0xAB0E}, {.Lower: 0xAB11, .Upper: 0xAB16},
130 {.Lower: 0xAB20, .Upper: 0xAB26}, {.Lower: 0xAB28, .Upper: 0xAB2E}, {.Lower: 0xAB30, .Upper: 0xAB5A},
131 {.Lower: 0xAB5C, .Upper: 0xAB69}, {.Lower: 0xAB70, .Upper: 0xABE2}, {.Lower: 0xAC00, .Upper: 0xD7A3},
132 {.Lower: 0xD7B0, .Upper: 0xD7C6}, {.Lower: 0xD7CB, .Upper: 0xD7FB}, {.Lower: 0xF900, .Upper: 0xFA6D},
133 {.Lower: 0xFA70, .Upper: 0xFAD9}, {.Lower: 0xFB00, .Upper: 0xFB06}, {.Lower: 0xFB13, .Upper: 0xFB17},
134 {.Lower: 0xFB1D, .Upper: 0xFB1D}, {.Lower: 0xFB1F, .Upper: 0xFB28}, {.Lower: 0xFB2A, .Upper: 0xFB36},
135 {.Lower: 0xFB38, .Upper: 0xFB3C}, {.Lower: 0xFB3E, .Upper: 0xFB3E}, {.Lower: 0xFB40, .Upper: 0xFB41},
136 {.Lower: 0xFB43, .Upper: 0xFB44}, {.Lower: 0xFB46, .Upper: 0xFBB1}, {.Lower: 0xFBD3, .Upper: 0xFC5D},
137 {.Lower: 0xFC64, .Upper: 0xFD3D}, {.Lower: 0xFD50, .Upper: 0xFD8F}, {.Lower: 0xFD92, .Upper: 0xFDC7},
138 {.Lower: 0xFDF0, .Upper: 0xFDF9}, {.Lower: 0xFE71, .Upper: 0xFE71}, {.Lower: 0xFE73, .Upper: 0xFE73},
139 {.Lower: 0xFE77, .Upper: 0xFE77}, {.Lower: 0xFE79, .Upper: 0xFE79}, {.Lower: 0xFE7B, .Upper: 0xFE7B},
140 {.Lower: 0xFE7D, .Upper: 0xFE7D}, {.Lower: 0xFE7F, .Upper: 0xFEFC}, {.Lower: 0xFF21, .Upper: 0xFF3A},
141 {.Lower: 0xFF41, .Upper: 0xFF5A}, {.Lower: 0xFF66, .Upper: 0xFF9D}, {.Lower: 0xFFA0, .Upper: 0xFFBE},
142 {.Lower: 0xFFC2, .Upper: 0xFFC7}, {.Lower: 0xFFCA, .Upper: 0xFFCF}, {.Lower: 0xFFD2, .Upper: 0xFFD7},
143 {.Lower: 0xFFDA, .Upper: 0xFFDC}, {.Lower: 0x10000, .Upper: 0x1000B}, {.Lower: 0x1000D, .Upper: 0x10026},
144 {.Lower: 0x10028, .Upper: 0x1003A}, {.Lower: 0x1003C, .Upper: 0x1003D}, {.Lower: 0x1003F, .Upper: 0x1004D},
145 {.Lower: 0x10050, .Upper: 0x1005D}, {.Lower: 0x10080, .Upper: 0x100FA}, {.Lower: 0x10140, .Upper: 0x10174},
146 {.Lower: 0x10280, .Upper: 0x1029C}, {.Lower: 0x102A0, .Upper: 0x102D0}, {.Lower: 0x10300, .Upper: 0x1031F},
147 {.Lower: 0x1032D, .Upper: 0x1034A}, {.Lower: 0x10350, .Upper: 0x10375}, {.Lower: 0x10380, .Upper: 0x1039D},
148 {.Lower: 0x103A0, .Upper: 0x103C3}, {.Lower: 0x103C8, .Upper: 0x103CF}, {.Lower: 0x103D1, .Upper: 0x103D5},
149 {.Lower: 0x10400, .Upper: 0x1049D}, {.Lower: 0x104B0, .Upper: 0x104D3}, {.Lower: 0x104D8, .Upper: 0x104FB},
150 {.Lower: 0x10500, .Upper: 0x10527}, {.Lower: 0x10530, .Upper: 0x10563}, {.Lower: 0x10570, .Upper: 0x1057A},
151 {.Lower: 0x1057C, .Upper: 0x1058A}, {.Lower: 0x1058C, .Upper: 0x10592}, {.Lower: 0x10594, .Upper: 0x10595},
152 {.Lower: 0x10597, .Upper: 0x105A1}, {.Lower: 0x105A3, .Upper: 0x105B1}, {.Lower: 0x105B3, .Upper: 0x105B9},
153 {.Lower: 0x105BB, .Upper: 0x105BC}, {.Lower: 0x10600, .Upper: 0x10736}, {.Lower: 0x10740, .Upper: 0x10755},
154 {.Lower: 0x10760, .Upper: 0x10767}, {.Lower: 0x10780, .Upper: 0x10785}, {.Lower: 0x10787, .Upper: 0x107B0},
155 {.Lower: 0x107B2, .Upper: 0x107BA}, {.Lower: 0x10800, .Upper: 0x10805}, {.Lower: 0x10808, .Upper: 0x10808},
156 {.Lower: 0x1080A, .Upper: 0x10835}, {.Lower: 0x10837, .Upper: 0x10838}, {.Lower: 0x1083C, .Upper: 0x1083C},
157 {.Lower: 0x1083F, .Upper: 0x10855}, {.Lower: 0x10860, .Upper: 0x10876}, {.Lower: 0x10880, .Upper: 0x1089E},
158 {.Lower: 0x108E0, .Upper: 0x108F2}, {.Lower: 0x108F4, .Upper: 0x108F5}, {.Lower: 0x10900, .Upper: 0x10915},
159 {.Lower: 0x10920, .Upper: 0x10939}, {.Lower: 0x10980, .Upper: 0x109B7}, {.Lower: 0x109BE, .Upper: 0x109BF},
160 {.Lower: 0x10A00, .Upper: 0x10A00}, {.Lower: 0x10A10, .Upper: 0x10A13}, {.Lower: 0x10A15, .Upper: 0x10A17},
161 {.Lower: 0x10A19, .Upper: 0x10A35}, {.Lower: 0x10A60, .Upper: 0x10A7C}, {.Lower: 0x10A80, .Upper: 0x10A9C},
162 {.Lower: 0x10AC0, .Upper: 0x10AC7}, {.Lower: 0x10AC9, .Upper: 0x10AE4}, {.Lower: 0x10B00, .Upper: 0x10B35},
163 {.Lower: 0x10B40, .Upper: 0x10B55}, {.Lower: 0x10B60, .Upper: 0x10B72}, {.Lower: 0x10B80, .Upper: 0x10B91},
164 {.Lower: 0x10C00, .Upper: 0x10C48}, {.Lower: 0x10C80, .Upper: 0x10CB2}, {.Lower: 0x10CC0, .Upper: 0x10CF2},
165 {.Lower: 0x10D00, .Upper: 0x10D23}, {.Lower: 0x10E80, .Upper: 0x10EA9}, {.Lower: 0x10EB0, .Upper: 0x10EB1},
166 {.Lower: 0x10F00, .Upper: 0x10F1C}, {.Lower: 0x10F27, .Upper: 0x10F27}, {.Lower: 0x10F30, .Upper: 0x10F45},
167 {.Lower: 0x10F70, .Upper: 0x10F81}, {.Lower: 0x10FB0, .Upper: 0x10FC4}, {.Lower: 0x10FE0, .Upper: 0x10FF6},
168 {.Lower: 0x11003, .Upper: 0x11037}, {.Lower: 0x11071, .Upper: 0x11072}, {.Lower: 0x11075, .Upper: 0x11075},
169 {.Lower: 0x11083, .Upper: 0x110AF}, {.Lower: 0x110D0, .Upper: 0x110E8}, {.Lower: 0x11103, .Upper: 0x11126},
170 {.Lower: 0x11144, .Upper: 0x11144}, {.Lower: 0x11147, .Upper: 0x11147}, {.Lower: 0x11150, .Upper: 0x11172},
171 {.Lower: 0x11176, .Upper: 0x11176}, {.Lower: 0x11183, .Upper: 0x111B2}, {.Lower: 0x111C1, .Upper: 0x111C4},
172 {.Lower: 0x111DA, .Upper: 0x111DA}, {.Lower: 0x111DC, .Upper: 0x111DC}, {.Lower: 0x11200, .Upper: 0x11211},
173 {.Lower: 0x11213, .Upper: 0x1122B}, {.Lower: 0x1123F, .Upper: 0x11240}, {.Lower: 0x11280, .Upper: 0x11286},
174 {.Lower: 0x11288, .Upper: 0x11288}, {.Lower: 0x1128A, .Upper: 0x1128D}, {.Lower: 0x1128F, .Upper: 0x1129D},
175 {.Lower: 0x1129F, .Upper: 0x112A8}, {.Lower: 0x112B0, .Upper: 0x112DE}, {.Lower: 0x11305, .Upper: 0x1130C},
176 {.Lower: 0x1130F, .Upper: 0x11310}, {.Lower: 0x11313, .Upper: 0x11328}, {.Lower: 0x1132A, .Upper: 0x11330},
177 {.Lower: 0x11332, .Upper: 0x11333}, {.Lower: 0x11335, .Upper: 0x11339}, {.Lower: 0x1133D, .Upper: 0x1133D},
178 {.Lower: 0x11350, .Upper: 0x11350}, {.Lower: 0x1135D, .Upper: 0x11361}, {.Lower: 0x11400, .Upper: 0x11434},
179 {.Lower: 0x11447, .Upper: 0x1144A}, {.Lower: 0x1145F, .Upper: 0x11461}, {.Lower: 0x11480, .Upper: 0x114AF},
180 {.Lower: 0x114C4, .Upper: 0x114C5}, {.Lower: 0x114C7, .Upper: 0x114C7}, {.Lower: 0x11580, .Upper: 0x115AE},
181 {.Lower: 0x115D8, .Upper: 0x115DB}, {.Lower: 0x11600, .Upper: 0x1162F}, {.Lower: 0x11644, .Upper: 0x11644},
182 {.Lower: 0x11680, .Upper: 0x116AA}, {.Lower: 0x116B8, .Upper: 0x116B8}, {.Lower: 0x11700, .Upper: 0x1171A},
183 {.Lower: 0x11740, .Upper: 0x11746}, {.Lower: 0x11800, .Upper: 0x1182B}, {.Lower: 0x118A0, .Upper: 0x118DF},
184 {.Lower: 0x118FF, .Upper: 0x11906}, {.Lower: 0x11909, .Upper: 0x11909}, {.Lower: 0x1190C, .Upper: 0x11913},
185 {.Lower: 0x11915, .Upper: 0x11916}, {.Lower: 0x11918, .Upper: 0x1192F}, {.Lower: 0x1193F, .Upper: 0x1193F},
186 {.Lower: 0x11941, .Upper: 0x11941}, {.Lower: 0x119A0, .Upper: 0x119A7}, {.Lower: 0x119AA, .Upper: 0x119D0},
187 {.Lower: 0x119E1, .Upper: 0x119E1}, {.Lower: 0x119E3, .Upper: 0x119E3}, {.Lower: 0x11A00, .Upper: 0x11A00},
188 {.Lower: 0x11A0B, .Upper: 0x11A32}, {.Lower: 0x11A3A, .Upper: 0x11A3A}, {.Lower: 0x11A50, .Upper: 0x11A50},
189 {.Lower: 0x11A5C, .Upper: 0x11A89}, {.Lower: 0x11A9D, .Upper: 0x11A9D}, {.Lower: 0x11AB0, .Upper: 0x11AF8},
190 {.Lower: 0x11C00, .Upper: 0x11C08}, {.Lower: 0x11C0A, .Upper: 0x11C2E}, {.Lower: 0x11C40, .Upper: 0x11C40},
191 {.Lower: 0x11C72, .Upper: 0x11C8F}, {.Lower: 0x11D00, .Upper: 0x11D06}, {.Lower: 0x11D08, .Upper: 0x11D09},
192 {.Lower: 0x11D0B, .Upper: 0x11D30}, {.Lower: 0x11D46, .Upper: 0x11D46}, {.Lower: 0x11D60, .Upper: 0x11D65},
193 {.Lower: 0x11D67, .Upper: 0x11D68}, {.Lower: 0x11D6A, .Upper: 0x11D89}, {.Lower: 0x11D98, .Upper: 0x11D98},
194 {.Lower: 0x11EE0, .Upper: 0x11EF2}, {.Lower: 0x11F02, .Upper: 0x11F02}, {.Lower: 0x11F04, .Upper: 0x11F10},
195 {.Lower: 0x11F12, .Upper: 0x11F33}, {.Lower: 0x11FB0, .Upper: 0x11FB0}, {.Lower: 0x12000, .Upper: 0x12399},
196 {.Lower: 0x12400, .Upper: 0x1246E}, {.Lower: 0x12480, .Upper: 0x12543}, {.Lower: 0x12F90, .Upper: 0x12FF0},
197 {.Lower: 0x13000, .Upper: 0x1342F}, {.Lower: 0x13441, .Upper: 0x13446}, {.Lower: 0x14400, .Upper: 0x14646},
198 {.Lower: 0x16800, .Upper: 0x16A38}, {.Lower: 0x16A40, .Upper: 0x16A5E}, {.Lower: 0x16A70, .Upper: 0x16ABE},
199 {.Lower: 0x16AD0, .Upper: 0x16AED}, {.Lower: 0x16B00, .Upper: 0x16B2F}, {.Lower: 0x16B40, .Upper: 0x16B43},
200 {.Lower: 0x16B63, .Upper: 0x16B77}, {.Lower: 0x16B7D, .Upper: 0x16B8F}, {.Lower: 0x16E40, .Upper: 0x16E7F},
201 {.Lower: 0x16F00, .Upper: 0x16F4A}, {.Lower: 0x16F50, .Upper: 0x16F50}, {.Lower: 0x16F93, .Upper: 0x16F9F},
202 {.Lower: 0x16FE0, .Upper: 0x16FE1}, {.Lower: 0x16FE3, .Upper: 0x16FE3}, {.Lower: 0x17000, .Upper: 0x187F7},
203 {.Lower: 0x18800, .Upper: 0x18CD5}, {.Lower: 0x18D00, .Upper: 0x18D08}, {.Lower: 0x1AFF0, .Upper: 0x1AFF3},
204 {.Lower: 0x1AFF5, .Upper: 0x1AFFB}, {.Lower: 0x1AFFD, .Upper: 0x1AFFE}, {.Lower: 0x1B000, .Upper: 0x1B122},
205 {.Lower: 0x1B132, .Upper: 0x1B132}, {.Lower: 0x1B150, .Upper: 0x1B152}, {.Lower: 0x1B155, .Upper: 0x1B155},
206 {.Lower: 0x1B164, .Upper: 0x1B167}, {.Lower: 0x1B170, .Upper: 0x1B2FB}, {.Lower: 0x1BC00, .Upper: 0x1BC6A},
207 {.Lower: 0x1BC70, .Upper: 0x1BC7C}, {.Lower: 0x1BC80, .Upper: 0x1BC88}, {.Lower: 0x1BC90, .Upper: 0x1BC99},
208 {.Lower: 0x1D400, .Upper: 0x1D454}, {.Lower: 0x1D456, .Upper: 0x1D49C}, {.Lower: 0x1D49E, .Upper: 0x1D49F},
209 {.Lower: 0x1D4A2, .Upper: 0x1D4A2}, {.Lower: 0x1D4A5, .Upper: 0x1D4A6}, {.Lower: 0x1D4A9, .Upper: 0x1D4AC},
210 {.Lower: 0x1D4AE, .Upper: 0x1D4B9}, {.Lower: 0x1D4BB, .Upper: 0x1D4BB}, {.Lower: 0x1D4BD, .Upper: 0x1D4C3},
211 {.Lower: 0x1D4C5, .Upper: 0x1D505}, {.Lower: 0x1D507, .Upper: 0x1D50A}, {.Lower: 0x1D50D, .Upper: 0x1D514},
212 {.Lower: 0x1D516, .Upper: 0x1D51C}, {.Lower: 0x1D51E, .Upper: 0x1D539}, {.Lower: 0x1D53B, .Upper: 0x1D53E},
213 {.Lower: 0x1D540, .Upper: 0x1D544}, {.Lower: 0x1D546, .Upper: 0x1D546}, {.Lower: 0x1D54A, .Upper: 0x1D550},
214 {.Lower: 0x1D552, .Upper: 0x1D6A5}, {.Lower: 0x1D6A8, .Upper: 0x1D6C0}, {.Lower: 0x1D6C2, .Upper: 0x1D6DA},
215 {.Lower: 0x1D6DC, .Upper: 0x1D6FA}, {.Lower: 0x1D6FC, .Upper: 0x1D714}, {.Lower: 0x1D716, .Upper: 0x1D734},
216 {.Lower: 0x1D736, .Upper: 0x1D74E}, {.Lower: 0x1D750, .Upper: 0x1D76E}, {.Lower: 0x1D770, .Upper: 0x1D788},
217 {.Lower: 0x1D78A, .Upper: 0x1D7A8}, {.Lower: 0x1D7AA, .Upper: 0x1D7C2}, {.Lower: 0x1D7C4, .Upper: 0x1D7CB},
218 {.Lower: 0x1DF00, .Upper: 0x1DF1E}, {.Lower: 0x1DF25, .Upper: 0x1DF2A}, {.Lower: 0x1E030, .Upper: 0x1E06D},
219 {.Lower: 0x1E100, .Upper: 0x1E12C}, {.Lower: 0x1E137, .Upper: 0x1E13D}, {.Lower: 0x1E14E, .Upper: 0x1E14E},
220 {.Lower: 0x1E290, .Upper: 0x1E2AD}, {.Lower: 0x1E2C0, .Upper: 0x1E2EB}, {.Lower: 0x1E4D0, .Upper: 0x1E4EB},
221 {.Lower: 0x1E7E0, .Upper: 0x1E7E6}, {.Lower: 0x1E7E8, .Upper: 0x1E7EB}, {.Lower: 0x1E7ED, .Upper: 0x1E7EE},
222 {.Lower: 0x1E7F0, .Upper: 0x1E7FE}, {.Lower: 0x1E800, .Upper: 0x1E8C4}, {.Lower: 0x1E900, .Upper: 0x1E943},
223 {.Lower: 0x1E94B, .Upper: 0x1E94B}, {.Lower: 0x1EE00, .Upper: 0x1EE03}, {.Lower: 0x1EE05, .Upper: 0x1EE1F},
224 {.Lower: 0x1EE21, .Upper: 0x1EE22}, {.Lower: 0x1EE24, .Upper: 0x1EE24}, {.Lower: 0x1EE27, .Upper: 0x1EE27},
225 {.Lower: 0x1EE29, .Upper: 0x1EE32}, {.Lower: 0x1EE34, .Upper: 0x1EE37}, {.Lower: 0x1EE39, .Upper: 0x1EE39},
226 {.Lower: 0x1EE3B, .Upper: 0x1EE3B}, {.Lower: 0x1EE42, .Upper: 0x1EE42}, {.Lower: 0x1EE47, .Upper: 0x1EE47},
227 {.Lower: 0x1EE49, .Upper: 0x1EE49}, {.Lower: 0x1EE4B, .Upper: 0x1EE4B}, {.Lower: 0x1EE4D, .Upper: 0x1EE4F},
228 {.Lower: 0x1EE51, .Upper: 0x1EE52}, {.Lower: 0x1EE54, .Upper: 0x1EE54}, {.Lower: 0x1EE57, .Upper: 0x1EE57},
229 {.Lower: 0x1EE59, .Upper: 0x1EE59}, {.Lower: 0x1EE5B, .Upper: 0x1EE5B}, {.Lower: 0x1EE5D, .Upper: 0x1EE5D},
230 {.Lower: 0x1EE5F, .Upper: 0x1EE5F}, {.Lower: 0x1EE61, .Upper: 0x1EE62}, {.Lower: 0x1EE64, .Upper: 0x1EE64},
231 {.Lower: 0x1EE67, .Upper: 0x1EE6A}, {.Lower: 0x1EE6C, .Upper: 0x1EE72}, {.Lower: 0x1EE74, .Upper: 0x1EE77},
232 {.Lower: 0x1EE79, .Upper: 0x1EE7C}, {.Lower: 0x1EE7E, .Upper: 0x1EE7E}, {.Lower: 0x1EE80, .Upper: 0x1EE89},
233 {.Lower: 0x1EE8B, .Upper: 0x1EE9B}, {.Lower: 0x1EEA1, .Upper: 0x1EEA3}, {.Lower: 0x1EEA5, .Upper: 0x1EEA9},
234 {.Lower: 0x1EEAB, .Upper: 0x1EEBB}, {.Lower: 0x20000, .Upper: 0x2A6DF}, {.Lower: 0x2A700, .Upper: 0x2B739},
235 {.Lower: 0x2B740, .Upper: 0x2B81D}, {.Lower: 0x2B820, .Upper: 0x2CEA1}, {.Lower: 0x2CEB0, .Upper: 0x2EBE0},
236 {.Lower: 0x2EBF0, .Upper: 0x2EE5D}, {.Lower: 0x2F800, .Upper: 0x2FA1D}, {.Lower: 0x30000, .Upper: 0x3134A},
237 {.Lower: 0x31350, .Upper: 0x323AF}};
238
239// Unicode 15.1 XID_Continue, excluding XID_Start
240// The Unicode Property XID_Continue is a super set of XID_Start.
241// To save Space, the table below only contains the codepoints
242// that are not also in XID_Start.
243static const llvm::sys::UnicodeCharRange XIDContinueRanges[] = {
244 {.Lower: 0x0030, .Upper: 0x0039}, {.Lower: 0x005F, .Upper: 0x005F}, {.Lower: 0x00B7, .Upper: 0x00B7},
245 {.Lower: 0x0300, .Upper: 0x036F}, {.Lower: 0x0387, .Upper: 0x0387}, {.Lower: 0x0483, .Upper: 0x0487},
246 {.Lower: 0x0591, .Upper: 0x05BD}, {.Lower: 0x05BF, .Upper: 0x05BF}, {.Lower: 0x05C1, .Upper: 0x05C2},
247 {.Lower: 0x05C4, .Upper: 0x05C5}, {.Lower: 0x05C7, .Upper: 0x05C7}, {.Lower: 0x0610, .Upper: 0x061A},
248 {.Lower: 0x064B, .Upper: 0x0669}, {.Lower: 0x0670, .Upper: 0x0670}, {.Lower: 0x06D6, .Upper: 0x06DC},
249 {.Lower: 0x06DF, .Upper: 0x06E4}, {.Lower: 0x06E7, .Upper: 0x06E8}, {.Lower: 0x06EA, .Upper: 0x06ED},
250 {.Lower: 0x06F0, .Upper: 0x06F9}, {.Lower: 0x0711, .Upper: 0x0711}, {.Lower: 0x0730, .Upper: 0x074A},
251 {.Lower: 0x07A6, .Upper: 0x07B0}, {.Lower: 0x07C0, .Upper: 0x07C9}, {.Lower: 0x07EB, .Upper: 0x07F3},
252 {.Lower: 0x07FD, .Upper: 0x07FD}, {.Lower: 0x0816, .Upper: 0x0819}, {.Lower: 0x081B, .Upper: 0x0823},
253 {.Lower: 0x0825, .Upper: 0x0827}, {.Lower: 0x0829, .Upper: 0x082D}, {.Lower: 0x0859, .Upper: 0x085B},
254 {.Lower: 0x0898, .Upper: 0x089F}, {.Lower: 0x08CA, .Upper: 0x08E1}, {.Lower: 0x08E3, .Upper: 0x0903},
255 {.Lower: 0x093A, .Upper: 0x093C}, {.Lower: 0x093E, .Upper: 0x094F}, {.Lower: 0x0951, .Upper: 0x0957},
256 {.Lower: 0x0962, .Upper: 0x0963}, {.Lower: 0x0966, .Upper: 0x096F}, {.Lower: 0x0981, .Upper: 0x0983},
257 {.Lower: 0x09BC, .Upper: 0x09BC}, {.Lower: 0x09BE, .Upper: 0x09C4}, {.Lower: 0x09C7, .Upper: 0x09C8},
258 {.Lower: 0x09CB, .Upper: 0x09CD}, {.Lower: 0x09D7, .Upper: 0x09D7}, {.Lower: 0x09E2, .Upper: 0x09E3},
259 {.Lower: 0x09E6, .Upper: 0x09EF}, {.Lower: 0x09FE, .Upper: 0x09FE}, {.Lower: 0x0A01, .Upper: 0x0A03},
260 {.Lower: 0x0A3C, .Upper: 0x0A3C}, {.Lower: 0x0A3E, .Upper: 0x0A42}, {.Lower: 0x0A47, .Upper: 0x0A48},
261 {.Lower: 0x0A4B, .Upper: 0x0A4D}, {.Lower: 0x0A51, .Upper: 0x0A51}, {.Lower: 0x0A66, .Upper: 0x0A71},
262 {.Lower: 0x0A75, .Upper: 0x0A75}, {.Lower: 0x0A81, .Upper: 0x0A83}, {.Lower: 0x0ABC, .Upper: 0x0ABC},
263 {.Lower: 0x0ABE, .Upper: 0x0AC5}, {.Lower: 0x0AC7, .Upper: 0x0AC9}, {.Lower: 0x0ACB, .Upper: 0x0ACD},
264 {.Lower: 0x0AE2, .Upper: 0x0AE3}, {.Lower: 0x0AE6, .Upper: 0x0AEF}, {.Lower: 0x0AFA, .Upper: 0x0AFF},
265 {.Lower: 0x0B01, .Upper: 0x0B03}, {.Lower: 0x0B3C, .Upper: 0x0B3C}, {.Lower: 0x0B3E, .Upper: 0x0B44},
266 {.Lower: 0x0B47, .Upper: 0x0B48}, {.Lower: 0x0B4B, .Upper: 0x0B4D}, {.Lower: 0x0B55, .Upper: 0x0B57},
267 {.Lower: 0x0B62, .Upper: 0x0B63}, {.Lower: 0x0B66, .Upper: 0x0B6F}, {.Lower: 0x0B82, .Upper: 0x0B82},
268 {.Lower: 0x0BBE, .Upper: 0x0BC2}, {.Lower: 0x0BC6, .Upper: 0x0BC8}, {.Lower: 0x0BCA, .Upper: 0x0BCD},
269 {.Lower: 0x0BD7, .Upper: 0x0BD7}, {.Lower: 0x0BE6, .Upper: 0x0BEF}, {.Lower: 0x0C00, .Upper: 0x0C04},
270 {.Lower: 0x0C3C, .Upper: 0x0C3C}, {.Lower: 0x0C3E, .Upper: 0x0C44}, {.Lower: 0x0C46, .Upper: 0x0C48},
271 {.Lower: 0x0C4A, .Upper: 0x0C4D}, {.Lower: 0x0C55, .Upper: 0x0C56}, {.Lower: 0x0C62, .Upper: 0x0C63},
272 {.Lower: 0x0C66, .Upper: 0x0C6F}, {.Lower: 0x0C81, .Upper: 0x0C83}, {.Lower: 0x0CBC, .Upper: 0x0CBC},
273 {.Lower: 0x0CBE, .Upper: 0x0CC4}, {.Lower: 0x0CC6, .Upper: 0x0CC8}, {.Lower: 0x0CCA, .Upper: 0x0CCD},
274 {.Lower: 0x0CD5, .Upper: 0x0CD6}, {.Lower: 0x0CE2, .Upper: 0x0CE3}, {.Lower: 0x0CE6, .Upper: 0x0CEF},
275 {.Lower: 0x0CF3, .Upper: 0x0CF3}, {.Lower: 0x0D00, .Upper: 0x0D03}, {.Lower: 0x0D3B, .Upper: 0x0D3C},
276 {.Lower: 0x0D3E, .Upper: 0x0D44}, {.Lower: 0x0D46, .Upper: 0x0D48}, {.Lower: 0x0D4A, .Upper: 0x0D4D},
277 {.Lower: 0x0D57, .Upper: 0x0D57}, {.Lower: 0x0D62, .Upper: 0x0D63}, {.Lower: 0x0D66, .Upper: 0x0D6F},
278 {.Lower: 0x0D81, .Upper: 0x0D83}, {.Lower: 0x0DCA, .Upper: 0x0DCA}, {.Lower: 0x0DCF, .Upper: 0x0DD4},
279 {.Lower: 0x0DD6, .Upper: 0x0DD6}, {.Lower: 0x0DD8, .Upper: 0x0DDF}, {.Lower: 0x0DE6, .Upper: 0x0DEF},
280 {.Lower: 0x0DF2, .Upper: 0x0DF3}, {.Lower: 0x0E31, .Upper: 0x0E31}, {.Lower: 0x0E33, .Upper: 0x0E3A},
281 {.Lower: 0x0E47, .Upper: 0x0E4E}, {.Lower: 0x0E50, .Upper: 0x0E59}, {.Lower: 0x0EB1, .Upper: 0x0EB1},
282 {.Lower: 0x0EB3, .Upper: 0x0EBC}, {.Lower: 0x0EC8, .Upper: 0x0ECE}, {.Lower: 0x0ED0, .Upper: 0x0ED9},
283 {.Lower: 0x0F18, .Upper: 0x0F19}, {.Lower: 0x0F20, .Upper: 0x0F29}, {.Lower: 0x0F35, .Upper: 0x0F35},
284 {.Lower: 0x0F37, .Upper: 0x0F37}, {.Lower: 0x0F39, .Upper: 0x0F39}, {.Lower: 0x0F3E, .Upper: 0x0F3F},
285 {.Lower: 0x0F71, .Upper: 0x0F84}, {.Lower: 0x0F86, .Upper: 0x0F87}, {.Lower: 0x0F8D, .Upper: 0x0F97},
286 {.Lower: 0x0F99, .Upper: 0x0FBC}, {.Lower: 0x0FC6, .Upper: 0x0FC6}, {.Lower: 0x102B, .Upper: 0x103E},
287 {.Lower: 0x1040, .Upper: 0x1049}, {.Lower: 0x1056, .Upper: 0x1059}, {.Lower: 0x105E, .Upper: 0x1060},
288 {.Lower: 0x1062, .Upper: 0x1064}, {.Lower: 0x1067, .Upper: 0x106D}, {.Lower: 0x1071, .Upper: 0x1074},
289 {.Lower: 0x1082, .Upper: 0x108D}, {.Lower: 0x108F, .Upper: 0x109D}, {.Lower: 0x135D, .Upper: 0x135F},
290 {.Lower: 0x1369, .Upper: 0x1371}, {.Lower: 0x1712, .Upper: 0x1715}, {.Lower: 0x1732, .Upper: 0x1734},
291 {.Lower: 0x1752, .Upper: 0x1753}, {.Lower: 0x1772, .Upper: 0x1773}, {.Lower: 0x17B4, .Upper: 0x17D3},
292 {.Lower: 0x17DD, .Upper: 0x17DD}, {.Lower: 0x17E0, .Upper: 0x17E9}, {.Lower: 0x180B, .Upper: 0x180D},
293 {.Lower: 0x180F, .Upper: 0x1819}, {.Lower: 0x18A9, .Upper: 0x18A9}, {.Lower: 0x1920, .Upper: 0x192B},
294 {.Lower: 0x1930, .Upper: 0x193B}, {.Lower: 0x1946, .Upper: 0x194F}, {.Lower: 0x19D0, .Upper: 0x19DA},
295 {.Lower: 0x1A17, .Upper: 0x1A1B}, {.Lower: 0x1A55, .Upper: 0x1A5E}, {.Lower: 0x1A60, .Upper: 0x1A7C},
296 {.Lower: 0x1A7F, .Upper: 0x1A89}, {.Lower: 0x1A90, .Upper: 0x1A99}, {.Lower: 0x1AB0, .Upper: 0x1ABD},
297 {.Lower: 0x1ABF, .Upper: 0x1ACE}, {.Lower: 0x1B00, .Upper: 0x1B04}, {.Lower: 0x1B34, .Upper: 0x1B44},
298 {.Lower: 0x1B50, .Upper: 0x1B59}, {.Lower: 0x1B6B, .Upper: 0x1B73}, {.Lower: 0x1B80, .Upper: 0x1B82},
299 {.Lower: 0x1BA1, .Upper: 0x1BAD}, {.Lower: 0x1BB0, .Upper: 0x1BB9}, {.Lower: 0x1BE6, .Upper: 0x1BF3},
300 {.Lower: 0x1C24, .Upper: 0x1C37}, {.Lower: 0x1C40, .Upper: 0x1C49}, {.Lower: 0x1C50, .Upper: 0x1C59},
301 {.Lower: 0x1CD0, .Upper: 0x1CD2}, {.Lower: 0x1CD4, .Upper: 0x1CE8}, {.Lower: 0x1CED, .Upper: 0x1CED},
302 {.Lower: 0x1CF4, .Upper: 0x1CF4}, {.Lower: 0x1CF7, .Upper: 0x1CF9}, {.Lower: 0x1DC0, .Upper: 0x1DFF},
303 {.Lower: 0x200C, .Upper: 0x200D}, {.Lower: 0x203F, .Upper: 0x2040}, {.Lower: 0x2054, .Upper: 0x2054},
304 {.Lower: 0x20D0, .Upper: 0x20DC}, {.Lower: 0x20E1, .Upper: 0x20E1}, {.Lower: 0x20E5, .Upper: 0x20F0},
305 {.Lower: 0x2CEF, .Upper: 0x2CF1}, {.Lower: 0x2D7F, .Upper: 0x2D7F}, {.Lower: 0x2DE0, .Upper: 0x2DFF},
306 {.Lower: 0x302A, .Upper: 0x302F}, {.Lower: 0x3099, .Upper: 0x309A}, {.Lower: 0x30FB, .Upper: 0x30FB},
307 {.Lower: 0xA620, .Upper: 0xA629}, {.Lower: 0xA66F, .Upper: 0xA66F}, {.Lower: 0xA674, .Upper: 0xA67D},
308 {.Lower: 0xA69E, .Upper: 0xA69F}, {.Lower: 0xA6F0, .Upper: 0xA6F1}, {.Lower: 0xA802, .Upper: 0xA802},
309 {.Lower: 0xA806, .Upper: 0xA806}, {.Lower: 0xA80B, .Upper: 0xA80B}, {.Lower: 0xA823, .Upper: 0xA827},
310 {.Lower: 0xA82C, .Upper: 0xA82C}, {.Lower: 0xA880, .Upper: 0xA881}, {.Lower: 0xA8B4, .Upper: 0xA8C5},
311 {.Lower: 0xA8D0, .Upper: 0xA8D9}, {.Lower: 0xA8E0, .Upper: 0xA8F1}, {.Lower: 0xA8FF, .Upper: 0xA909},
312 {.Lower: 0xA926, .Upper: 0xA92D}, {.Lower: 0xA947, .Upper: 0xA953}, {.Lower: 0xA980, .Upper: 0xA983},
313 {.Lower: 0xA9B3, .Upper: 0xA9C0}, {.Lower: 0xA9D0, .Upper: 0xA9D9}, {.Lower: 0xA9E5, .Upper: 0xA9E5},
314 {.Lower: 0xA9F0, .Upper: 0xA9F9}, {.Lower: 0xAA29, .Upper: 0xAA36}, {.Lower: 0xAA43, .Upper: 0xAA43},
315 {.Lower: 0xAA4C, .Upper: 0xAA4D}, {.Lower: 0xAA50, .Upper: 0xAA59}, {.Lower: 0xAA7B, .Upper: 0xAA7D},
316 {.Lower: 0xAAB0, .Upper: 0xAAB0}, {.Lower: 0xAAB2, .Upper: 0xAAB4}, {.Lower: 0xAAB7, .Upper: 0xAAB8},
317 {.Lower: 0xAABE, .Upper: 0xAABF}, {.Lower: 0xAAC1, .Upper: 0xAAC1}, {.Lower: 0xAAEB, .Upper: 0xAAEF},
318 {.Lower: 0xAAF5, .Upper: 0xAAF6}, {.Lower: 0xABE3, .Upper: 0xABEA}, {.Lower: 0xABEC, .Upper: 0xABED},
319 {.Lower: 0xABF0, .Upper: 0xABF9}, {.Lower: 0xFB1E, .Upper: 0xFB1E}, {.Lower: 0xFE00, .Upper: 0xFE0F},
320 {.Lower: 0xFE20, .Upper: 0xFE2F}, {.Lower: 0xFE33, .Upper: 0xFE34}, {.Lower: 0xFE4D, .Upper: 0xFE4F},
321 {.Lower: 0xFF10, .Upper: 0xFF19}, {.Lower: 0xFF3F, .Upper: 0xFF3F}, {.Lower: 0xFF65, .Upper: 0xFF65},
322 {.Lower: 0xFF9E, .Upper: 0xFF9F}, {.Lower: 0x101FD, .Upper: 0x101FD}, {.Lower: 0x102E0, .Upper: 0x102E0},
323 {.Lower: 0x10376, .Upper: 0x1037A}, {.Lower: 0x104A0, .Upper: 0x104A9}, {.Lower: 0x10A01, .Upper: 0x10A03},
324 {.Lower: 0x10A05, .Upper: 0x10A06}, {.Lower: 0x10A0C, .Upper: 0x10A0F}, {.Lower: 0x10A38, .Upper: 0x10A3A},
325 {.Lower: 0x10A3F, .Upper: 0x10A3F}, {.Lower: 0x10AE5, .Upper: 0x10AE6}, {.Lower: 0x10D24, .Upper: 0x10D27},
326 {.Lower: 0x10D30, .Upper: 0x10D39}, {.Lower: 0x10EAB, .Upper: 0x10EAC}, {.Lower: 0x10EFD, .Upper: 0x10EFF},
327 {.Lower: 0x10F46, .Upper: 0x10F50}, {.Lower: 0x10F82, .Upper: 0x10F85}, {.Lower: 0x11000, .Upper: 0x11002},
328 {.Lower: 0x11038, .Upper: 0x11046}, {.Lower: 0x11066, .Upper: 0x11070}, {.Lower: 0x11073, .Upper: 0x11074},
329 {.Lower: 0x1107F, .Upper: 0x11082}, {.Lower: 0x110B0, .Upper: 0x110BA}, {.Lower: 0x110C2, .Upper: 0x110C2},
330 {.Lower: 0x110F0, .Upper: 0x110F9}, {.Lower: 0x11100, .Upper: 0x11102}, {.Lower: 0x11127, .Upper: 0x11134},
331 {.Lower: 0x11136, .Upper: 0x1113F}, {.Lower: 0x11145, .Upper: 0x11146}, {.Lower: 0x11173, .Upper: 0x11173},
332 {.Lower: 0x11180, .Upper: 0x11182}, {.Lower: 0x111B3, .Upper: 0x111C0}, {.Lower: 0x111C9, .Upper: 0x111CC},
333 {.Lower: 0x111CE, .Upper: 0x111D9}, {.Lower: 0x1122C, .Upper: 0x11237}, {.Lower: 0x1123E, .Upper: 0x1123E},
334 {.Lower: 0x11241, .Upper: 0x11241}, {.Lower: 0x112DF, .Upper: 0x112EA}, {.Lower: 0x112F0, .Upper: 0x112F9},
335 {.Lower: 0x11300, .Upper: 0x11303}, {.Lower: 0x1133B, .Upper: 0x1133C}, {.Lower: 0x1133E, .Upper: 0x11344},
336 {.Lower: 0x11347, .Upper: 0x11348}, {.Lower: 0x1134B, .Upper: 0x1134D}, {.Lower: 0x11357, .Upper: 0x11357},
337 {.Lower: 0x11362, .Upper: 0x11363}, {.Lower: 0x11366, .Upper: 0x1136C}, {.Lower: 0x11370, .Upper: 0x11374},
338 {.Lower: 0x11435, .Upper: 0x11446}, {.Lower: 0x11450, .Upper: 0x11459}, {.Lower: 0x1145E, .Upper: 0x1145E},
339 {.Lower: 0x114B0, .Upper: 0x114C3}, {.Lower: 0x114D0, .Upper: 0x114D9}, {.Lower: 0x115AF, .Upper: 0x115B5},
340 {.Lower: 0x115B8, .Upper: 0x115C0}, {.Lower: 0x115DC, .Upper: 0x115DD}, {.Lower: 0x11630, .Upper: 0x11640},
341 {.Lower: 0x11650, .Upper: 0x11659}, {.Lower: 0x116AB, .Upper: 0x116B7}, {.Lower: 0x116C0, .Upper: 0x116C9},
342 {.Lower: 0x1171D, .Upper: 0x1172B}, {.Lower: 0x11730, .Upper: 0x11739}, {.Lower: 0x1182C, .Upper: 0x1183A},
343 {.Lower: 0x118E0, .Upper: 0x118E9}, {.Lower: 0x11930, .Upper: 0x11935}, {.Lower: 0x11937, .Upper: 0x11938},
344 {.Lower: 0x1193B, .Upper: 0x1193E}, {.Lower: 0x11940, .Upper: 0x11940}, {.Lower: 0x11942, .Upper: 0x11943},
345 {.Lower: 0x11950, .Upper: 0x11959}, {.Lower: 0x119D1, .Upper: 0x119D7}, {.Lower: 0x119DA, .Upper: 0x119E0},
346 {.Lower: 0x119E4, .Upper: 0x119E4}, {.Lower: 0x11A01, .Upper: 0x11A0A}, {.Lower: 0x11A33, .Upper: 0x11A39},
347 {.Lower: 0x11A3B, .Upper: 0x11A3E}, {.Lower: 0x11A47, .Upper: 0x11A47}, {.Lower: 0x11A51, .Upper: 0x11A5B},
348 {.Lower: 0x11A8A, .Upper: 0x11A99}, {.Lower: 0x11C2F, .Upper: 0x11C36}, {.Lower: 0x11C38, .Upper: 0x11C3F},
349 {.Lower: 0x11C50, .Upper: 0x11C59}, {.Lower: 0x11C92, .Upper: 0x11CA7}, {.Lower: 0x11CA9, .Upper: 0x11CB6},
350 {.Lower: 0x11D31, .Upper: 0x11D36}, {.Lower: 0x11D3A, .Upper: 0x11D3A}, {.Lower: 0x11D3C, .Upper: 0x11D3D},
351 {.Lower: 0x11D3F, .Upper: 0x11D45}, {.Lower: 0x11D47, .Upper: 0x11D47}, {.Lower: 0x11D50, .Upper: 0x11D59},
352 {.Lower: 0x11D8A, .Upper: 0x11D8E}, {.Lower: 0x11D90, .Upper: 0x11D91}, {.Lower: 0x11D93, .Upper: 0x11D97},
353 {.Lower: 0x11DA0, .Upper: 0x11DA9}, {.Lower: 0x11EF3, .Upper: 0x11EF6}, {.Lower: 0x11F00, .Upper: 0x11F01},
354 {.Lower: 0x11F03, .Upper: 0x11F03}, {.Lower: 0x11F34, .Upper: 0x11F3A}, {.Lower: 0x11F3E, .Upper: 0x11F42},
355 {.Lower: 0x11F50, .Upper: 0x11F59}, {.Lower: 0x13440, .Upper: 0x13440}, {.Lower: 0x13447, .Upper: 0x13455},
356 {.Lower: 0x16A60, .Upper: 0x16A69}, {.Lower: 0x16AC0, .Upper: 0x16AC9}, {.Lower: 0x16AF0, .Upper: 0x16AF4},
357 {.Lower: 0x16B30, .Upper: 0x16B36}, {.Lower: 0x16B50, .Upper: 0x16B59}, {.Lower: 0x16F4F, .Upper: 0x16F4F},
358 {.Lower: 0x16F51, .Upper: 0x16F87}, {.Lower: 0x16F8F, .Upper: 0x16F92}, {.Lower: 0x16FE4, .Upper: 0x16FE4},
359 {.Lower: 0x16FF0, .Upper: 0x16FF1}, {.Lower: 0x1BC9D, .Upper: 0x1BC9E}, {.Lower: 0x1CF00, .Upper: 0x1CF2D},
360 {.Lower: 0x1CF30, .Upper: 0x1CF46}, {.Lower: 0x1D165, .Upper: 0x1D169}, {.Lower: 0x1D16D, .Upper: 0x1D172},
361 {.Lower: 0x1D17B, .Upper: 0x1D182}, {.Lower: 0x1D185, .Upper: 0x1D18B}, {.Lower: 0x1D1AA, .Upper: 0x1D1AD},
362 {.Lower: 0x1D242, .Upper: 0x1D244}, {.Lower: 0x1D7CE, .Upper: 0x1D7FF}, {.Lower: 0x1DA00, .Upper: 0x1DA36},
363 {.Lower: 0x1DA3B, .Upper: 0x1DA6C}, {.Lower: 0x1DA75, .Upper: 0x1DA75}, {.Lower: 0x1DA84, .Upper: 0x1DA84},
364 {.Lower: 0x1DA9B, .Upper: 0x1DA9F}, {.Lower: 0x1DAA1, .Upper: 0x1DAAF}, {.Lower: 0x1E000, .Upper: 0x1E006},
365 {.Lower: 0x1E008, .Upper: 0x1E018}, {.Lower: 0x1E01B, .Upper: 0x1E021}, {.Lower: 0x1E023, .Upper: 0x1E024},
366 {.Lower: 0x1E026, .Upper: 0x1E02A}, {.Lower: 0x1E08F, .Upper: 0x1E08F}, {.Lower: 0x1E130, .Upper: 0x1E136},
367 {.Lower: 0x1E140, .Upper: 0x1E149}, {.Lower: 0x1E2AE, .Upper: 0x1E2AE}, {.Lower: 0x1E2EC, .Upper: 0x1E2F9},
368 {.Lower: 0x1E4EC, .Upper: 0x1E4F9}, {.Lower: 0x1E8D0, .Upper: 0x1E8D6}, {.Lower: 0x1E944, .Upper: 0x1E94A},
369 {.Lower: 0x1E950, .Upper: 0x1E959}, {.Lower: 0x1FBF0, .Upper: 0x1FBF9}, {.Lower: 0xE0100, .Upper: 0xE01EF},
370};
371
372// Clang supports the "Mathematical notation profile" as an extension,
373// as described in https://www.unicode.org/L2/L2022/22230-math-profile.pdf
374// Math_Start
375static const llvm::sys::UnicodeCharRange
376 MathematicalNotationProfileIDStartRanges[] = {
377 {.Lower: 0x02202, .Upper: 0x02202}, // โˆ‚
378 {.Lower: 0x02207, .Upper: 0x02207}, // โˆ‡
379 {.Lower: 0x0221E, .Upper: 0x0221E}, // โˆž
380 {.Lower: 0x1D6C1, .Upper: 0x1D6C1}, // ๐›
381 {.Lower: 0x1D6DB, .Upper: 0x1D6DB}, // ๐››
382 {.Lower: 0x1D6FB, .Upper: 0x1D6FB}, // ๐›ป
383 {.Lower: 0x1D715, .Upper: 0x1D715}, // ๐œ•
384 {.Lower: 0x1D735, .Upper: 0x1D735}, // ๐œต
385 {.Lower: 0x1D74F, .Upper: 0x1D74F}, // ๐
386 {.Lower: 0x1D76F, .Upper: 0x1D76F}, // ๐ฏ
387 {.Lower: 0x1D789, .Upper: 0x1D789}, // ๐ž‰
388 {.Lower: 0x1D7A9, .Upper: 0x1D7A9}, // ๐žฉ
389 {.Lower: 0x1D7C3, .Upper: 0x1D7C3}, // ๐Ÿƒ
390};
391
392// Math_Continue
393static const llvm::sys::UnicodeCharRange
394 MathematicalNotationProfileIDContinueRanges[] = {
395 {.Lower: 0x000B2, .Upper: 0x000B3}, // ยฒ-ยณ
396 {.Lower: 0x000B9, .Upper: 0x000B9}, // ยน
397 {.Lower: 0x02070, .Upper: 0x02070}, // โฐ
398 {.Lower: 0x02074, .Upper: 0x0207E}, // โด-โพ
399 {.Lower: 0x02080, .Upper: 0x0208E}, // โ‚€-โ‚Ž
400};
401
402// C11 D.1, C++11 [charname.allowed]
403static const llvm::sys::UnicodeCharRange C11AllowedIDCharRanges[] = {
404 // 1
405 { .Lower: 0x00A8, .Upper: 0x00A8 }, { .Lower: 0x00AA, .Upper: 0x00AA }, { .Lower: 0x00AD, .Upper: 0x00AD },
406 { .Lower: 0x00AF, .Upper: 0x00AF }, { .Lower: 0x00B2, .Upper: 0x00B5 }, { .Lower: 0x00B7, .Upper: 0x00BA },
407 { .Lower: 0x00BC, .Upper: 0x00BE }, { .Lower: 0x00C0, .Upper: 0x00D6 }, { .Lower: 0x00D8, .Upper: 0x00F6 },
408 { .Lower: 0x00F8, .Upper: 0x00FF },
409 // 2
410 { .Lower: 0x0100, .Upper: 0x167F }, { .Lower: 0x1681, .Upper: 0x180D }, { .Lower: 0x180F, .Upper: 0x1FFF },
411 // 3
412 { .Lower: 0x200B, .Upper: 0x200D }, { .Lower: 0x202A, .Upper: 0x202E }, { .Lower: 0x203F, .Upper: 0x2040 },
413 { .Lower: 0x2054, .Upper: 0x2054 }, { .Lower: 0x2060, .Upper: 0x206F },
414 // 4
415 { .Lower: 0x2070, .Upper: 0x218F }, { .Lower: 0x2460, .Upper: 0x24FF }, { .Lower: 0x2776, .Upper: 0x2793 },
416 { .Lower: 0x2C00, .Upper: 0x2DFF }, { .Lower: 0x2E80, .Upper: 0x2FFF },
417 // 5
418 { .Lower: 0x3004, .Upper: 0x3007 }, { .Lower: 0x3021, .Upper: 0x302F }, { .Lower: 0x3031, .Upper: 0x303F },
419 // 6
420 { .Lower: 0x3040, .Upper: 0xD7FF },
421 // 7
422 { .Lower: 0xF900, .Upper: 0xFD3D }, { .Lower: 0xFD40, .Upper: 0xFDCF }, { .Lower: 0xFDF0, .Upper: 0xFE44 },
423 { .Lower: 0xFE47, .Upper: 0xFFFD },
424 // 8
425 { .Lower: 0x10000, .Upper: 0x1FFFD }, { .Lower: 0x20000, .Upper: 0x2FFFD }, { .Lower: 0x30000, .Upper: 0x3FFFD },
426 { .Lower: 0x40000, .Upper: 0x4FFFD }, { .Lower: 0x50000, .Upper: 0x5FFFD }, { .Lower: 0x60000, .Upper: 0x6FFFD },
427 { .Lower: 0x70000, .Upper: 0x7FFFD }, { .Lower: 0x80000, .Upper: 0x8FFFD }, { .Lower: 0x90000, .Upper: 0x9FFFD },
428 { .Lower: 0xA0000, .Upper: 0xAFFFD }, { .Lower: 0xB0000, .Upper: 0xBFFFD }, { .Lower: 0xC0000, .Upper: 0xCFFFD },
429 { .Lower: 0xD0000, .Upper: 0xDFFFD }, { .Lower: 0xE0000, .Upper: 0xEFFFD }
430};
431
432// C99 Annex D
433static const llvm::sys::UnicodeCharRange C99AllowedIDCharRanges[] = {
434 // Latin (1)
435 { .Lower: 0x00AA, .Upper: 0x00AA },
436
437 // Special characters (1)
438 { .Lower: 0x00B5, .Upper: 0x00B5 }, { .Lower: 0x00B7, .Upper: 0x00B7 },
439
440 // Latin (2)
441 { .Lower: 0x00BA, .Upper: 0x00BA }, { .Lower: 0x00C0, .Upper: 0x00D6 }, { .Lower: 0x00D8, .Upper: 0x00F6 },
442 { .Lower: 0x00F8, .Upper: 0x01F5 }, { .Lower: 0x01FA, .Upper: 0x0217 }, { .Lower: 0x0250, .Upper: 0x02A8 },
443
444 // Special characters (2)
445 { .Lower: 0x02B0, .Upper: 0x02B8 }, { .Lower: 0x02BB, .Upper: 0x02BB }, { .Lower: 0x02BD, .Upper: 0x02C1 },
446 { .Lower: 0x02D0, .Upper: 0x02D1 }, { .Lower: 0x02E0, .Upper: 0x02E4 }, { .Lower: 0x037A, .Upper: 0x037A },
447
448 // Greek (1)
449 { .Lower: 0x0386, .Upper: 0x0386 }, { .Lower: 0x0388, .Upper: 0x038A }, { .Lower: 0x038C, .Upper: 0x038C },
450 { .Lower: 0x038E, .Upper: 0x03A1 }, { .Lower: 0x03A3, .Upper: 0x03CE }, { .Lower: 0x03D0, .Upper: 0x03D6 },
451 { .Lower: 0x03DA, .Upper: 0x03DA }, { .Lower: 0x03DC, .Upper: 0x03DC }, { .Lower: 0x03DE, .Upper: 0x03DE },
452 { .Lower: 0x03E0, .Upper: 0x03E0 }, { .Lower: 0x03E2, .Upper: 0x03F3 },
453
454 // Cyrillic
455 { .Lower: 0x0401, .Upper: 0x040C }, { .Lower: 0x040E, .Upper: 0x044F }, { .Lower: 0x0451, .Upper: 0x045C },
456 { .Lower: 0x045E, .Upper: 0x0481 }, { .Lower: 0x0490, .Upper: 0x04C4 }, { .Lower: 0x04C7, .Upper: 0x04C8 },
457 { .Lower: 0x04CB, .Upper: 0x04CC }, { .Lower: 0x04D0, .Upper: 0x04EB }, { .Lower: 0x04EE, .Upper: 0x04F5 },
458 { .Lower: 0x04F8, .Upper: 0x04F9 },
459
460 // Armenian (1)
461 { .Lower: 0x0531, .Upper: 0x0556 },
462
463 // Special characters (3)
464 { .Lower: 0x0559, .Upper: 0x0559 },
465
466 // Armenian (2)
467 { .Lower: 0x0561, .Upper: 0x0587 },
468
469 // Hebrew
470 { .Lower: 0x05B0, .Upper: 0x05B9 }, { .Lower: 0x05BB, .Upper: 0x05BD }, { .Lower: 0x05BF, .Upper: 0x05BF },
471 { .Lower: 0x05C1, .Upper: 0x05C2 }, { .Lower: 0x05D0, .Upper: 0x05EA }, { .Lower: 0x05F0, .Upper: 0x05F2 },
472
473 // Arabic (1)
474 { .Lower: 0x0621, .Upper: 0x063A }, { .Lower: 0x0640, .Upper: 0x0652 },
475
476 // Digits (1)
477 { .Lower: 0x0660, .Upper: 0x0669 },
478
479 // Arabic (2)
480 { .Lower: 0x0670, .Upper: 0x06B7 }, { .Lower: 0x06BA, .Upper: 0x06BE }, { .Lower: 0x06C0, .Upper: 0x06CE },
481 { .Lower: 0x06D0, .Upper: 0x06DC }, { .Lower: 0x06E5, .Upper: 0x06E8 }, { .Lower: 0x06EA, .Upper: 0x06ED },
482
483 // Digits (2)
484 { .Lower: 0x06F0, .Upper: 0x06F9 },
485
486 // Devanagari and Special character 0x093D.
487 { .Lower: 0x0901, .Upper: 0x0903 }, { .Lower: 0x0905, .Upper: 0x0939 }, { .Lower: 0x093D, .Upper: 0x094D },
488 { .Lower: 0x0950, .Upper: 0x0952 }, { .Lower: 0x0958, .Upper: 0x0963 },
489
490 // Digits (3)
491 { .Lower: 0x0966, .Upper: 0x096F },
492
493 // Bengali (1)
494 { .Lower: 0x0981, .Upper: 0x0983 }, { .Lower: 0x0985, .Upper: 0x098C }, { .Lower: 0x098F, .Upper: 0x0990 },
495 { .Lower: 0x0993, .Upper: 0x09A8 }, { .Lower: 0x09AA, .Upper: 0x09B0 }, { .Lower: 0x09B2, .Upper: 0x09B2 },
496 { .Lower: 0x09B6, .Upper: 0x09B9 }, { .Lower: 0x09BE, .Upper: 0x09C4 }, { .Lower: 0x09C7, .Upper: 0x09C8 },
497 { .Lower: 0x09CB, .Upper: 0x09CD }, { .Lower: 0x09DC, .Upper: 0x09DD }, { .Lower: 0x09DF, .Upper: 0x09E3 },
498
499 // Digits (4)
500 { .Lower: 0x09E6, .Upper: 0x09EF },
501
502 // Bengali (2)
503 { .Lower: 0x09F0, .Upper: 0x09F1 },
504
505 // Gurmukhi (1)
506 { .Lower: 0x0A02, .Upper: 0x0A02 }, { .Lower: 0x0A05, .Upper: 0x0A0A }, { .Lower: 0x0A0F, .Upper: 0x0A10 },
507 { .Lower: 0x0A13, .Upper: 0x0A28 }, { .Lower: 0x0A2A, .Upper: 0x0A30 }, { .Lower: 0x0A32, .Upper: 0x0A33 },
508 { .Lower: 0x0A35, .Upper: 0x0A36 }, { .Lower: 0x0A38, .Upper: 0x0A39 }, { .Lower: 0x0A3E, .Upper: 0x0A42 },
509 { .Lower: 0x0A47, .Upper: 0x0A48 }, { .Lower: 0x0A4B, .Upper: 0x0A4D }, { .Lower: 0x0A59, .Upper: 0x0A5C },
510 { .Lower: 0x0A5E, .Upper: 0x0A5E },
511
512 // Digits (5)
513 { .Lower: 0x0A66, .Upper: 0x0A6F },
514
515 // Gurmukhi (2)
516 { .Lower: 0x0A74, .Upper: 0x0A74 },
517
518 // Gujarti
519 { .Lower: 0x0A81, .Upper: 0x0A83 }, { .Lower: 0x0A85, .Upper: 0x0A8B }, { .Lower: 0x0A8D, .Upper: 0x0A8D },
520 { .Lower: 0x0A8F, .Upper: 0x0A91 }, { .Lower: 0x0A93, .Upper: 0x0AA8 }, { .Lower: 0x0AAA, .Upper: 0x0AB0 },
521 { .Lower: 0x0AB2, .Upper: 0x0AB3 }, { .Lower: 0x0AB5, .Upper: 0x0AB9 }, { .Lower: 0x0ABD, .Upper: 0x0AC5 },
522 { .Lower: 0x0AC7, .Upper: 0x0AC9 }, { .Lower: 0x0ACB, .Upper: 0x0ACD }, { .Lower: 0x0AD0, .Upper: 0x0AD0 },
523 { .Lower: 0x0AE0, .Upper: 0x0AE0 },
524
525 // Digits (6)
526 { .Lower: 0x0AE6, .Upper: 0x0AEF },
527
528 // Oriya and Special character 0x0B3D
529 { .Lower: 0x0B01, .Upper: 0x0B03 }, { .Lower: 0x0B05, .Upper: 0x0B0C }, { .Lower: 0x0B0F, .Upper: 0x0B10 },
530 { .Lower: 0x0B13, .Upper: 0x0B28 }, { .Lower: 0x0B2A, .Upper: 0x0B30 }, { .Lower: 0x0B32, .Upper: 0x0B33 },
531 { .Lower: 0x0B36, .Upper: 0x0B39 }, { .Lower: 0x0B3D, .Upper: 0x0B43 }, { .Lower: 0x0B47, .Upper: 0x0B48 },
532 { .Lower: 0x0B4B, .Upper: 0x0B4D }, { .Lower: 0x0B5C, .Upper: 0x0B5D }, { .Lower: 0x0B5F, .Upper: 0x0B61 },
533
534 // Digits (7)
535 { .Lower: 0x0B66, .Upper: 0x0B6F },
536
537 // Tamil
538 { .Lower: 0x0B82, .Upper: 0x0B83 }, { .Lower: 0x0B85, .Upper: 0x0B8A }, { .Lower: 0x0B8E, .Upper: 0x0B90 },
539 { .Lower: 0x0B92, .Upper: 0x0B95 }, { .Lower: 0x0B99, .Upper: 0x0B9A }, { .Lower: 0x0B9C, .Upper: 0x0B9C },
540 { .Lower: 0x0B9E, .Upper: 0x0B9F }, { .Lower: 0x0BA3, .Upper: 0x0BA4 }, { .Lower: 0x0BA8, .Upper: 0x0BAA },
541 { .Lower: 0x0BAE, .Upper: 0x0BB5 }, { .Lower: 0x0BB7, .Upper: 0x0BB9 }, { .Lower: 0x0BBE, .Upper: 0x0BC2 },
542 { .Lower: 0x0BC6, .Upper: 0x0BC8 }, { .Lower: 0x0BCA, .Upper: 0x0BCD },
543
544 // Digits (8)
545 { .Lower: 0x0BE7, .Upper: 0x0BEF },
546
547 // Telugu
548 { .Lower: 0x0C01, .Upper: 0x0C03 }, { .Lower: 0x0C05, .Upper: 0x0C0C }, { .Lower: 0x0C0E, .Upper: 0x0C10 },
549 { .Lower: 0x0C12, .Upper: 0x0C28 }, { .Lower: 0x0C2A, .Upper: 0x0C33 }, { .Lower: 0x0C35, .Upper: 0x0C39 },
550 { .Lower: 0x0C3E, .Upper: 0x0C44 }, { .Lower: 0x0C46, .Upper: 0x0C48 }, { .Lower: 0x0C4A, .Upper: 0x0C4D },
551 { .Lower: 0x0C60, .Upper: 0x0C61 },
552
553 // Digits (9)
554 { .Lower: 0x0C66, .Upper: 0x0C6F },
555
556 // Kannada
557 { .Lower: 0x0C82, .Upper: 0x0C83 }, { .Lower: 0x0C85, .Upper: 0x0C8C }, { .Lower: 0x0C8E, .Upper: 0x0C90 },
558 { .Lower: 0x0C92, .Upper: 0x0CA8 }, { .Lower: 0x0CAA, .Upper: 0x0CB3 }, { .Lower: 0x0CB5, .Upper: 0x0CB9 },
559 { .Lower: 0x0CBE, .Upper: 0x0CC4 }, { .Lower: 0x0CC6, .Upper: 0x0CC8 }, { .Lower: 0x0CCA, .Upper: 0x0CCD },
560 { .Lower: 0x0CDE, .Upper: 0x0CDE }, { .Lower: 0x0CE0, .Upper: 0x0CE1 },
561
562 // Digits (10)
563 { .Lower: 0x0CE6, .Upper: 0x0CEF },
564
565 // Malayam
566 { .Lower: 0x0D02, .Upper: 0x0D03 }, { .Lower: 0x0D05, .Upper: 0x0D0C }, { .Lower: 0x0D0E, .Upper: 0x0D10 },
567 { .Lower: 0x0D12, .Upper: 0x0D28 }, { .Lower: 0x0D2A, .Upper: 0x0D39 }, { .Lower: 0x0D3E, .Upper: 0x0D43 },
568 { .Lower: 0x0D46, .Upper: 0x0D48 }, { .Lower: 0x0D4A, .Upper: 0x0D4D }, { .Lower: 0x0D60, .Upper: 0x0D61 },
569
570 // Digits (11)
571 { .Lower: 0x0D66, .Upper: 0x0D6F },
572
573 // Thai...including Digits { 0x0E50, 0x0E59 }
574 { .Lower: 0x0E01, .Upper: 0x0E3A }, { .Lower: 0x0E40, .Upper: 0x0E5B },
575
576 // Lao (1)
577 { .Lower: 0x0E81, .Upper: 0x0E82 }, { .Lower: 0x0E84, .Upper: 0x0E84 }, { .Lower: 0x0E87, .Upper: 0x0E88 },
578 { .Lower: 0x0E8A, .Upper: 0x0E8A }, { .Lower: 0x0E8D, .Upper: 0x0E8D }, { .Lower: 0x0E94, .Upper: 0x0E97 },
579 { .Lower: 0x0E99, .Upper: 0x0E9F }, { .Lower: 0x0EA1, .Upper: 0x0EA3 }, { .Lower: 0x0EA5, .Upper: 0x0EA5 },
580 { .Lower: 0x0EA7, .Upper: 0x0EA7 }, { .Lower: 0x0EAA, .Upper: 0x0EAB }, { .Lower: 0x0EAD, .Upper: 0x0EAE },
581 { .Lower: 0x0EB0, .Upper: 0x0EB9 }, { .Lower: 0x0EBB, .Upper: 0x0EBD }, { .Lower: 0x0EC0, .Upper: 0x0EC4 },
582 { .Lower: 0x0EC6, .Upper: 0x0EC6 }, { .Lower: 0x0EC8, .Upper: 0x0ECD },
583
584 // Digits (12)
585 { .Lower: 0x0ED0, .Upper: 0x0ED9 },
586
587 // Lao (2)
588 { .Lower: 0x0EDC, .Upper: 0x0EDD },
589
590 // Tibetan (1)
591 { .Lower: 0x0F00, .Upper: 0x0F00 }, { .Lower: 0x0F18, .Upper: 0x0F19 },
592
593 // Digits (13)
594 { .Lower: 0x0F20, .Upper: 0x0F33 },
595
596 // Tibetan (2)
597 { .Lower: 0x0F35, .Upper: 0x0F35 }, { .Lower: 0x0F37, .Upper: 0x0F37 }, { .Lower: 0x0F39, .Upper: 0x0F39 },
598 { .Lower: 0x0F3E, .Upper: 0x0F47 }, { .Lower: 0x0F49, .Upper: 0x0F69 }, { .Lower: 0x0F71, .Upper: 0x0F84 },
599 { .Lower: 0x0F86, .Upper: 0x0F8B }, { .Lower: 0x0F90, .Upper: 0x0F95 }, { .Lower: 0x0F97, .Upper: 0x0F97 },
600 { .Lower: 0x0F99, .Upper: 0x0FAD }, { .Lower: 0x0FB1, .Upper: 0x0FB7 }, { .Lower: 0x0FB9, .Upper: 0x0FB9 },
601
602 // Georgian
603 { .Lower: 0x10A0, .Upper: 0x10C5 }, { .Lower: 0x10D0, .Upper: 0x10F6 },
604
605 // Latin (3)
606 { .Lower: 0x1E00, .Upper: 0x1E9B }, { .Lower: 0x1EA0, .Upper: 0x1EF9 },
607
608 // Greek (2)
609 { .Lower: 0x1F00, .Upper: 0x1F15 }, { .Lower: 0x1F18, .Upper: 0x1F1D }, { .Lower: 0x1F20, .Upper: 0x1F45 },
610 { .Lower: 0x1F48, .Upper: 0x1F4D }, { .Lower: 0x1F50, .Upper: 0x1F57 }, { .Lower: 0x1F59, .Upper: 0x1F59 },
611 { .Lower: 0x1F5B, .Upper: 0x1F5B }, { .Lower: 0x1F5D, .Upper: 0x1F5D }, { .Lower: 0x1F5F, .Upper: 0x1F7D },
612 { .Lower: 0x1F80, .Upper: 0x1FB4 }, { .Lower: 0x1FB6, .Upper: 0x1FBC },
613
614 // Special characters (4)
615 { .Lower: 0x1FBE, .Upper: 0x1FBE },
616
617 // Greek (3)
618 { .Lower: 0x1FC2, .Upper: 0x1FC4 }, { .Lower: 0x1FC6, .Upper: 0x1FCC }, { .Lower: 0x1FD0, .Upper: 0x1FD3 },
619 { .Lower: 0x1FD6, .Upper: 0x1FDB }, { .Lower: 0x1FE0, .Upper: 0x1FEC }, { .Lower: 0x1FF2, .Upper: 0x1FF4 },
620 { .Lower: 0x1FF6, .Upper: 0x1FFC },
621
622 // Special characters (5)
623 { .Lower: 0x203F, .Upper: 0x2040 },
624
625 // Latin (4)
626 { .Lower: 0x207F, .Upper: 0x207F },
627
628 // Special characters (6)
629 { .Lower: 0x2102, .Upper: 0x2102 }, { .Lower: 0x2107, .Upper: 0x2107 }, { .Lower: 0x210A, .Upper: 0x2113 },
630 { .Lower: 0x2115, .Upper: 0x2115 }, { .Lower: 0x2118, .Upper: 0x211D }, { .Lower: 0x2124, .Upper: 0x2124 },
631 { .Lower: 0x2126, .Upper: 0x2126 }, { .Lower: 0x2128, .Upper: 0x2128 }, { .Lower: 0x212A, .Upper: 0x2131 },
632 { .Lower: 0x2133, .Upper: 0x2138 }, { .Lower: 0x2160, .Upper: 0x2182 }, { .Lower: 0x3005, .Upper: 0x3007 },
633 { .Lower: 0x3021, .Upper: 0x3029 },
634
635 // Hiragana
636 { .Lower: 0x3041, .Upper: 0x3093 }, { .Lower: 0x309B, .Upper: 0x309C },
637
638 // Katakana
639 { .Lower: 0x30A1, .Upper: 0x30F6 }, { .Lower: 0x30FB, .Upper: 0x30FC },
640
641 // Bopmofo [sic]
642 { .Lower: 0x3105, .Upper: 0x312C },
643
644 // CJK Unified Ideographs
645 { .Lower: 0x4E00, .Upper: 0x9FA5 },
646
647 // Hangul,
648 { .Lower: 0xAC00, .Upper: 0xD7A3 }
649};
650
651// C11 D.2, C++11 [charname.disallowed]
652static const llvm::sys::UnicodeCharRange C11DisallowedInitialIDCharRanges[] = {
653 { .Lower: 0x0300, .Upper: 0x036F }, { .Lower: 0x1DC0, .Upper: 0x1DFF }, { .Lower: 0x20D0, .Upper: 0x20FF },
654 { .Lower: 0xFE20, .Upper: 0xFE2F }
655};
656
657// C99 6.4.2.1p3: The initial character [of an identifier] shall not be a
658// universal character name designating a digit.
659// C99 Annex D defines these characters as "Digits".
660static const llvm::sys::UnicodeCharRange C99DisallowedInitialIDCharRanges[] = {
661 { .Lower: 0x0660, .Upper: 0x0669 }, { .Lower: 0x06F0, .Upper: 0x06F9 }, { .Lower: 0x0966, .Upper: 0x096F },
662 { .Lower: 0x09E6, .Upper: 0x09EF }, { .Lower: 0x0A66, .Upper: 0x0A6F }, { .Lower: 0x0AE6, .Upper: 0x0AEF },
663 { .Lower: 0x0B66, .Upper: 0x0B6F }, { .Lower: 0x0BE7, .Upper: 0x0BEF }, { .Lower: 0x0C66, .Upper: 0x0C6F },
664 { .Lower: 0x0CE6, .Upper: 0x0CEF }, { .Lower: 0x0D66, .Upper: 0x0D6F }, { .Lower: 0x0E50, .Upper: 0x0E59 },
665 { .Lower: 0x0ED0, .Upper: 0x0ED9 }, { .Lower: 0x0F20, .Upper: 0x0F33 }
666};
667
668// Unicode v6.2, chapter 6.2, table 6-2.
669static const llvm::sys::UnicodeCharRange UnicodeWhitespaceCharRanges[] = {
670 { .Lower: 0x0085, .Upper: 0x0085 }, { .Lower: 0x00A0, .Upper: 0x00A0 }, { .Lower: 0x1680, .Upper: 0x1680 },
671 { .Lower: 0x180E, .Upper: 0x180E }, { .Lower: 0x2000, .Upper: 0x200A }, { .Lower: 0x2028, .Upper: 0x2029 },
672 { .Lower: 0x202F, .Upper: 0x202F }, { .Lower: 0x205F, .Upper: 0x205F }, { .Lower: 0x3000, .Upper: 0x3000 }
673};
674
675#endif
676