BasicLatin.avt

Переключить прокрутку окна
Загрузить этот исходный код

/*
    Реализация среды исполнения языка программирования
    Объектно-ориентированный продвинутый векторный транслятор

    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);
    }
}