/*
Copyright 2021 Gabriel Jensen
This file is part of u8c.
u8c is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
u8c is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with u8c.
If not, see .
*/
# include
# include
# include
# include
struct u8c_isupper_tuple u8c_isupper(char32_t const _chr) {
struct u8c_isupper_tuple ret = {
.stat = false,
};
switch(_chr) {
default:
ret.res = false;
break;
case U'A': /* LATIN CAPITAL LETTER A */
case U'B': /* LATIN CAPITAL LETTER B */
case U'C': /* LATIN CAPITAL LETTER C */
case U'D': /* LATIN CAPITAL LETTER D */
case U'E': /* LATIN CAPITAL LETTER E */
case U'F': /* LATIN CAPITAL LETTER F */
case U'G': /* LATIN CAPITAL LETTER G */
case U'H': /* LATIN CAPITAL LETTER H */
case U'I': /* LATIN CAPITAL LETTER I */
case U'J': /* LATIN CAPITAL LETTER J */
case U'K': /* LATIN CAPITAL LETTER K */
case U'L': /* LATIN CAPITAL LETTER L */
case U'M': /* LATIN CAPITAL LETTER M */
case U'N': /* LATIN CAPITAL LETTER N */
case U'O': /* LATIN CAPITAL LETTER O */
case U'P': /* LATIN CAPITAL LETTER P */
case U'Q': /* LATIN CAPITAL LETTER Q */
case U'R': /* LATIN CAPITAL LETTER R */
case U'S': /* LATIN CAPITAL LETTER S */
case U'T': /* LATIN CAPITAL LETTER T */
case U'U': /* LATIN CAPITAL LETTER U */
case U'V': /* LATIN CAPITAL LETTER V */
case U'X': /* LATIN CAPITAL LETTER Y */
case U'W': /* LATIN CAPITAL LETTER X */
case U'Y': /* LATIN CAPITAL LETTER Y */
case U'Z': /* LATIN CAPITAL LETTER Z */
case U'\u00C0': /* LATIN CAPITAL LETTER A WITH GRAVE */
case U'\u00C1': /* LATIN CAPITAL LETTER A WITH ACUTE */
case U'\u00C2': /* LATIN CAPITAL LETTER A WITH CIRCUMFLEX */
case U'\u00C3': /* LATIN CAPITAL LETTER A WITH TILDE */
case U'\u00C4': /* LATIN CAPITAL LETTER A WITH DIAERESIS */
case U'\u00C5': /* LATIN CAPITAL LETTER A WITH RING ABOVE */
case U'\u00C6': /* LATIN CAPITAL LETTER AE */
case U'\u00C7': /* LATIN CAPITAL LETTER C WITH CEDILLA */
case U'\u00C8': /* LATIN CAPITAL LETTER E WITH GRAVE */
case U'\u00C9': /* LATIN CAPITAL LETTER E WITH ACUTE */
case U'\u00CA': /* LATIN CAPITAL LETTER E WITH CIRCUMFLEX */
case U'\u00CB': /* LATIN CAPITAL LETTER E WITH DIAERESIS */
case U'\u00CC': /* LATIN CAPITAL LETTER I WITH GRAVE */
case U'\u00CD': /* LATIN CAPITAL LETTER I WITH ACUTE */
case U'\u00CE': /* LATIN CAPITAL LETTER I WITH CIRCUMFLEX */
case U'\u00CF': /* LATIN CAPITAL LETTER I WITH DIAERESIS */
case U'\u00D0': /* LATIN CAPITAL LETTER ETH */
case U'\u00D1': /* LATIN CAPITAL LETTER N WITH TILDE */
case U'\u00D2': /* LATIN CAPITAL LETTER O WITH GRAVE */
case U'\u00D3': /* LATIN CAPITAL LETTER O WITH ACUTE */
case U'\u00D4': /* LATIN CAPITAL LETTER O WITH CIRCUMFLEX */
case U'\u00D5': /* LATIN CAPITAL LETTER O WITH TILDE */
case U'\u00D6': /* LATIN CAPITAL LETTER O WITH DIAERESIS */
case U'\u00D8': /* LATIN CAPITAL LETTER O WITH STROKE */
case U'\u00D9': /* LATIN CAPITAL LETTER U WITH GRAVE */
case U'\u00DA': /* LATIN CAPITAL LETTER U WITH STROKE */
case U'\u00DB': /* LATIN CAPITAL LETTER U WITH CIRCUMFLEX */
case U'\u00DC': /* LATIN CAPITAL LETTER U WITH DIAERESIS */
case U'\u00DD': /* LATIN CAPITAL LETTER Y WITH ACUTE */
case U'\u00DE': /* LATIN CAPITAL LETTER THORN */
case U'\u0100': /* LATIN CAPITAL LETTER A WITH MACRON */
case U'\u0102': /* LATIN CAPITAL LETTER A WITH BREVE */
case U'\u0104': /* LATIN CAPITAL LETTER A WITH OGONEK */
case U'\u0106': /* LATIN CAPITAL LETTER C WITH ACUTE */
case U'\u0108': /* LATIN CAPITAL LETTER C WITH CIRCUMFLEX */
case U'\u010A': /* LATIN CAPITAL LETTER C WITH DOT ABOVE */
case U'\u010C': /* LATIN CAPITAL LETTER C WITH CARON */
case U'\u010E': /* LATIN CAPITAL LETTER D WITH CARON */
case U'\u0110': /* LATIN CAPITAL LETTER D WITH STROKE */
case U'\u0112': /* LATIN CAPITAL LETTER E WITH MACRON */
case U'\u0114': /* LATIN CAPITAL LETTER E WITH BREVE */
case U'\u0116': /* LATIN CAPITAL LETTER E WITH DOT ABOVE */
case U'\u0118': /* LATIN CAPITAL LETTER E WITH OGONEK */
case U'\u011A': /* LATIN CAPITAL LETTER E WITH CARON */
case U'\u011C': /* LATIN CAPITAL LETTER G WITH CIRCUMFLEX */
case U'\u014A': /* LATIN CAPITAL LETTER ENG */
case U'\u0152': /* LATIN CAPITAL LIGATURE OE */
case U'\u0186': /* LATIN CAPITAL LETTER OPEN O */
case U'\u018E': /* LATIN CAPITAL LETTER REVERSED E */
case U'\u018F': /* LATIN CAPITAL LETTER SCHWA */
case U'\u0190': /* LATIN CAPITAL LETTER OPEN E */
case U'\u0194': /* LATIN CAPITAL LETTER GAMMA */
case U'\u0196': /* LATIN CAPITAL LETTER IOTA */
case U'\u01A9': /* LATIN CAPITAL LETTER ESH */
case U'\u01B1': /* LATIN CAPITAL LETTER UPSILON */
case U'\u01B2': /* LATIN CAPITAL LETTER V WITH HOOk */
case U'\u01B7': /* LATIN CAPITAL LETTER EZH */
case U'\u01F7': /* LATIN CAPITAL LETTER WYNN */
case U'\u021C': /* LATIN CAPITAL LETTER YOGH */
case U'\u0241': /* LATIN CAPITAL LETTER GLOTTAL STOP */
case U'\u0391': /* GREEK CAPITAL LETTER ALPHA */
case U'\u0392': /* GREEK CAPITAL LETTER BETA */
case U'\u0393': /* GREEK CAPITAL LETTER GAMMA */
case U'\u0394': /* GREEK CAPITAL LETTER DELTA */
case U'\u0395': /* GREEK CAPITAL LETTER EPSILON */
case U'\u0396': /* GREEK CAPITAL LETTER ZETA */
case U'\u0397': /* GREEK CAPITAL LETTER ETA */
case U'\u0398': /* GREEK CAPITAL LETTER THETA */
case U'\u0399': /* GREEK CAPITAL LETTER IOTA */
case U'\u039A': /* GREEK CAPITAL LETTER KAPPA */
case U'\u039B': /* GREEK CAPITAL LETTER LAMBDA */
case U'\u039C': /* GREEK CAPITAL LETTER MU */
case U'\u039D': /* GREEK CAPITAL LETTER NU */
case U'\u039E': /* GREEK CAPITAL LETTER XI */
case U'\u039F': /* GREEK CAPITAL LETTER OMICRON */
case U'\u03A0': /* GREEK CAPITAL LETTER PI */
case U'\u03A1': /* GREEK CAPITAL LETTER RHO */
case U'\u03A3': /* GREEK CAPITAL LETTER SIGMA */
case U'\u03A4': /* GREEK CAPITAL LETTER TAU */
case U'\u03A5': /* GREEK CAPITAL LETTER UPSILON */
case U'\u03A6': /* GREEK CAPITAL LETTER PHI */
case U'\u03A7': /* GREEK CAPITAL LETTER CHI */
case U'\u03A8': /* GREEK CAPITAL LETTER PSI */
case U'\u03A9': /* GREEK CAPITAL LETTER OMEGA */
case U'\u1E9E': /* LATIN CAPITAL LETTER SHARP S */
case U'\u2C6D': /* LATIN CAPITAL LETTER ALPHA */
case U'\uA77D': /* LATIN CAPITAL LETTER INSULAR G */
case U'\uA7B4': /* LATIN CAPITAL LETTER BETA */
case U'\uA7B6': /* LATIN CAPITAL LETTER OMEGA */
ret.res = true;
break;
}
return ret;
}