636 case 0x32B6: retval = 41; break; // CIRCLED NUMBER FORTY ONE 637 case 0x32B7: retval = 42; break; // CIRCLED NUMBER FORTY TWO 638 case 0x32B8: retval = 43; break; // CIRCLED NUMBER FORTY THREE 639 case 0x32B9: retval = 44; break; // CIRCLED NUMBER FORTY FOUR 640 case 0x32BA: retval = 45; break; // CIRCLED NUMBER FORTY FIVE 641 case 0x32BB: retval = 46; break; // CIRCLED NUMBER FORTY SIX 642 case 0x32BC: retval = 47; break; // CIRCLED NUMBER FORTY SEVEN 643 case 0x32BD: retval = 48; break; // CIRCLED NUMBER FORTY EIGHT 644 case 0x32BE: retval = 49; break; // CIRCLED NUMBER FORTY NINE 645 case 0x32BF: retval = 50; break; // CIRCLED NUMBER FIFTY 646 default: retval = -2; break; 647 } 648 break; 649 case ($$valueJavaSupradecimal): // Java supradecimal 650 retval = (ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit) + 10; 651 break; 652 } 653 return retval; 654 } 655 656 boolean isWhitespace(int ch) { 657 int props = getProperties(ch); 658 return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace); 659 } 660 661 byte getDirectionality(int ch) { 662 int val = getProperties(ch); 663 byte directionality = (byte)((val & $$maskBidi) >> $$shiftBidi); 664 if (directionality == 0xF ) { 665 switch(ch) { 666 case 0x202A : 667 // This is the only char with LRE 668 directionality = Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING; 669 break; 670 case 0x202B : 671 // This is the only char with RLE 672 directionality = Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING; 673 break; 674 case 0x202C : 675 // This is the only char with PDF | 636 case 0x32B6: retval = 41; break; // CIRCLED NUMBER FORTY ONE 637 case 0x32B7: retval = 42; break; // CIRCLED NUMBER FORTY TWO 638 case 0x32B8: retval = 43; break; // CIRCLED NUMBER FORTY THREE 639 case 0x32B9: retval = 44; break; // CIRCLED NUMBER FORTY FOUR 640 case 0x32BA: retval = 45; break; // CIRCLED NUMBER FORTY FIVE 641 case 0x32BB: retval = 46; break; // CIRCLED NUMBER FORTY SIX 642 case 0x32BC: retval = 47; break; // CIRCLED NUMBER FORTY SEVEN 643 case 0x32BD: retval = 48; break; // CIRCLED NUMBER FORTY EIGHT 644 case 0x32BE: retval = 49; break; // CIRCLED NUMBER FORTY NINE 645 case 0x32BF: retval = 50; break; // CIRCLED NUMBER FIFTY 646 default: retval = -2; break; 647 } 648 break; 649 case ($$valueJavaSupradecimal): // Java supradecimal 650 retval = (ch + ((val & $$maskDigitOffset) >> $$shiftDigitOffset) & $$maskDigit) + 10; 651 break; 652 } 653 return retval; 654 } 655 656 boolean isDigit(int ch) { 657 return getType(ch) == Character.DECIMAL_DIGIT_NUMBER; 658 } 659 660 boolean isLowerCase(int ch) { 661 return getType(ch) == Character.LOWERCASE_LETTER; 662 } 663 664 boolean isUpperCase(int ch) { 665 return getType(ch) == Character.UPPERCASE_LETTER; 666 } 667 668 boolean isWhitespace(int ch) { 669 int props = getProperties(ch); 670 return ((props & $$maskIdentifierInfo) == $$valueJavaWhitespace); 671 } 672 673 byte getDirectionality(int ch) { 674 int val = getProperties(ch); 675 byte directionality = (byte)((val & $$maskBidi) >> $$shiftBidi); 676 if (directionality == 0xF ) { 677 switch(ch) { 678 case 0x202A : 679 // This is the only char with LRE 680 directionality = Character.DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING; 681 break; 682 case 0x202B : 683 // This is the only char with RLE 684 directionality = Character.DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING; 685 break; 686 case 0x202C : 687 // This is the only char with PDF |