1 /*
2 * Copyright (c) 2003, 2018, 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
428 case 0X1EC8D: retval = 2000; break; // INDIC SIYAQ NUMBER TWO THOUSAND
429 case 0X1EC8E: retval = 3000; break; // INDIC SIYAQ NUMBER THREE THOUSAND
430 case 0X1EC8F: retval = 4000; break; // INDIC SIYAQ NUMBER FOUR THOUSAND
431 case 0X1EC90: retval = 5000; break; // INDIC SIYAQ NUMBER FIVE THOUSAND
432 case 0X1EC91: retval = 6000; break; // INDIC SIYAQ NUMBER SIX THOUSAND
433 case 0X1EC92: retval = 7000; break; // INDIC SIYAQ NUMBER SEVEN THOUSAND
434 case 0X1EC93: retval = 8000; break; // INDIC SIYAQ NUMBER EIGHT THOUSAND
435 case 0X1EC94: retval = 9000; break; // INDIC SIYAQ NUMBER NINE THOUSAND
436 case 0X1EC95: retval = 10000; break; // INDIC SIYAQ NUMBER TEN THOUSAND
437 case 0X1EC96: retval = 20000; break; // INDIC SIYAQ NUMBER TWENTY THOUSAND
438 case 0X1EC97: retval = 30000; break; // INDIC SIYAQ NUMBER THIRTY THOUSAND
439 case 0X1EC98: retval = 40000; break; // INDIC SIYAQ NUMBER FORTY THOUSAND
440 case 0X1EC99: retval = 50000; break; // INDIC SIYAQ NUMBER FIFTY THOUSAND
441 case 0X1EC9A: retval = 60000; break; // INDIC SIYAQ NUMBER SIXTY THOUSAND
442 case 0X1EC9B: retval = 70000; break; // INDIC SIYAQ NUMBER SEVENTY THOUSAND
443 case 0X1EC9C: retval = 80000; break; // INDIC SIYAQ NUMBER EIGHTY THOUSAND
444 case 0X1EC9D: retval = 90000; break; // INDIC SIYAQ NUMBER NINETY THOUSAND
445 case 0X1EC9E: retval = 100000; break; // INDIC SIYAQ NUMBER LAKH
446 case 0X1EC9F: retval = 200000; break; // INDIC SIYAQ NUMBER LAKHAN
447 case 0X1ECA0: retval = 100000; break; // INDIC SIYAQ LAKH MARK
448 case 0X1ECA1: retval = 10000000; break; // INDIC SIYAQ NUMBER KAROR
449 case 0X1ECA2: retval = 20000000; break; // INDIC SIYAQ NUMBER KARORAN
450 case 0X1ECB3: retval = 10000; break; // INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND
451 case 0X1ECB4: retval = 100000; break; // INDIC SIYAQ NUMBER ALTERNATE LAKH MARK
452 default: retval = -2; break;
453 }
454
455 break;
456 case ($$valueJavaSupradecimal): // Java supradecimal
457 retval = (ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit) + 10;
458 break;
459 }
460 return retval;
461 }
462
463 boolean isDigit(int ch) {
464 int props = getProperties(ch);
465 return (props & $$maskType) == Character.DECIMAL_DIGIT_NUMBER;
466 }
467
468 boolean isLowerCase(int ch) {
469 int props = getProperties(ch);
470 return (props & $$maskType) == Character.LOWERCASE_LETTER;
471 }
|
1 /*
2 * Copyright (c) 2003, 2019, 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
428 case 0X1EC8D: retval = 2000; break; // INDIC SIYAQ NUMBER TWO THOUSAND
429 case 0X1EC8E: retval = 3000; break; // INDIC SIYAQ NUMBER THREE THOUSAND
430 case 0X1EC8F: retval = 4000; break; // INDIC SIYAQ NUMBER FOUR THOUSAND
431 case 0X1EC90: retval = 5000; break; // INDIC SIYAQ NUMBER FIVE THOUSAND
432 case 0X1EC91: retval = 6000; break; // INDIC SIYAQ NUMBER SIX THOUSAND
433 case 0X1EC92: retval = 7000; break; // INDIC SIYAQ NUMBER SEVEN THOUSAND
434 case 0X1EC93: retval = 8000; break; // INDIC SIYAQ NUMBER EIGHT THOUSAND
435 case 0X1EC94: retval = 9000; break; // INDIC SIYAQ NUMBER NINE THOUSAND
436 case 0X1EC95: retval = 10000; break; // INDIC SIYAQ NUMBER TEN THOUSAND
437 case 0X1EC96: retval = 20000; break; // INDIC SIYAQ NUMBER TWENTY THOUSAND
438 case 0X1EC97: retval = 30000; break; // INDIC SIYAQ NUMBER THIRTY THOUSAND
439 case 0X1EC98: retval = 40000; break; // INDIC SIYAQ NUMBER FORTY THOUSAND
440 case 0X1EC99: retval = 50000; break; // INDIC SIYAQ NUMBER FIFTY THOUSAND
441 case 0X1EC9A: retval = 60000; break; // INDIC SIYAQ NUMBER SIXTY THOUSAND
442 case 0X1EC9B: retval = 70000; break; // INDIC SIYAQ NUMBER SEVENTY THOUSAND
443 case 0X1EC9C: retval = 80000; break; // INDIC SIYAQ NUMBER EIGHTY THOUSAND
444 case 0X1EC9D: retval = 90000; break; // INDIC SIYAQ NUMBER NINETY THOUSAND
445 case 0X1EC9E: retval = 100000; break; // INDIC SIYAQ NUMBER LAKH
446 case 0X1EC9F: retval = 200000; break; // INDIC SIYAQ NUMBER LAKHAN
447 case 0X1ECA0: retval = 100000; break; // INDIC SIYAQ LAKH MARK
448 case 0X1ECA1: retval = 10000000; break;// INDIC SIYAQ NUMBER KAROR
449 case 0X1ECA2: retval = 20000000; break;// INDIC SIYAQ NUMBER KARORAN
450 case 0X1ECB3: retval = 10000; break; // INDIC SIYAQ NUMBER ALTERNATE TEN THOUSAND
451 case 0X1ECB4: retval = 100000; break; // INDIC SIYAQ NUMBER ALTERNATE LAKH MARK
452 case 0X1ED0D: retval = 40; break; // OTTOMAN SIYAQ NUMBER FORTY
453 case 0X1ED0E: retval = 50; break; // OTTOMAN SIYAQ NUMBER FIFTY
454 case 0X1ED0F: retval = 60; break; // OTTOMAN SIYAQ NUMBER SIXTY
455 case 0X1ED10: retval = 70; break; // OTTOMAN SIYAQ NUMBER SEVENTY
456 case 0X1ED11: retval = 80; break; // OTTOMAN SIYAQ NUMBER EIGHTY
457 case 0X1ED12: retval = 90; break; // OTTOMAN SIYAQ NUMBER NINETY
458 case 0X1ED13: retval = 100; break; // OTTOMAN SIYAQ NUMBER ONE HUNDRED
459 case 0X1ED14: retval = 200; break; // OTTOMAN SIYAQ NUMBER TWO HUNDRED
460 case 0X1ED15: retval = 300; break; // OTTOMAN SIYAQ NUMBER THREE HUNDRED
461 case 0X1ED16: retval = 400; break; // OTTOMAN SIYAQ NUMBER FOUR HUNDRED
462 case 0X1ED17: retval = 500; break; // OTTOMAN SIYAQ NUMBER FIVE HUNDRED
463 case 0X1ED18: retval = 600; break; // OTTOMAN SIYAQ NUMBER SIX HUNDRED
464 case 0X1ED19: retval = 700; break; // OTTOMAN SIYAQ NUMBER SEVEN HUNDRED
465 case 0X1ED1A: retval = 800; break; // OTTOMAN SIYAQ NUMBER EIGHT HUNDRED
466 case 0X1ED1B: retval = 900; break; // OTTOMAN SIYAQ NUMBER NINE HUNDRED
467 case 0X1ED1C: retval = 1000; break; // OTTOMAN SIYAQ NUMBER ONE THOUSAND
468 case 0X1ED1D: retval = 2000; break; // OTTOMAN SIYAQ NUMBER TWO THOUSAND
469 case 0X1ED1E: retval = 3000; break; // OTTOMAN SIYAQ NUMBER THREE THOUSAND
470 case 0X1ED1F: retval = 4000; break; // OTTOMAN SIYAQ NUMBER FOUR THOUSAND
471 case 0X1ED20: retval = 5000; break; // OTTOMAN SIYAQ NUMBER FIVE THOUSAND
472 case 0X1ED21: retval = 6000; break; // OTTOMAN SIYAQ NUMBER SIX THOUSAND
473 case 0X1ED22: retval = 7000; break; // OTTOMAN SIYAQ NUMBER SEVEN THOUSAND
474 case 0X1ED23: retval = 8000; break; // OTTOMAN SIYAQ NUMBER EIGHT THOUSAND
475 case 0X1ED24: retval = 9000; break; // OTTOMAN SIYAQ NUMBER NINE THOUSAND
476 case 0X1ED25: retval = 10000; break; // OTTOMAN SIYAQ NUMBER TEN THOUSAND
477 case 0X1ED26: retval = 20000; break; // OTTOMAN SIYAQ NUMBER TWENTY THOUSAND
478 case 0X1ED27: retval = 30000; break; // OTTOMAN SIYAQ NUMBER THIRTY THOUSAND
479 case 0X1ED28: retval = 40000; break; // OTTOMAN SIYAQ NUMBER FORTY THOUSAND
480 case 0X1ED29: retval = 50000; break; // OTTOMAN SIYAQ NUMBER FIFTY THOUSAND
481 case 0X1ED2A: retval = 60000; break; // OTTOMAN SIYAQ NUMBER SIXTY THOUSAND
482 case 0X1ED2B: retval = 70000; break; // OTTOMAN SIYAQ NUMBER SEVENTY THOUSAND
483 case 0X1ED2C: retval = 80000; break; // OTTOMAN SIYAQ NUMBER EIGHTY THOUSAND
484 case 0X1ED2D: retval = 90000; break; // OTTOMAN SIYAQ NUMBER NINETY THOUSAND
485 case 0X1ED38: retval = 400; break; // OTTOMAN SIYAQ ALTERNATE NUMBER FOUR HUNDRED
486 case 0X1ED39: retval = 600; break; // OTTOMAN SIYAQ ALTERNATE NUMBER SIX HUNDRED
487 case 0X1ED3A: retval = 2000; break; // OTTOMAN SIYAQ ALTERNATE NUMBER TWO THOUSAND
488 case 0X1ED3B: retval = 10000; break; // OTTOMAN SIYAQ ALTERNATE NUMBER TEN THOUSAND
489 default: retval = -2; break;
490 }
491
492 break;
493 case ($$valueJavaSupradecimal): // Java supradecimal
494 retval = (ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit) + 10;
495 break;
496 }
497 return retval;
498 }
499
500 boolean isDigit(int ch) {
501 int props = getProperties(ch);
502 return (props & $$maskType) == Character.DECIMAL_DIGIT_NUMBER;
503 }
504
505 boolean isLowerCase(int ch) {
506 int props = getProperties(ch);
507 return (props & $$maskType) == Character.LOWERCASE_LETTER;
508 }
|