/*
Реализация среды исполнения языка программирования
Объектно-ориентированный продвинутый векторный транслятор
Copyright © 2021, 2024 Малик Разработчик
Это свободная программа: вы можете перераспространять ее и/или изменять
ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<https://www.gnu.org/licenses/>.
*/
package avt.io.charset.basiclatin;
public service BasicLatin(Object)
{
public static boolean isDigit(char character) {
return character >= '0' && character <= '9';
}
public static boolean isLowerCase(char character) {
return character >= 'a' && character <= 'z' || character >= '\u00df' && character <= '\u00f6' || character >= '\u00f8' && character <= '\u00ff';
}
public static boolean isUpperCase(char character) {
return character >= 'A' && character <= 'Z' || character >= '\u00c0' && character <= '\u00d6' || character >= '\u00d8' && character <= '\u00de';
}
public static char toLowerCase(char character) {
return character >= 'A' && character <= 'Z' || character >= '\u00c0' && character <= '\u00d6' || character >= '\u00d8' && character <= '\u00de' ? (char) (character + 0x0020) : character;
}
public static char toUpperCase(char character) {
return character >= 'a' && character <= 'z' || character >= '\u00e0' && character <= '\u00f6' || character >= '\u00f8' && character <= '\u00fe' ? (char) (character - 0x0020) : character;
}
public static int orderOf(char character) {
switch(character)
{
case '\u00c0': /* À */
case '\u00c1': /* Á */
case '\u00c2': /* Â */
case '\u00c3': /* Ã */
case '\u00c4': /* Ä */
case '\u00c5': /* Å */
case '\u00c6': /* Æ */
case '\u00e0': /* à */
case '\u00e1': /* á */
case '\u00e2': /* â */
case '\u00e3': /* ã */
case '\u00e4': /* ä */
case '\u00e5': /* å */
case '\u00e6': /* æ */
character = 'A';
break;
case '\u00c7': /* Ç */
case '\u00e7': /* ç */
character = 'C';
break;
case '\u00c8': /* È */
case '\u00c9': /* É */
case '\u00ca': /* Ê */
case '\u00cb': /* Ë */
case '\u00e8': /* è */
case '\u00e9': /* é */
case '\u00ea': /* ê */
case '\u00eb': /* ë */
character = 'E';
break;
case '\u00cc': /* Ì */
case '\u00cd': /* Í */
case '\u00ce': /* Î */
case '\u00cf': /* Ï */
case '\u00ec': /* ì */
case '\u00ed': /* í */
case '\u00ee': /* î */
case '\u00ef': /* ï */
character = 'I';
break;
case '\u00d0': /* Ð */
case '\u00de': /* Þ */
case '\u00f0': /* ð */
case '\u00fe': /* þ */
character = 'D';
break;
case '\u00d1': /* Ñ */
case '\u00f1': /* ñ */
character = 'N';
break;
case '\u00d2': /* Ò */
case '\u00d3': /* Ó */
case '\u00d4': /* Ô */
case '\u00d5': /* Õ */
case '\u00d6': /* Ö */
case '\u00d8': /* Ø */
case '\u00f2': /* ò */
case '\u00f3': /* ó */
case '\u00f4': /* ô */
case '\u00f5': /* õ */
case '\u00f6': /* ö */
case '\u00f8': /* ø */
character = 'O';
break;
case '\u00d9': /* Ù */
case '\u00da': /* Ú */
case '\u00db': /* Û */
case '\u00dc': /* Ü */
case '\u00f9': /* ù */
case '\u00fa': /* ú */
case '\u00fb': /* û */
case '\u00fc': /* ü */
character = 'U';
break;
case '\u00dd': /* Ý */
case '\u00fd': /* ý */
case '\u00ff': /* ÿ */
character = 'Y';
break;
case '\u00df': /* ß */
character = 'S';
break;
default:
if(character >= 'a' && character <= 'z') character -= 0x0020;
}
return character >= 'A' && character <= 'Z' ? character - 'A' : character >= '0' && character <= '9' ? character - ('0' - 26) : character - ('\0' - 36);
}
}