1 /*
2 * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
227 case 0x10121: retval = 900; break; // AEGEAN NUMBER NINE HUNDRED
228 case 0x10122: retval = 1000; break; // AEGEAN NUMBER ONE THOUSAND
229 case 0x10123: retval = 2000; break; // AEGEAN NUMBER TWO THOUSAND
230 case 0x10124: retval = 3000; break; // AEGEAN NUMBER THREE THOUSAND
231 case 0x10125: retval = 4000; break; // AEGEAN NUMBER FOUR THOUSAND
232 case 0x10126: retval = 5000; break; // AEGEAN NUMBER FIVE THOUSAND
233 case 0x10127: retval = 6000; break; // AEGEAN NUMBER SIX THOUSAND
234 case 0x10128: retval = 7000; break; // AEGEAN NUMBER SEVEN THOUSAND
235 case 0x10129: retval = 8000; break; // AEGEAN NUMBER EIGHT THOUSAND
236 case 0x1012A: retval = 9000; break; // AEGEAN NUMBER NINE THOUSAND
237 case 0x1012B: retval = 10000; break; // AEGEAN NUMBER TEN THOUSAND
238 case 0x1012C: retval = 20000; break; // AEGEAN NUMBER TWENTY THOUSAND
239 case 0x1012D: retval = 30000; break; // AEGEAN NUMBER THIRTY THOUSAND
240 case 0x1012E: retval = 40000; break; // AEGEAN NUMBER FORTY THOUSAND
241 case 0x1012F: retval = 50000; break; // AEGEAN NUMBER FIFTY THOUSAND
242 case 0x10130: retval = 60000; break; // AEGEAN NUMBER SIXTY THOUSAND
243 case 0x10131: retval = 70000; break; // AEGEAN NUMBER SEVENTY THOUSAND
244 case 0x10132: retval = 80000; break; // AEGEAN NUMBER EIGHTY THOUSAND
245 case 0x10133: retval = 90000; break; // AEGEAN NUMBER NINETY THOUSAND
246 case 0x10323: retval = 50; break; // OLD ITALIC NUMERAL FIFTY
247
248 case 0x010144: retval = 50; break; // ACROPHONIC ATTIC FIFTY
249 case 0x010145: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED
250 case 0x010146: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND
251 case 0x010147: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND
252 case 0x01014A: retval = 50; break; // ACROPHONIC ATTIC FIFTY TALENTS
253 case 0x01014B: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED TALENTS
254 case 0x01014C: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED TALENTS
255 case 0x01014D: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND TALENTS
256 case 0x01014E: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND TALENTS
257 case 0x010151: retval = 50; break; // ACROPHONIC ATTIC FIFTY STATERS
258 case 0x010152: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED STATERS
259 case 0x010153: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED STATERS
260 case 0x010154: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND STATERS
261 case 0x010155: retval = 10000; break; // ACROPHONIC ATTIC TEN THOUSAND STATERS
262 case 0x010156: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND STATERS
263 case 0x010166: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY
264 case 0x010167: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
265 case 0x010168: retval = 50; break; // ACROPHONIC HERMIONIAN FIFTY
266 case 0x010169: retval = 50; break; // ACROPHONIC THESPIAN FIFTY
267 case 0x01016A: retval = 100; break; // ACROPHONIC THESPIAN ONE HUNDRED
268 case 0x01016B: retval = 300; break; // ACROPHONIC THESPIAN THREE HUNDRED
269 case 0x01016C: retval = 500; break; // ACROPHONIC EPIDAUREAN FIVE HUNDRED
270 case 0x01016D: retval = 500; break; // ACROPHONIC TROEZENIAN FIVE HUNDRED
271 case 0x01016E: retval = 500; break; // ACROPHONIC THESPIAN FIVE HUNDRED
272 case 0x01016F: retval = 500; break; // ACROPHONIC CARYSTIAN FIVE HUNDRED
273 case 0x010170: retval = 500; break; // ACROPHONIC NAXIAN FIVE HUNDRED
274 case 0x010171: retval = 1000; break; // ACROPHONIC THESPIAN ONE THOUSAND
275 case 0x010172: retval = 5000; break; // ACROPHONIC THESPIAN FIVE THOUSAND
276 case 0x010174: retval = 50; break; // ACROPHONIC STRATIAN FIFTY MNAS
277 case 0x010341: retval = 90; break; // GOTHIC LETTER NINETY
278 case 0x01034A: retval = 900; break; // GOTHIC LETTER NINE HUNDRED
279 case 0x0103D5: retval = 100; break; // OLD PERSIAN NUMBER HUNDRED
280 case 0x01085D: retval = 100; break; // IMPERIAL ARAMAIC NUMBER ONE HUNDRED
281 case 0x01085E: retval = 1000; break; // IMPERIAL ARAMAIC NUMBER ONE THOUSAND
282 case 0x01085F: retval = 10000; break; // IMPERIAL ARAMAIC NUMBER TEN THOUSAND
283 case 0x010919: retval = 100; break; // PHOENICIAN NUMBER ONE HUNDRED
284 case 0x010A46: retval = 100; break; // KHAROSHTHI NUMBER ONE HUNDRED
285 case 0x010A47: retval = 1000; break; // KHAROSHTHI NUMBER ONE THOUSAND
286 case 0x010A7E: retval = 50; break; // OLD SOUTH ARABIAN NUMBER FIFTY
287 case 0x010B5E: retval = 100; break; // INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
288 case 0x010B5F: retval = 1000; break; // INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
289 case 0x010B7E: retval = 100; break; // INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
290 case 0x010B7F: retval = 1000; break; // INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
291 case 0x010E6C: retval = 40; break; // RUMI NUMBER FORTY
292 case 0x010E6D: retval = 50; break; // RUMI NUMBER FIFTY
293 case 0x010E6E: retval = 60; break; // RUMI NUMBER SIXTY
294 case 0x010E6F: retval = 70; break; // RUMI NUMBER SEVENTY
295 case 0x010E70: retval = 80; break; // RUMI NUMBER EIGHTY
296 case 0x010E71: retval = 90; break; // RUMI NUMBER NINETY
297 case 0x010E72: retval = 100; break; // RUMI NUMBER ONE HUNDRED
298 case 0x010E73: retval = 200; break; // RUMI NUMBER TWO HUNDRED
299 case 0x010E74: retval = 300; break; // RUMI NUMBER THREE HUNDRED
300 case 0x010E75: retval = 400; break; // RUMI NUMBER FOUR HUNDRED
301 case 0x010E76: retval = 500; break; // RUMI NUMBER FIVE HUNDRED
302 case 0x010E77: retval = 600; break; // RUMI NUMBER SIX HUNDRED
303 case 0x010E78: retval = 700; break; // RUMI NUMBER SEVEN HUNDRED
304 case 0x010E79: retval = 800; break; // RUMI NUMBER EIGHT HUNDRED
305 case 0x010E7A: retval = 900; break; // RUMI NUMBER NINE HUNDRED
306 case 0x01105E: retval = 40; break; // BRAHMI NUMBER FORTY
307 case 0x01105F: retval = 50; break; // BRAHMI NUMBER FIFTY
308 case 0x011060: retval = 60; break; // BRAHMI NUMBER SIXTY
309 case 0x011061: retval = 70; break; // BRAHMI NUMBER SEVENTY
310 case 0x011062: retval = 80; break; // BRAHMI NUMBER EIGHTY
311 case 0x011063: retval = 90; break; // BRAHMI NUMBER NINETY
312 case 0x011064: retval = 100; break; // BRAHMI NUMBER ONE HUNDRED
313 case 0x011065: retval = 1000; break; // BRAHMI NUMBER ONE THOUSAND
314 case 0x012432: retval = 216000; break; // CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
315 case 0x012433: retval = 432000; break; // CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
316 case 0x01D36C: retval = 40; break; // COUNTING ROD TENS DIGIT FOUR
317 case 0x01D36D: retval = 50; break; // COUNTING ROD TENS DIGIT FIVE
318 case 0x01D36E: retval = 60; break; // COUNTING ROD TENS DIGIT SIX
319 case 0x01D36F: retval = 70; break; // COUNTING ROD TENS DIGIT SEVEN
320 case 0x01D370: retval = 80; break; // COUNTING ROD TENS DIGIT EIGHT
321 case 0x01D371: retval = 90; break; // COUNTING ROD TENS DIGIT NINE
322 default: retval = -2; break;
323 }
324
325 break;
326 case ($$valueJavaSupradecimal): // Java supradecimal
327 retval = (ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit) + 10;
328 break;
329 }
330 return retval;
331 }
332
333 boolean isWhitespace(int ch) {
334 int props = getProperties(ch);
335 return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
336 }
337
338 byte getDirectionality(int ch) {
339 int val = getProperties(ch);
340 byte directionality = (byte)((val & $$maskBidi) >> $$shiftBidi);
341 if (directionality == 0xF ) {
|
1 /*
2 * Copyright (c) 2003, 2015, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. Oracle designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Oracle in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22 * or visit www.oracle.com if you need additional information or have any
227 case 0x10121: retval = 900; break; // AEGEAN NUMBER NINE HUNDRED
228 case 0x10122: retval = 1000; break; // AEGEAN NUMBER ONE THOUSAND
229 case 0x10123: retval = 2000; break; // AEGEAN NUMBER TWO THOUSAND
230 case 0x10124: retval = 3000; break; // AEGEAN NUMBER THREE THOUSAND
231 case 0x10125: retval = 4000; break; // AEGEAN NUMBER FOUR THOUSAND
232 case 0x10126: retval = 5000; break; // AEGEAN NUMBER FIVE THOUSAND
233 case 0x10127: retval = 6000; break; // AEGEAN NUMBER SIX THOUSAND
234 case 0x10128: retval = 7000; break; // AEGEAN NUMBER SEVEN THOUSAND
235 case 0x10129: retval = 8000; break; // AEGEAN NUMBER EIGHT THOUSAND
236 case 0x1012A: retval = 9000; break; // AEGEAN NUMBER NINE THOUSAND
237 case 0x1012B: retval = 10000; break; // AEGEAN NUMBER TEN THOUSAND
238 case 0x1012C: retval = 20000; break; // AEGEAN NUMBER TWENTY THOUSAND
239 case 0x1012D: retval = 30000; break; // AEGEAN NUMBER THIRTY THOUSAND
240 case 0x1012E: retval = 40000; break; // AEGEAN NUMBER FORTY THOUSAND
241 case 0x1012F: retval = 50000; break; // AEGEAN NUMBER FIFTY THOUSAND
242 case 0x10130: retval = 60000; break; // AEGEAN NUMBER SIXTY THOUSAND
243 case 0x10131: retval = 70000; break; // AEGEAN NUMBER SEVENTY THOUSAND
244 case 0x10132: retval = 80000; break; // AEGEAN NUMBER EIGHTY THOUSAND
245 case 0x10133: retval = 90000; break; // AEGEAN NUMBER NINETY THOUSAND
246 case 0x10323: retval = 50; break; // OLD ITALIC NUMERAL FIFTY
247 case 0x10144: retval = 50; break; // ACROPHONIC ATTIC FIFTY
248 case 0x10145: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED
249 case 0x10146: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND
250 case 0x10147: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND
251 case 0x1014A: retval = 50; break; // ACROPHONIC ATTIC FIFTY TALENTS
252 case 0x1014B: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED TALENTS
253 case 0x1014C: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED TALENTS
254 case 0x1014D: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND TALENTS
255 case 0x1014E: retval = 5000; break; // ACROPHONIC ATTIC FIVE THOUSAND TALENTS
256 case 0x10151: retval = 50; break; // ACROPHONIC ATTIC FIFTY STATERS
257 case 0x10152: retval = 100; break; // ACROPHONIC ATTIC ONE HUNDRED STATERS
258 case 0x10153: retval = 500; break; // ACROPHONIC ATTIC FIVE HUNDRED STATERS
259 case 0x10154: retval = 1000; break; // ACROPHONIC ATTIC ONE THOUSAND STATERS
260 case 0x10155: retval = 10000; break; // ACROPHONIC ATTIC TEN THOUSAND STATERS
261 case 0x10156: retval = 50000; break; // ACROPHONIC ATTIC FIFTY THOUSAND STATERS
262 case 0x10166: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY
263 case 0x10167: retval = 50; break; // ACROPHONIC TROEZENIAN FIFTY ALTERNATE FORM
264 case 0x10168: retval = 50; break; // ACROPHONIC HERMIONIAN FIFTY
265 case 0x10169: retval = 50; break; // ACROPHONIC THESPIAN FIFTY
266 case 0x1016A: retval = 100; break; // ACROPHONIC THESPIAN ONE HUNDRED
267 case 0x1016B: retval = 300; break; // ACROPHONIC THESPIAN THREE HUNDRED
268 case 0x1016C: retval = 500; break; // ACROPHONIC EPIDAUREAN FIVE HUNDRED
269 case 0x1016D: retval = 500; break; // ACROPHONIC TROEZENIAN FIVE HUNDRED
270 case 0x1016E: retval = 500; break; // ACROPHONIC THESPIAN FIVE HUNDRED
271 case 0x1016F: retval = 500; break; // ACROPHONIC CARYSTIAN FIVE HUNDRED
272 case 0x10170: retval = 500; break; // ACROPHONIC NAXIAN FIVE HUNDRED
273 case 0x10171: retval = 1000; break; // ACROPHONIC THESPIAN ONE THOUSAND
274 case 0x10172: retval = 5000; break; // ACROPHONIC THESPIAN FIVE THOUSAND
275 case 0x10174: retval = 50; break; // ACROPHONIC STRATIAN FIFTY MNAS
276 case 0x102ED: retval = 40; break; // COPTIC EPACT NUMBER FORTY
277 case 0x102EE: retval = 50; break; // COPTIC EPACT NUMBER FIFTY
278 case 0x102EF: retval = 60; break; // COPTIC EPACT NUMBER SIXTY
279 case 0x102F0: retval = 70; break; // COPTIC EPACT NUMBER SEVENTY
280 case 0x102F1: retval = 80; break; // COPTIC EPACT NUMBER EIGHTY
281 case 0x102F2: retval = 90; break; // COPTIC EPACT NUMBER NINETY
282 case 0x102F3: retval = 100; break; // COPTIC EPACT NUMBER ONE HUNDRED
283 case 0x102F4: retval = 200; break; // COPTIC EPACT NUMBER TWO HUNDRED
284 case 0x102F5: retval = 300; break; // COPTIC EPACT NUMBER THREE HUNDRED
285 case 0x102F6: retval = 400; break; // COPTIC EPACT NUMBER FOUR HUNDRED
286 case 0x102F7: retval = 500; break; // COPTIC EPACT NUMBER FIVE HUNDRED
287 case 0x102F8: retval = 600; break; // COPTIC EPACT NUMBER SIX HUNDRED
288 case 0x102F9: retval = 700; break; // COPTIC EPACT NUMBER SEVEN HUNDRED
289 case 0x102FA: retval = 800; break; // COPTIC EPACT NUMBER EIGHT HUNDRED
290 case 0x102FB: retval = 900; break; // COPTIC EPACT NUMBER NINE HUNDRED
291 case 0x10341: retval = 90; break; // GOTHIC LETTER NINETY
292 case 0x1034A: retval = 900; break; // GOTHIC LETTER NINE HUNDRED
293 case 0x103D5: retval = 100; break; // OLD PERSIAN NUMBER HUNDRED
294 case 0x1085D: retval = 100; break; // IMPERIAL ARAMAIC NUMBER ONE HUNDRED
295 case 0x1085E: retval = 1000; break; // IMPERIAL ARAMAIC NUMBER ONE THOUSAND
296 case 0x1085F: retval = 10000; break; // IMPERIAL ARAMAIC NUMBER TEN THOUSAND
297 case 0x108AF: retval = 100; break; // NABATAEAN NUMBER ONE HUNDRED
298 case 0x10919: retval = 100; break; // PHOENICIAN NUMBER ONE HUNDRED
299 case 0x10A46: retval = 100; break; // KHAROSHTHI NUMBER ONE HUNDRED
300 case 0x10A47: retval = 1000; break; // KHAROSHTHI NUMBER ONE THOUSAND
301 case 0x10A7E: retval = 50; break; // OLD SOUTH ARABIAN NUMBER FIFTY
302 case 0x10AEF: retval = 100; break; // MANICHAEAN NUMBER ONE HUNDRED
303 case 0x10B5E: retval = 100; break; // INSCRIPTIONAL PARTHIAN NUMBER ONE HUNDRED
304 case 0x10B5F: retval = 1000; break; // INSCRIPTIONAL PARTHIAN NUMBER ONE THOUSAND
305 case 0x10B7E: retval = 100; break; // INSCRIPTIONAL PAHLAVI NUMBER ONE HUNDRED
306 case 0x10B7F: retval = 1000; break; // INSCRIPTIONAL PAHLAVI NUMBER ONE THOUSAND
307 case 0x10BAF: retval = 100; break; // PSALTER PAHLAVI NUMBER ONE HUNDRED
308 case 0x10E6C: retval = 40; break; // RUMI NUMBER FORTY
309 case 0x10E6D: retval = 50; break; // RUMI NUMBER FIFTY
310 case 0x10E6E: retval = 60; break; // RUMI NUMBER SIXTY
311 case 0x10E6F: retval = 70; break; // RUMI NUMBER SEVENTY
312 case 0x10E70: retval = 80; break; // RUMI NUMBER EIGHTY
313 case 0x10E71: retval = 90; break; // RUMI NUMBER NINETY
314 case 0x10E72: retval = 100; break; // RUMI NUMBER ONE HUNDRED
315 case 0x10E73: retval = 200; break; // RUMI NUMBER TWO HUNDRED
316 case 0x10E74: retval = 300; break; // RUMI NUMBER THREE HUNDRED
317 case 0x10E75: retval = 400; break; // RUMI NUMBER FOUR HUNDRED
318 case 0x10E76: retval = 500; break; // RUMI NUMBER FIVE HUNDRED
319 case 0x10E77: retval = 600; break; // RUMI NUMBER SIX HUNDRED
320 case 0x10E78: retval = 700; break; // RUMI NUMBER SEVEN HUNDRED
321 case 0x10E79: retval = 800; break; // RUMI NUMBER EIGHT HUNDRED
322 case 0x10E7A: retval = 900; break; // RUMI NUMBER NINE HUNDRED
323 case 0x1105E: retval = 40; break; // BRAHMI NUMBER FORTY
324 case 0x1105F: retval = 50; break; // BRAHMI NUMBER FIFTY
325 case 0x11060: retval = 60; break; // BRAHMI NUMBER SIXTY
326 case 0x11061: retval = 70; break; // BRAHMI NUMBER SEVENTY
327 case 0x11062: retval = 80; break; // BRAHMI NUMBER EIGHTY
328 case 0x11063: retval = 90; break; // BRAHMI NUMBER NINETY
329 case 0x11064: retval = 100; break; // BRAHMI NUMBER ONE HUNDRED
330 case 0x11065: retval = 1000; break; // BRAHMI NUMBER ONE THOUSAND
331 case 0x111ED: retval = 40; break; // SINHALA ARCHAIC NUMBER FORTY
332 case 0x111EE: retval = 50; break; // SINHALA ARCHAIC NUMBER FIFTY
333 case 0x111EF: retval = 60; break; // SINHALA ARCHAIC NUMBER SIXTY
334 case 0x111F0: retval = 70; break; // SINHALA ARCHAIC NUMBER SEVENTY
335 case 0x111F1: retval = 80; break; // SINHALA ARCHAIC NUMBER EIGHTY
336 case 0x111F2: retval = 90; break; // SINHALA ARCHAIC NUMBER NINETY
337 case 0x111F3: retval = 100; break; // SINHALA ARCHAIC NUMBER ONE HUNDRED
338 case 0x111F4: retval = 1000; break; // SINHALA ARCHAIC NUMBER ONE THOUSAND
339 case 0x118ED: retval = 40; break; // WARANG CITI NUMBER FORTY
340 case 0x118EE: retval = 50; break; // WARANG CITI NUMBER FIFTY
341 case 0x118EF: retval = 60; break; // WARANG CITI NUMBER SIXTY
342 case 0x118F0: retval = 70; break; // WARANG CITI NUMBER SEVENTY
343 case 0x118F1: retval = 80; break; // WARANG CITI NUMBER EIGHTY
344 case 0x118F2: retval = 90; break; // WARANG CITI NUMBER NINETY
345 case 0x12432: retval = 216000; break; // CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS DISH
346 case 0x12433: retval = 432000; break; // CUNEIFORM NUMERIC SIGN SHAR2 TIMES GAL PLUS MIN
347 case 0x12467: retval = 40; break; // CUNEIFORM NUMERIC SIGN ELAMITE FORTY
348 case 0x12468: retval = 50; break; // CUNEIFORM NUMERIC SIGN ELAMITE FIFTY
349 case 0x16B5C: retval = 100; break; // PAHAWH HMONG NUMBER HUNDREDS
350 case 0x16B5D: retval = 10000; break; // PAHAWH HMONG NUMBER TEN THOUSANDS
351 case 0x16B5E: retval = 1000000; break; // PAHAWH HMONG NUMBER MILLIONS
352 case 0x16B5F: retval = 100000000; break;// PAHAWH HMONG NUMBER HUNDRED MILLIONS
353 case 0x1D36C: retval = 40; break; // COUNTING ROD TENS DIGIT FOUR
354 case 0x1D36D: retval = 50; break; // COUNTING ROD TENS DIGIT FIVE
355 case 0x1D36E: retval = 60; break; // COUNTING ROD TENS DIGIT SIX
356 case 0x1D36F: retval = 70; break; // COUNTING ROD TENS DIGIT SEVEN
357 case 0x1D370: retval = 80; break; // COUNTING ROD TENS DIGIT EIGHT
358 case 0x1D371: retval = 90; break; // COUNTING ROD TENS DIGIT NINE
359 default: retval = -2; break;
360 }
361
362 break;
363 case ($$valueJavaSupradecimal): // Java supradecimal
364 retval = (ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit) + 10;
365 break;
366 }
367 return retval;
368 }
369
370 boolean isWhitespace(int ch) {
371 int props = getProperties(ch);
372 return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace);
373 }
374
375 byte getDirectionality(int ch) {
376 int val = getProperties(ch);
377 byte directionality = (byte)((val & $$maskBidi) >> $$shiftBidi);
378 if (directionality == 0xF ) {
|