/*
Реализация среды исполнения языка программирования
Объектно-ориентированный продвинутый векторный транслятор
Copyright © 2021, 2024, 2026 Малик Разработчик
Это свободная программа: вы можете перераспространять ее и/или изменять
ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<https://www.gnu.org/licenses/>.
*/
package avt.lang.locale.basiclatin;
public service BasicLatin(Object)
{
public static boolean isDigit(char chr) { return chr >= '0' && chr <= '9'; }
public static boolean isLowerCase(char chr) { return chr >= 'a' && chr <= 'z' || chr >= '\u00df' && chr <= '\u00f6' || chr >= '\u00f8' && chr <= '\u00ff'; }
public static boolean isUpperCase(char chr) { return chr >= 'A' && chr <= 'Z' || chr >= '\u00c0' && chr <= '\u00d6' || chr >= '\u00d8' && chr <= '\u00de'; }
public static char toLowerCase(char chr) { return chr >= 'A' && chr <= 'Z' || chr >= '\u00c0' && chr <= '\u00d6' || chr >= '\u00d8' && chr <= '\u00de' ? (char) (chr + 0x0020) : chr; }
public static char toUpperCase(char chr) { return chr >= 'a' && chr <= 'z' || chr >= '\u00e0' && chr <= '\u00f6' || chr >= '\u00f8' && chr <= '\u00fe' ? (char) (chr - 0x0020) : chr; }
public static int orderOf(char chr) {
switch(chr)
{
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': /* æ */
{
chr = 'A';
break;
}
case '\u00c7': /* Ç */
case '\u00e7': /* ç */
{
chr = 'C';
break;
}
case '\u00c8': /* È */
case '\u00c9': /* É */
case '\u00ca': /* Ê */
case '\u00cb': /* Ë */
case '\u00e8': /* è */
case '\u00e9': /* é */
case '\u00ea': /* ê */
case '\u00eb': /* ë */
{
chr = 'E';
break;
}
case '\u00cc': /* Ì */
case '\u00cd': /* Í */
case '\u00ce': /* Î */
case '\u00cf': /* Ï */
case '\u00ec': /* ì */
case '\u00ed': /* í */
case '\u00ee': /* î */
case '\u00ef': /* ï */
{
chr = 'I';
break;
}
case '\u00d0': /* Ð */
case '\u00de': /* Þ */
case '\u00f0': /* ð */
case '\u00fe': /* þ */
{
chr = 'D';
break;
}
case '\u00d1': /* Ñ */
case '\u00f1': /* ñ */
{
chr = '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': /* ø */
{
chr = 'O';
break;
}
case '\u00d9': /* Ù */
case '\u00da': /* Ú */
case '\u00db': /* Û */
case '\u00dc': /* Ü */
case '\u00f9': /* ù */
case '\u00fa': /* ú */
case '\u00fb': /* û */
case '\u00fc': /* ü */
{
chr = 'U';
break;
}
case '\u00dd': /* Ý */
case '\u00fd': /* ý */
case '\u00ff': /* ÿ */
{
chr = 'Y';
break;
}
case '\u00df': /* ß */
{
chr = 'S';
break;
}
default:
{
if(chr >= 'a' && chr <= 'z') chr -= 0x0020;
}
}
return chr >= 'A' && chr <= 'Z' ? chr - 'A' : chr >= '0' && chr <= '9' ? chr - ('0' - 26) : chr - ('\0' - 36);
}
}