Source file iso.ml
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
open Sedlex_cset
let tr8876_ident_char =
  let l =
    [
      
      (0x0041, 0x005a);
      (0x0061, 0x007a);
      
      (0x00c0, 0x00d6);
      (0x00d8, 0x00f6);
      (0x00f8, 0x01f5);
      (0x01fa, 0x0217);
      (0x0250, 0x02a8);
      
      (0x0384, 0x0384);
      (0x0388, 0x038a);
      (0x038c, 0x038c);
      (0x038e, 0x03a1);
      (0x03a3, 0x03ce);
      (0x03d0, 0x03d6);
      (0x03da, 0x03da);
      (0x03dc, 0x03dc);
      (0x03de, 0x03de);
      (0x03e0, 0x03e0);
      (0x03e2, 0x03f3);
      
      (0x0401, 0x040d);
      (0x040f, 0x044f);
      (0x0451, 0x045c);
      (0x045e, 0x0481);
      (0x0490, 0x04c4);
      (0x04c7, 0x04c4);
      (0x04cb, 0x04cc);
      (0x04d0, 0x04eb);
      (0x04ee, 0x04f5);
      (0x04f8, 0x04f9);
      
      (0x0531, 0x0556);
      (0x0561, 0x0587);
      (0x04d0, 0x04eb);
      
      (0x05d0, 0x05ea);
      (0x05f0, 0x05f4);
      
      (0x0621, 0x063a);
      (0x0640, 0x0652);
      (0x0670, 0x06b7);
      (0x06ba, 0x06be);
      (0x06c0, 0x06ce);
      (0x06e5, 0x06e7);
      
      (0x0905, 0x0939);
      (0x0958, 0x0962);
      
      (0x0985, 0x098c);
      (0x098f, 0x0990);
      (0x0993, 0x09a8);
      (0x09aa, 0x09b0);
      (0x09b2, 0x09b2);
      (0x09b6, 0x09b9);
      (0x09dc, 0x09dd);
      (0x09df, 0x09e1);
      (0x09f0, 0x09f1);
      
      (0x0a05, 0x0a0a);
      (0x0a0f, 0x0a10);
      (0x0a13, 0x0a28);
      (0x0a2a, 0x0a30);
      (0x0a32, 0x0a33);
      (0x0a35, 0x0a36);
      (0x0a38, 0x0a39);
      (0x0a59, 0x0a5c);
      (0x0a5e, 0x0a5e);
      
      (0x0a85, 0x0a8b);
      (0x0a8d, 0x0a8d);
      (0x0a8f, 0x0a91);
      (0x0a93, 0x0aa8);
      (0x0aaa, 0x0ab0);
      (0x0ab2, 0x0ab3);
      (0x0ab5, 0x0ab9);
      (0x0ae0, 0x0ae0);
      
      (0x0b05, 0x0b0c);
      (0x0b0f, 0x0b10);
      (0x0b13, 0x0b28);
      (0x0b2a, 0x0b30);
      (0x0b32, 0x0b33);
      (0x0b36, 0x0b39);
      (0x0b5c, 0x0b5d);
      (0x0b5f, 0x0b61);
      
      (0x0b85, 0x0b8a);
      (0x0b8e, 0x0b90);
      (0x0b92, 0x0b95);
      (0x0b99, 0x0b9a);
      (0x0b9c, 0x0b9c);
      (0x0b9e, 0x0b9f);
      (0x0ba3, 0x0ba4);
      (0x0ba8, 0x0baa);
      (0x0bae, 0x0bb5);
      (0x0bb7, 0x0bb9);
      
      (0x0c05, 0x0c0c);
      (0x0c0e, 0x0c10);
      (0x0c12, 0x0c28);
      (0x0c2a, 0x0c33);
      (0x0c35, 0x0c39);
      (0x0c60, 0x0c61);
      
      (0x0c85, 0x0c8c);
      (0x0c8e, 0x0c90);
      (0x0c92, 0x0ca8);
      (0x0caa, 0x0cb3);
      (0x0cb5, 0x0cb9);
      (0x0ce0, 0x0ce1);
      
      (0x0d05, 0x0d0c);
      (0x0d0e, 0x0d10);
      (0x0d12, 0x0d28);
      (0x0d2a, 0x0d39);
      (0x0d60, 0x0d61);
      
      (0x0e01, 0x0e30);
      (0x0e32, 0x0e33);
      (0x0e40, 0x0e46);
      (0x0e4f, 0x0e5b);
      
      (0x0e81, 0x0e82);
      (0x0e84, 0x0e84);
      (0x0e87, 0x0e88);
      (0x0e8a, 0x0e8a);
      (0x0e0d, 0x0e0d);
      (0x0e94, 0x0e97);
      (0x0e99, 0x0e9f);
      (0x0ea1, 0x0ea3);
      (0x0ea5, 0x0ea5);
      (0x0ea7, 0x0ea7);
      (0x0eaa, 0x0eab);
      (0x0ead, 0x0eb0);
      (0x0eb2, 0x0eb3);
      (0x0ebd, 0x0ebd);
      (0x0ec0, 0x0ec4);
      (0x0ec6, 0x0ec6);
      
      (0x10a0, 0x10c5);
      (0x10d0, 0x10f6);
      
      (0x1100, 0x1159);
      (0x1161, 0x11a2);
      (0x11a8, 0x11f9);
      (0x11d0, 0x11f6);
      
      (0x1e00, 0x1e9a);
      (0x1ea0, 0x1ef9);
      
      (0x1f00, 0x1f15);
      (0x1f18, 0x1f1d);
      (0x1f20, 0x1f45);
      (0x1f48, 0x1f4d);
      (0x1f50, 0x1f57);
      (0x1f59, 0x1f59);
      (0x1f5b, 0x1f5b);
      (0x1f5d, 0x1f5d);
      (0x1f5f, 0x1f7d);
      (0x1f80, 0x1fb4);
      (0x1fb6, 0x1fbc);
      (0x1fc2, 0x1fc4);
      (0x1fc6, 0x1fcc);
      (0x1fd0, 0x1fd3);
      (0x1fd6, 0x1fdb);
      (0x1fe0, 0x1fec);
      (0x1ff2, 0x1ff4);
      (0x1ff6, 0x1ffc);
      
      (0x3041, 0x3094);
      (0x309b, 0x309e);
      
      (0x30a1, 0x30fe);
      
      (0x3105, 0x312c);
      
      (0x4e00, 0x9fa5);
      
      (0xf900, 0xfa2d);
      
      (0xfb1f, 0xfb36);
      (0xfb38, 0xfb3c);
      (0xfb3e, 0xfb3e);
      (0xfb40, 0xfb41);
      (0xfb42, 0xfb44);
      (0xfb46, 0xfbb1);
      (0xfbd3, 0xfd35);
      
      (0xfd50, 0xfd85);
      (0xfd92, 0xfbc7);
      (0xfdf0, 0xfdfb);
      
      (0xfe70, 0xfe72);
      (0xfe74, 0xfe74);
      (0xfe76, 0xfefc);
      
      (0xff21, 0xff3a);
      (0xff41, 0xff5a);
      (0xff66, 0xffbe);
      (0xffc2, 0xffc7);
      (0xffca, 0xffcf);
      (0xffd2, 0xffd7);
      (0xffd2, 0xffd7);
      (0xffda, 0xffdc);
    ]
  in
  union_list (List.map (fun (a, b) -> interval a b) l)