Methods Summary |
---|
static int | digit(int ch, int radix)
int value = -1;
if (radix >= Character.MIN_RADIX && radix <= Character.MAX_RADIX) {
int val = getProperties(ch);
int kind = val & 0x1F;
if (kind == Character.DECIMAL_DIGIT_NUMBER) {
value = ch + ((val & 0x3E0) >> 5) & 0x1F;
}
else if ((val & 0xC00) == 0x00000C00) {
// Java supradecimal digit
value = (ch + ((val & 0x3E0) >> 5) & 0x1F) + 10;
}
}
return (value < radix) ? value : -1;
|
static byte | getDirectionality(int ch)
int val = getProperties(ch);
byte directionality = (byte)((val & 0x78000000) >> 27);
if (directionality == 0xF ) {
directionality = Character.DIRECTIONALITY_UNDEFINED;
}
return directionality;
|
static int | getNumericValue(int ch)
int val = getProperties(ch);
int retval = -1;
switch (val & 0xC00) {
default: // cannot occur
case (0x00000000): // not numeric
retval = -1;
break;
case (0x00000400): // simple numeric
retval = ch + ((val & 0x3E0) >> 5) & 0x1F;
break;
case (0x00000800) : // "strange" numeric
retval = -2;
break;
case (0x00000C00): // Java supradecimal
retval = (ch + ((val & 0x3E0) >> 5) & 0x1F) + 10;
break;
}
return retval;
|
static int | getProperties(int ch)
char offset = (char)ch;
int props = A[Y[X[offset>>5]|((offset>>1)&0xF)]|(offset&0x1)];
return props;
|
static int | getType(int ch)
int props = getProperties(ch);
return (props & 0x1F);
|
static boolean | isDefined(int ch)
int type = getType(ch);
return (type != Character.UNASSIGNED);
|
static boolean | isDigit(int ch)
int type = getType(ch);
return (type == Character.DECIMAL_DIGIT_NUMBER);
|
static boolean | isIdentifierIgnorable(int ch)
int props = getProperties(ch);
return ((props & 0x00007000) == 0x00001000);
|
static boolean | isJavaIdentifierPart(int ch)
int props = getProperties(ch);
return ((props & 0x00003000) != 0);
|
static boolean | isJavaIdentifierStart(int ch)
int props = getProperties(ch);
return ((props & 0x00007000) >= 0x00005000);
|
static boolean | isLetter(int ch)
int type = getType(ch);
return (((((1 << Character.UPPERCASE_LETTER) |
(1 << Character.LOWERCASE_LETTER) |
(1 << Character.TITLECASE_LETTER) |
(1 << Character.MODIFIER_LETTER) |
(1 << Character.OTHER_LETTER)) >> type) & 1) != 0);
|
static boolean | isLetterOrDigit(int ch)
int type = getType(ch);
return (((((1 << Character.UPPERCASE_LETTER) |
(1 << Character.LOWERCASE_LETTER) |
(1 << Character.TITLECASE_LETTER) |
(1 << Character.MODIFIER_LETTER) |
(1 << Character.OTHER_LETTER) |
(1 << Character.DECIMAL_DIGIT_NUMBER)) >> type) & 1) != 0);
|
static boolean | isLowerCase(int ch)
int type = getType(ch);
return (type == Character.LOWERCASE_LETTER);
|
static boolean | isMirrored(int ch)
return (getProperties(ch) & 0x80000000) != 0;
|
static boolean | isSpaceChar(int ch)
int type = getType(ch);
return (((((1 << Character.SPACE_SEPARATOR) |
(1 << Character.LINE_SEPARATOR) |
(1 << Character.PARAGRAPH_SEPARATOR)) >> type) & 1) != 0);
|
static boolean | isTitleCase(int ch)
int type = getType(ch);
return (type == Character.TITLECASE_LETTER);
|
static boolean | isUnicodeIdentifierPart(int ch)
int props = getProperties(ch);
return ((props & 0x00001000) != 0);
|
static boolean | isUnicodeIdentifierStart(int ch)
int props = getProperties(ch);
return ((props & 0x00007000) == 0x00007000);
|
static boolean | isUpperCase(int ch)
int type = getType(ch);
return (type == Character.UPPERCASE_LETTER);
|
static boolean | isWhitespace(int ch)
return (getProperties(ch) & 0x00007000) == 0x00004000;
|
static int | toLowerCase(int ch)
int mapChar = ch;
int val = getProperties(ch);
if ((val & 0x00020000) != 0) {
int offset = val << 5 >> (5+18);
mapChar = ch + offset;
}
return mapChar;
|
static int | toTitleCase(int ch)
int mapChar = ch;
int val = getProperties(ch);
if ((val & 0x00008000) != 0) {
// There is a titlecase equivalent. Perform further checks:
if ((val & 0x00010000) == 0) {
// The character does not have an uppercase equivalent, so it must
// already be uppercase; so add 1 to get the titlecase form.
mapChar = ch + 1;
}
else if ((val & 0x00020000) == 0) {
// The character does not have a lowercase equivalent, so it must
// already be lowercase; so subtract 1 to get the titlecase form.
mapChar = ch - 1;
}
// else {
// The character has both an uppercase equivalent and a lowercase
// equivalent, so it must itself be a titlecase form; return it.
// return ch;
//}
}
else if ((val & 0x00010000) != 0) {
// This character has no titlecase equivalent but it does have an
// uppercase equivalent, so use that (subtract the signed case offset).
mapChar = toUpperCase(ch);
}
return mapChar;
|
static int | toUpperCase(int ch)
int mapChar = ch;
int val = getProperties(ch);
if ((val & 0x00010000) != 0) {
int offset = val << 5 >> (5+18);
mapChar = ch - offset;
}
return mapChar;
|