/* 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 # include bool u8c_isalpha(uint_least8_t * const _res,char32_t const _chr) { assert(_res != NULL); switch(_chr) { default: *_res = UINT8_C(0x0); break; case UINT32_C(0x61): /* LATIN SMALL LETTER A */ case UINT32_C(0x62): /* LATIN SMALL LETTER B */ case UINT32_C(0x63): /* LATIN SMALL LETTER C */ case UINT32_C(0x64): /* LATIN SMALL LETTER D */ case UINT32_C(0x65): /* LATIN SMALL LETTER E */ case UINT32_C(0x66): /* LATIN SMALL LETTER F */ case UINT32_C(0x67): /* LATIN SMALL LETTER G */ case UINT32_C(0x68): /* LATIN SMALL LETTER H */ case UINT32_C(0x69): /* LATIN SMALL LETTER I */ case UINT32_C(0x6A): /* LATIN SMALL LETTER J */ case UINT32_C(0x6B): /* LATIN SMALL LETTER K */ case UINT32_C(0x6C): /* LATIN SMALL LETTER L */ case UINT32_C(0x6D): /* LATIN SMALL LETTER M */ case UINT32_C(0x6E): /* LATIN SMALL LETTER N */ case UINT32_C(0x6F): /* LATIN SMALL LETTER O */ case UINT32_C(0x70): /* LATIN SMALL LETTER P */ case UINT32_C(0x71): /* LATIN SMALL LETTER Q */ case UINT32_C(0x72): /* LATIN SMALL LETTER R */ case UINT32_C(0x73): /* LATIN SMALL LETTER S */ case UINT32_C(0x74): /* LATIN SMALL LETTER T */ case UINT32_C(0x75): /* LATIN SMALL LETTER U */ case UINT32_C(0x76): /* LATIN SMALL LETTER V */ case UINT32_C(0x77): /* LATIN SMALL LETTER W */ case UINT32_C(0x78): /* LATIN SMALL LETTER X */ case UINT32_C(0x79): /* LATIN SMALL LETTER Y */ case UINT32_C(0x7A): /* LATIN SMALL LETTER Z */ case UINT32_C(0xDF): /* LATIN SMALL LETTER SHARP S */ case UINT32_C(0xE1): /* LATIN SMALL LETTER A WITH ACUTE */ case UINT32_C(0xE4): /* LATIN SMALL LETTER A WITH DIAERESIS */ case UINT32_C(0xE5): /* LATIN SMALL LETTER A WITH RING ABOVE */ case UINT32_C(0xE6): /* LATIN SMALL LETTER AE */ case UINT32_C(0xE7): /* LATIN SMALL LETTER C WITH CEDILLA */ case UINT32_C(0xE9): /* LATIN SMALL LETTER E WITH ACUTE */ case UINT32_C(0xED): /* LATIN SMALL LETTER I WITH ACUTE */ case UINT32_C(0xF0): /* LATIN SMALL LETTER ETH */ case UINT32_C(0xF3): /* LATIN SMALL LETTER O WITH ACUTE */ case UINT32_C(0xF6): /* LATIN SMALL LETTER O WITH DIAERESIS */ case UINT32_C(0xF8): /* LATIN SMALL LETTER O WITH STROKE */ case UINT32_C(0xFA): /* LATIN SMALL LETTER U WITH ACUTE */ case UINT32_C(0xFC): /* U WITH TWO DOTS */ case UINT32_C(0xFD): /* LATIN SMALL LETTER Y WITH ACUTE */ case UINT32_C(0xFE): /* LATIN SMALL LETTER THORN */ case UINT32_C(0x105): /* LATIN SMALL LETTER A WITH OGONEK */ case UINT32_C(0x107): /* LATIN SMALL LETTER C WITH ACUTE */ case UINT32_C(0x10D): /* LATIN SMALL LETTER C WITH CARON */ case UINT32_C(0x10F): /* LATIN SMALL LETTER D WITH CARON */ case UINT32_C(0x119): /* LATIN SMALL LETTER E WITH OGONEK */ case UINT32_C(0x11B): /* LATIN SMALL LETTER E WITH CARON */ case UINT32_C(0x11F): /* LATIN SMALL LETTER G WITH BREVE */ case UINT32_C(0x131): /* LATIN SMALL LETTER DOTLESS I */ case UINT32_C(0x133): /* LATIN SMALL LIGATURE LJ */ case UINT32_C(0x138): /* LATIN SMALL LETTER KRA */ case UINT32_C(0x142): /* LATIN SMALL LETTER L WITH STROKE */ case UINT32_C(0x144): /* LATIN SMALL LETTER N WITH ACUTE */ case UINT32_C(0x148): /* LATIN SMALL LETTER N WITH CARON */ case UINT32_C(0x14B): /* LATIN SMALL LETTER ENG */ case UINT32_C(0x153): /* LATIN SMALL LIGATURE OE */ case UINT32_C(0x159): /* LATIN SMALL LETTER R WITH CARON */ case UINT32_C(0x15B): /* LATIN SMALL LETTER S WITH ACUTE */ case UINT32_C(0x15F): /* LATIN SMALL LETTER S WITH CEDILLA */ case UINT32_C(0x161): /* LATIN SMALL LETTER S WITH CARON */ case UINT32_C(0x165): /* LATIN SMALL LETTER T WITH CARON */ case UINT32_C(0x16F): /* LATIN SMALL LETTER U WITH RING ABOVE */ case UINT32_C(0x17A): /* LATIN SMALL LETTER Z WITH ACUTE */ case UINT32_C(0x17C): /* LATIN SMALL LETTER Z WITH DOT ABOVE */ case UINT32_C(0x17E): /* LATIN SMALL LETTER Z WITH CARON */ case UINT32_C(0x1BF): /* LATIN LETTER WYNN */ case UINT32_C(0x1DD): /* LATIN SMALL LETTER TURNED E */ case UINT32_C(0x21D): /* LATIN SMALL LETTER YOGH */ case UINT32_C(0x251): /* LATIN SMALL LETTER ALPHA */ case UINT32_C(0x254): /* LATIN SMALL LETTER OPEN O */ case UINT32_C(0x259): /* LATIN SMALL LETTER SCHWA */ case UINT32_C(0x25B): /* LATIN SMALL LETTER OPEN E */ case UINT32_C(0x263): /* LATIN SMALL LETTER GAMMA */ case UINT32_C(0x269): /* LATIN SMALL LETTER IOTA */ case UINT32_C(0x283): /* LATIN SMALL LETTER ESH */ case UINT32_C(0x28A): /* LATIN SMALL LETTER UPSILON */ case UINT32_C(0x28B): /* LATIN SMALL LETTER V WITH HOOK */ case UINT32_C(0x292): /* LATIN SMALL LETTER EZH */ case UINT32_C(0x294): /* LATIN SMALL LETTER GLOTTAL STOP */ case UINT32_C(0x3B1): /* GREEK SMALL LETTER ALPHA */ case UINT32_C(0x3B2): /* GREEK SMALL LETTER BETA */ case UINT32_C(0x3B3): /* GREEK SMALL LETTER GAMMA */ case UINT32_C(0x3B4): /* GREEK SMALL LETTER DELTA */ case UINT32_C(0x3B5): /* GREEK SMALL LETTER EPSILON */ case UINT32_C(0x3B6): /* GREEK SMALL LETTER ZETA */ case UINT32_C(0x3B7): /* GREEK SMALL LETTER ETA */ case UINT32_C(0x3B8): /* GREEK SMALL LETTER THETA */ case UINT32_C(0x3B9): /* GREEK SMALL LETTER IOTA */ case UINT32_C(0x3BA): /* GREEK SMALL LETTER KAPPA */ case UINT32_C(0x3BB): /* GREEK SMALL LETTER LAMBDA */ case UINT32_C(0x3BC): /* GREEK SMALL LETTER MU */ case UINT32_C(0x3BD): /* GREEK SMALL LETTER NU */ case UINT32_C(0x3BE): /* GREEK SMALL LETTER XI */ case UINT32_C(0x3BF): /* GREEK SMALL LETTER OMICRON */ case UINT32_C(0x3C0): /* GREEK SMALL LETTER PI */ case UINT32_C(0x3C1): /* GREEK SMALL LETTER RHO */ case UINT32_C(0x3C2): /* GREEK SMALL LETTER FINAL SIGMA */ case UINT32_C(0x3C3): /* GREEK SMALL LETTER SIGMA */ case UINT32_C(0x3C4): /* GREEK SMALL LETTER TAU */ case UINT32_C(0x3C5): /* GREEK SMALL LETTER UPSILON */ case UINT32_C(0x3C6): /* GREEK SMALL LETTER PHI */ case UINT32_C(0x3C7): /* GREEK SMALL LETTER CHI */ case UINT32_C(0x3C8): /* GREEK SMALL LETTER PSI */ case UINT32_C(0x3C9): /* GREEK SMALL LETTER OMEGA */ case UINT32_C(0x1D79): /* LATIN SMALL LETTER INSULAR G */ case UINT32_C(0xA7B7): /* LATIN SMALL LETTER OMEGA */ case UINT32_C(0xFB00): /* LATIN SMALL LIGATURE FF */ *_res = UINT8_C(0x1); break; } return false; }