001: /*
002: * Licensed to the Apache Software Foundation (ASF) under one or more
003: * contributor license agreements. See the NOTICE file distributed with
004: * this work for additional information regarding copyright ownership.
005: * The ASF licenses this file to You under the Apache License, Version 2.0
006: * (the "License"); you may not use this file except in compliance with
007: * the License. You may obtain a copy of the License at
008: *
009: * http://www.apache.org/licenses/LICENSE-2.0
010: *
011: * Unless required by applicable law or agreed to in writing, software
012: * distributed under the License is distributed on an "AS IS" BASIS,
013: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
014: * See the License for the specific language governing permissions and
015: * limitations under the License.
016: */
017:
018: package java.util.regex;
019:
020: /**
021: * This class gives us a hashtable that contains canonical
022: * classes that are generated from
023: * http://www.unicode.org/Public/4.0-Update/UnicodeData-4.0.0.txt.
024: */
025: class CanClasses {
026:
027: private static IntHash table = null;
028:
029: private CanClasses() {
030: }
031:
032: public static IntHash getHashCanClasses() {
033: if (table != null) {
034: return table;
035: } else {
036: table = new IntHash(384);
037: table.put(0x20D0, 230);
038: table.put(0x0A4D, 9);
039: table.put(0x0E49, 107);
040: table.put(0x0954, 230);
041: table.put(0x0E48, 107);
042: table.put(0x0953, 230);
043: table.put(0x0952, 220);
044: table.put(0x0951, 230);
045: table.put(0x094D, 9);
046: table.put(0x0E3A, 9);
047: table.put(0x17DD, 230);
048: table.put(0x0A3C, 7);
049: table.put(0x0E39, 103);
050: table.put(0x0E38, 103);
051: table.put(0x17D2, 9);
052: table.put(0x093C, 7);
053: table.put(0x06ED, 220);
054: table.put(0x06EC, 230);
055: table.put(0x06EB, 230);
056: table.put(0x06EA, 220);
057: table.put(0x06E8, 230);
058: table.put(0x06E7, 230);
059: table.put(0x06E4, 230);
060: table.put(0x06E3, 220);
061: table.put(0x06E2, 230);
062: table.put(0x06E1, 230);
063: table.put(0x06E0, 230);
064: table.put(0x06DF, 230);
065: table.put(0x06DC, 230);
066: table.put(0x06DB, 230);
067: table.put(0x06DA, 230);
068: table.put(0x0BCD, 9);
069: table.put(0x0486, 230);
070: table.put(0x0485, 230);
071: table.put(0x0484, 230);
072: table.put(0x0FC6, 220);
073: table.put(0x0483, 230);
074: table.put(0x06D9, 230);
075: table.put(0x06D8, 230);
076: table.put(0x06D7, 230);
077: table.put(0x06D6, 230);
078: table.put(0xA806, 9);
079: table.put(0x193B, 220);
080: table.put(0x193A, 230);
081: table.put(0x1939, 222);
082: table.put(0x0D4D, 9);
083: table.put(0x1A18, 220);
084: table.put(0x1A17, 230);
085: table.put(0x1D1AD, 230);
086: table.put(0x1D1AC, 230);
087: table.put(0x1D1AB, 230);
088: table.put(0x1D1AA, 230);
089: table.put(0xFB1E, 26);
090: table.put(0x0ECB, 122);
091: table.put(0x0ECA, 122);
092: table.put(0x0ACD, 9);
093: table.put(0x0EC9, 122);
094: table.put(0x0EC8, 122);
095: table.put(0x09CD, 9);
096: table.put(0x0ABC, 7);
097: table.put(0x0EB9, 118);
098: table.put(0x0EB8, 118);
099: table.put(0x05C7, 18);
100: table.put(0x05C5, 220);
101: table.put(0x05C4, 230);
102: table.put(0x05C2, 25);
103: table.put(0x05C1, 24);
104: table.put(0x036F, 230);
105: table.put(0x036E, 230);
106: table.put(0x09BC, 7);
107: table.put(0x036D, 230);
108: table.put(0x036C, 230);
109: table.put(0x036B, 230);
110: table.put(0x036A, 230);
111: table.put(0x05BF, 23);
112: table.put(0x05BD, 22);
113: table.put(0x05BC, 21);
114: table.put(0x05BB, 20);
115: table.put(0x0C56, 91);
116: table.put(0x0C55, 84);
117: table.put(0x0369, 230);
118: table.put(0x0368, 230);
119: table.put(0x0367, 230);
120: table.put(0x0366, 230);
121: table.put(0x0365, 230);
122: table.put(0x0364, 230);
123: table.put(0x0363, 230);
124: table.put(0x0362, 233);
125: table.put(0x05B9, 19);
126: table.put(0x0361, 234);
127: table.put(0x05B8, 18);
128: table.put(0x0360, 234);
129: table.put(0x05B7, 17);
130: table.put(0x05B6, 16);
131: table.put(0x05B5, 15);
132: table.put(0x05B4, 14);
133: table.put(0x05B3, 13);
134: table.put(0x05B2, 12);
135: table.put(0x05B1, 11);
136: table.put(0x0C4D, 9);
137: table.put(0x05B0, 10);
138: table.put(0x035F, 233);
139: table.put(0x035E, 234);
140: table.put(0x035D, 234);
141: table.put(0x035C, 233);
142: table.put(0x035B, 230);
143: table.put(0x035A, 220);
144: table.put(0x05AF, 230);
145: table.put(0x05AE, 228);
146: table.put(0x05AD, 222);
147: table.put(0x05AC, 230);
148: table.put(0x05AB, 230);
149: table.put(0x05AA, 220);
150: table.put(0x1039, 9);
151: table.put(0x0359, 220);
152: table.put(0x0358, 232);
153: table.put(0x1037, 7);
154: table.put(0x0357, 230);
155: table.put(0x0356, 220);
156: table.put(0x0355, 220);
157: table.put(0x0354, 220);
158: table.put(0x0353, 220);
159: table.put(0x0352, 230);
160: table.put(0x05A9, 230);
161: table.put(0x0351, 230);
162: table.put(0x05A8, 230);
163: table.put(0x0350, 230);
164: table.put(0x05A7, 220);
165: table.put(0x05A6, 220);
166: table.put(0x05A5, 220);
167: table.put(0x05A4, 220);
168: table.put(0x05A3, 220);
169: table.put(0x05A2, 220);
170: table.put(0x074A, 230);
171: table.put(0x05A1, 230);
172: table.put(0x05A0, 230);
173: table.put(0x034E, 220);
174: table.put(0x034D, 220);
175: table.put(0x034C, 230);
176: table.put(0x034B, 230);
177: table.put(0x0749, 230);
178: table.put(0x034A, 230);
179: table.put(0x0748, 220);
180: table.put(0x0747, 230);
181: table.put(0x0746, 220);
182: table.put(0x0745, 230);
183: table.put(0x0744, 220);
184: table.put(0x0743, 230);
185: table.put(0x0742, 220);
186: table.put(0x0741, 230);
187: table.put(0x0349, 220);
188: table.put(0x0740, 230);
189: table.put(0x0348, 220);
190: table.put(0x0347, 220);
191: table.put(0x0346, 230);
192: table.put(0x0345, 240);
193: table.put(0x0344, 230);
194: table.put(0x0343, 230);
195: table.put(0x0342, 230);
196: table.put(0x0341, 230);
197: table.put(0x0340, 230);
198: table.put(0x073F, 230);
199: table.put(0x073E, 220);
200: table.put(0x073D, 230);
201: table.put(0x073C, 220);
202: table.put(0x073B, 220);
203: table.put(0x073A, 230);
204: table.put(0x309A, 8);
205: table.put(0x033F, 230);
206: table.put(0x033E, 230);
207: table.put(0x033D, 230);
208: table.put(0x033C, 220);
209: table.put(0x033B, 220);
210: table.put(0x0739, 220);
211: table.put(0x033A, 220);
212: table.put(0x0738, 220);
213: table.put(0x0737, 220);
214: table.put(0x0736, 230);
215: table.put(0x3099, 8);
216: table.put(0x0735, 230);
217: table.put(0xFE23, 230);
218: table.put(0x0734, 220);
219: table.put(0x0F87, 230);
220: table.put(0xFE22, 230);
221: table.put(0x0733, 230);
222: table.put(0x0F86, 230);
223: table.put(0xFE21, 230);
224: table.put(0x0732, 230);
225: table.put(0xFE20, 230);
226: table.put(0x0731, 220);
227: table.put(0x0F84, 9);
228: table.put(0x0339, 220);
229: table.put(0x0730, 230);
230: table.put(0x0F83, 230);
231: table.put(0x0338, 1);
232: table.put(0x0F82, 230);
233: table.put(0x0337, 1);
234: table.put(0x0336, 1);
235: table.put(0x0F80, 130);
236: table.put(0x0335, 1);
237: table.put(0x0334, 1);
238: table.put(0x0333, 220);
239: table.put(0x0332, 220);
240: table.put(0x0331, 220);
241: table.put(0x0330, 220);
242: table.put(0x1D244, 230);
243: table.put(0x1D243, 230);
244: table.put(0x1D242, 230);
245: table.put(0x0F7D, 130);
246: table.put(0x0F7C, 130);
247: table.put(0x0F7B, 130);
248: table.put(0x0F7A, 130);
249: table.put(0x032F, 220);
250: table.put(0x032E, 220);
251: table.put(0x032D, 220);
252: table.put(0x032C, 220);
253: table.put(0x032B, 220);
254: table.put(0x032A, 220);
255: table.put(0x0F74, 132);
256: table.put(0x0329, 220);
257: table.put(0x0328, 202);
258: table.put(0x0F72, 130);
259: table.put(0x0327, 202);
260: table.put(0x0DCA, 9);
261: table.put(0x0F71, 129);
262: table.put(0x0326, 220);
263: table.put(0x0325, 220);
264: table.put(0x0324, 220);
265: table.put(0x0323, 220);
266: table.put(0x0322, 202);
267: table.put(0x0321, 202);
268: table.put(0x0320, 220);
269: table.put(0x10A3F, 9);
270: table.put(0x135F, 230);
271: table.put(0x10A3A, 220);
272: table.put(0x031F, 220);
273: table.put(0x031E, 220);
274: table.put(0x031D, 220);
275: table.put(0x031C, 220);
276: table.put(0x031B, 216);
277: table.put(0x031A, 232);
278: table.put(0x10A39, 1);
279: table.put(0x10A38, 230);
280: table.put(0x0711, 36);
281: table.put(0x0319, 220);
282: table.put(0x0318, 220);
283: table.put(0x0317, 220);
284: table.put(0x0316, 220);
285: table.put(0x0315, 232);
286: table.put(0x0314, 230);
287: table.put(0x1D18B, 220);
288: table.put(0x0313, 230);
289: table.put(0x1D18A, 220);
290: table.put(0x0312, 230);
291: table.put(0x0311, 230);
292: table.put(0x0670, 35);
293: table.put(0x0310, 230);
294: table.put(0x1D189, 230);
295: table.put(0x1D188, 230);
296: table.put(0x1D187, 230);
297: table.put(0x1D186, 230);
298: table.put(0x030F, 230);
299: table.put(0x1D185, 230);
300: table.put(0x030E, 230);
301: table.put(0x030D, 230);
302: table.put(0x030C, 230);
303: table.put(0x1D182, 220);
304: table.put(0x030B, 230);
305: table.put(0x1D181, 220);
306: table.put(0x030A, 230);
307: table.put(0x1D180, 220);
308: table.put(0x0309, 230);
309: table.put(0x0308, 230);
310: table.put(0x1D17F, 220);
311: table.put(0x0307, 230);
312: table.put(0x1D17E, 220);
313: table.put(0x0306, 230);
314: table.put(0x1D17D, 220);
315: table.put(0x0305, 230);
316: table.put(0x1D17C, 220);
317: table.put(0x0304, 230);
318: table.put(0x1D17B, 220);
319: table.put(0x0303, 230);
320: table.put(0x0302, 230);
321: table.put(0x0301, 230);
322: table.put(0x0300, 230);
323: table.put(0x065E, 230);
324: table.put(0x065D, 230);
325: table.put(0x065C, 220);
326: table.put(0x065B, 230);
327: table.put(0x1D172, 216);
328: table.put(0x065A, 230);
329: table.put(0x1D171, 216);
330: table.put(0x0B4D, 9);
331: table.put(0x1D170, 216);
332: table.put(0x1734, 9);
333: table.put(0x0659, 230);
334: table.put(0x0658, 230);
335: table.put(0x0657, 230);
336: table.put(0x1D16F, 216);
337: table.put(0x0656, 220);
338: table.put(0x1D16E, 216);
339: table.put(0x0655, 220);
340: table.put(0x1D16D, 226);
341: table.put(0x0654, 230);
342: table.put(0x0653, 230);
343: table.put(0x0652, 34);
344: table.put(0x0651, 33);
345: table.put(0x0650, 32);
346: table.put(0x10A0F, 230);
347: table.put(0x10A0D, 220);
348: table.put(0x1D169, 1);
349: table.put(0x1D168, 1);
350: table.put(0x1D167, 1);
351: table.put(0x064F, 31);
352: table.put(0x1D166, 216);
353: table.put(0x064E, 30);
354: table.put(0x1D165, 216);
355: table.put(0x064D, 29);
356: table.put(0x064C, 28);
357: table.put(0x064B, 27);
358: table.put(0x0B3C, 7);
359: table.put(0x0F39, 216);
360: table.put(0x0F37, 220);
361: table.put(0x0F35, 220);
362: table.put(0x1DC3, 230);
363: table.put(0x1DC2, 220);
364: table.put(0x1DC1, 230);
365: table.put(0x1DC0, 230);
366: table.put(0x059F, 230);
367: table.put(0x1714, 9);
368: table.put(0x059E, 230);
369: table.put(0x059D, 230);
370: table.put(0x059C, 230);
371: table.put(0x059B, 220);
372: table.put(0x059A, 222);
373: table.put(0x0599, 230);
374: table.put(0x0598, 230);
375: table.put(0x0597, 230);
376: table.put(0x0596, 220);
377: table.put(0x0595, 230);
378: table.put(0x0594, 230);
379: table.put(0x0593, 230);
380: table.put(0x302F, 224);
381: table.put(0x0592, 230);
382: table.put(0x302E, 224);
383: table.put(0x0591, 220);
384: table.put(0x302D, 222);
385: table.put(0x302C, 232);
386: table.put(0x302B, 228);
387: table.put(0x302A, 218);
388: table.put(0x0F19, 220);
389: table.put(0x0F18, 220);
390: table.put(0x0CCD, 9);
391: table.put(0x0615, 230);
392: table.put(0x0614, 230);
393: table.put(0x18A9, 228);
394: table.put(0x0613, 230);
395: table.put(0x0612, 230);
396: table.put(0x0611, 230);
397: table.put(0x0CBC, 7);
398: table.put(0x0610, 230);
399: table.put(0x20EB, 1);
400: table.put(0x20EA, 1);
401: table.put(0x20E9, 230);
402: table.put(0x20E8, 220);
403: table.put(0x20E7, 230);
404: table.put(0x20E6, 1);
405: table.put(0x20E5, 1);
406: table.put(0x20E1, 230);
407: table.put(0x20DC, 230);
408: table.put(0x20DB, 230);
409: table.put(0x20DA, 1);
410: table.put(0x20D9, 1);
411: table.put(0x20D8, 1);
412: table.put(0x20D7, 230);
413: table.put(0x20D6, 230);
414: table.put(0x0E4B, 107);
415: table.put(0x20D5, 230);
416: table.put(0x0E4A, 107);
417: table.put(0x20D4, 230);
418: table.put(0x20D3, 1);
419: table.put(0x20D2, 1);
420: table.put(0x20D1, 230);
421: return table;
422: }
423: }
424: }
|