/*
Реализация среды исполнения языка программирования
Объектно-ориентированный продвинутый векторный транслятор
Copyright © 2021, 2024 Малик Разработчик
Это свободная программа: вы можете перераспространять ее и/или изменять
ее на условиях Меньшей Стандартной общественной лицензии GNU в том виде,
в каком она была опубликована Фондом свободного программного обеспечения;
либо версии 3 лицензии, либо (по вашему выбору) любой более поздней версии.
Эта программа распространяется в надежде, что она будет полезной,
но БЕЗО ВСЯКИХ ГАРАНТИЙ; даже без неявной гарантии ТОВАРНОГО ВИДА
или ПРИГОДНОСТИ ДЛЯ ОПРЕДЕЛЕННЫХ ЦЕЛЕЙ. Подробнее см. в Меньшей Стандартной
общественной лицензии GNU.
Вы должны были получить копию Меньшей Стандартной общественной лицензии GNU
вместе с этой программой. Если это не так, см.
<https://www.gnu.org/licenses/>.
*/
package avt.lang.locale.rtlang;
import avt.lang.locale.*;
public class CyrillicLocale(Locale)
{
public (): super("ru-RU", null) { }
public boolean isLowerCase(char character) {
return character >= '\u0430' && character <= '\u045f';
}
public boolean isUpperCase(char character) {
return character >= '\u0400' && character <= '\u042f';
}
public char toLowerCase(char character) {
return character >= '\u0400' && character <= '\u040f' ? (char) (character + 0x0050) : character >= '\u0410' && character <= '\u042f' ? (char) (character + 0x0020) : character;
}
public char toUpperCase(char character) {
return character >= '\u0430' && character <= '\u044f' ? (char) (character - 0x0020) : character >= '\u0450' && character <= '\u045f' ? (char) (character - 0x0050) : character;
}
public int orderOf(char character) {
if(character >= '\u0430' && character <= '\u044f') character -= 0x0020;
if(character >= '\u0450' && character <= '\u045f') character -= 0x0050;
return
character == '\u0401' ? 6 :
character >= '\u0410' && character <= '\u0415' ? character - '\u0410' :
character >= '\u0416' && character <= '\u042f' ? character - ('\u0410' - 1) :
super.orderOf(character) + 33;
;
}
}