static const PyEnhanceStrLen* py_enhance_stroke_get_char(uint8_t s) { static const PyEnhanceStrLen stroke_table[] = { PY_STR_LEN("一"), PY_STR_LEN("丨"), PY_STR_LEN("丿"), PY_STR_LEN("㇏"), PY_STR_LEN("𠃍"), PY_STR_LEN("") }; if (s >= 5) return stroke_table + 5; return stroke_table + s; }
static const char* py_enhance_get_vokal(int8_t index, int8_t tone, int *len) { static const PyEnhanceStrLen vokals_table[][5] = { { PY_STR_LEN("a"), PY_STR_LEN("ā"), PY_STR_LEN("á"), PY_STR_LEN("ǎ"), PY_STR_LEN("à") }, { PY_STR_LEN("ai"), PY_STR_LEN("āi"), PY_STR_LEN("ái"), PY_STR_LEN("ǎi"), PY_STR_LEN("ài") }, { PY_STR_LEN("an"), PY_STR_LEN("ān"), PY_STR_LEN("án"), PY_STR_LEN("ǎn"), PY_STR_LEN("àn") }, { PY_STR_LEN("ang"), PY_STR_LEN("āng"), PY_STR_LEN("áng"), PY_STR_LEN("ǎng"), PY_STR_LEN("àng") }, { PY_STR_LEN("ao"), PY_STR_LEN("āo"), PY_STR_LEN("áo"), PY_STR_LEN("ǎo"), PY_STR_LEN("ào") }, { PY_STR_LEN("e"), PY_STR_LEN("ē"), PY_STR_LEN("é"), PY_STR_LEN("ě"), PY_STR_LEN("è") }, { PY_STR_LEN("ei"), PY_STR_LEN("ēi"), PY_STR_LEN("éi"), PY_STR_LEN("ěi"), PY_STR_LEN("èi") }, { PY_STR_LEN("en"), PY_STR_LEN("ēn"), PY_STR_LEN("én"), PY_STR_LEN("ěn"), PY_STR_LEN("èn") }, { PY_STR_LEN("eng"), PY_STR_LEN("ēng"), PY_STR_LEN("éng"), PY_STR_LEN("ěng"), PY_STR_LEN("èng") }, { PY_STR_LEN("er"), PY_STR_LEN("ēr"), PY_STR_LEN("ér"), PY_STR_LEN("ěr"), PY_STR_LEN("èr") }, { PY_STR_LEN("i"), PY_STR_LEN("ī"), PY_STR_LEN("í"), PY_STR_LEN("ǐ"), PY_STR_LEN("ì") }, { PY_STR_LEN("ia"), PY_STR_LEN("iā"), PY_STR_LEN("iá"), PY_STR_LEN("iǎ"), PY_STR_LEN("ià") }, { PY_STR_LEN("ian"), PY_STR_LEN("iān"), PY_STR_LEN("ián"), PY_STR_LEN("iǎn"), PY_STR_LEN("iàn") }, { PY_STR_LEN("iang"), PY_STR_LEN("iāng"), PY_STR_LEN("iáng"), PY_STR_LEN("iǎng"), PY_STR_LEN("iàng") }, { PY_STR_LEN("iao"), PY_STR_LEN("iāo"), PY_STR_LEN("iáo"), PY_STR_LEN("iǎo"), PY_STR_LEN("iào") }, { PY_STR_LEN("ie"), PY_STR_LEN("iē"), PY_STR_LEN("ié"), PY_STR_LEN("iě"), PY_STR_LEN("iè") }, { PY_STR_LEN("in"), PY_STR_LEN("īn"), PY_STR_LEN("ín"), PY_STR_LEN("ǐn"), PY_STR_LEN("ìn") }, { PY_STR_LEN("ing"), PY_STR_LEN("īng"), PY_STR_LEN("íng"), PY_STR_LEN("ǐng"), PY_STR_LEN("ìng") }, { PY_STR_LEN("iong"), PY_STR_LEN("iōng"), PY_STR_LEN("ióng"), PY_STR_LEN("iǒng"), PY_STR_LEN("iòng") }, { PY_STR_LEN("iu"), PY_STR_LEN("iū"), PY_STR_LEN("iú"), PY_STR_LEN("iǔ"), PY_STR_LEN("iù") }, { PY_STR_LEN("m"), PY_STR_LEN("m"), PY_STR_LEN("m"), PY_STR_LEN("m"), PY_STR_LEN("m") }, { PY_STR_LEN("n"), PY_STR_LEN("n"), PY_STR_LEN("ń"), PY_STR_LEN("ň"), PY_STR_LEN("ǹ") }, { PY_STR_LEN("ng"), PY_STR_LEN("ng"), PY_STR_LEN("ńg"), PY_STR_LEN("ňg"), PY_STR_LEN("ǹg") }, { PY_STR_LEN("o"), PY_STR_LEN("ō"), PY_STR_LEN("ó"), PY_STR_LEN("ǒ"), PY_STR_LEN("ò") }, { PY_STR_LEN("ong"), PY_STR_LEN("ōng"), PY_STR_LEN("óng"), PY_STR_LEN("ǒng"), PY_STR_LEN("òng") }, { PY_STR_LEN("ou"), PY_STR_LEN("ōu"), PY_STR_LEN("óu"), PY_STR_LEN("ǒu"), PY_STR_LEN("òu") }, { PY_STR_LEN("u"), PY_STR_LEN("ū"), PY_STR_LEN("ú"), PY_STR_LEN("ǔ"), PY_STR_LEN("ù") }, { PY_STR_LEN("ua"), PY_STR_LEN("uā"), PY_STR_LEN("uá"), PY_STR_LEN("uǎ"), PY_STR_LEN("uà") }, { PY_STR_LEN("uai"), PY_STR_LEN("uāi"), PY_STR_LEN("uái"), PY_STR_LEN("uǎi"), PY_STR_LEN("uài") }, { PY_STR_LEN("uan"), PY_STR_LEN("uān"), PY_STR_LEN("uán"), PY_STR_LEN("uǎn"), PY_STR_LEN("uàn") }, { PY_STR_LEN("uang"), PY_STR_LEN("uāng"), PY_STR_LEN("uáng"), PY_STR_LEN("uǎng"), PY_STR_LEN("uàng") }, { PY_STR_LEN("ue"), PY_STR_LEN("uē"), PY_STR_LEN("ué"), PY_STR_LEN("uě"), PY_STR_LEN("uè") }, { PY_STR_LEN("ueng"), PY_STR_LEN("uēng"), PY_STR_LEN("uéng"), PY_STR_LEN("uěng"), PY_STR_LEN("uèng") }, { PY_STR_LEN("ui"), PY_STR_LEN("uī"), PY_STR_LEN("uí"), PY_STR_LEN("uǐ"), PY_STR_LEN("uì") }, { PY_STR_LEN("un"), PY_STR_LEN("ūn"), PY_STR_LEN("ún"), PY_STR_LEN("ǔn"), PY_STR_LEN("ùn") }, { PY_STR_LEN("uo"), PY_STR_LEN("uō"), PY_STR_LEN("uó"), PY_STR_LEN("uǒ"), PY_STR_LEN("uò") }, { PY_STR_LEN("ü"), PY_STR_LEN("ǖ"), PY_STR_LEN("ǘ"), PY_STR_LEN("ǚ"), PY_STR_LEN("ǜ") }, { PY_STR_LEN("üan"), PY_STR_LEN("üān"), PY_STR_LEN("üán"), PY_STR_LEN("üǎn"), PY_STR_LEN("üàn") }, { PY_STR_LEN("üe"), PY_STR_LEN("üē"), PY_STR_LEN("üé"), PY_STR_LEN("üě"), PY_STR_LEN("üè") }, { PY_STR_LEN("ün"), PY_STR_LEN("ǖn"), PY_STR_LEN("ǘn"), PY_STR_LEN("ǚn"), PY_STR_LEN("ǜn") } }; static const int8_t vokals_count = (sizeof(vokals_table) / sizeof(vokals_table[0])); if (index < 0 || index >= vokals_count) { *len = 0; return ""; } if (tone < 0 || tone > 4) tone = 0; const PyEnhanceStrLen *res = &vokals_table[index][tone]; *len = res->len; return res->str; }
static const char* py_enhance_get_konsonant(int8_t index, int *len) { static const PyEnhanceStrLen konsonants_table[] = { PY_STR_LEN("b"), PY_STR_LEN("c"), PY_STR_LEN("ch"), PY_STR_LEN("d"), PY_STR_LEN("f"), PY_STR_LEN("g"), PY_STR_LEN("h"), PY_STR_LEN("j"), PY_STR_LEN("k"), PY_STR_LEN("l"), PY_STR_LEN("m"), PY_STR_LEN("n"), PY_STR_LEN("ng"), PY_STR_LEN("p"), PY_STR_LEN("q"), PY_STR_LEN("r"), PY_STR_LEN("s"), PY_STR_LEN("sh"), PY_STR_LEN("t"), PY_STR_LEN("w"), PY_STR_LEN("x"), PY_STR_LEN("y"), PY_STR_LEN("z"), PY_STR_LEN("zh") }; static const int8_t konsonants_count = (sizeof(konsonants_table) / sizeof(konsonants_table[0])); if (index < 0 || index >= konsonants_count) { *len = 0; return ""; } const PyEnhanceStrLen *res = &konsonants_table[index]; *len = res->len; return res->str; }