BasicLatin.avt

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

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

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