| ucd-update: tools/case.py tools/categories.py tools/scripts.py | ucd-update: tools/case.py tools/categories.py tools/scripts.py | ||||
| tools/case.py ${UCD_ROOTDIR} ${UCD_VERSION} ${UCD_FLAGS} > src/case.c | tools/case.py ${UCD_ROOTDIR} ${UCD_VERSION} ${UCD_FLAGS} > src/case.c | ||||
| tools/categories.py ${UCD_ROOTDIR} ${UCD_VERSION} ${UCD_FLAGS} > src/categories.c | tools/categories.py ${UCD_ROOTDIR} ${UCD_VERSION} ${UCD_FLAGS} > src/categories.c | ||||
| tools/scripts.py ${UCD_ROOTDIR} ${UCD_VERSION} ${UCD_FLAGS} > src/scripts.cpp | |||||
| tools/scripts.py ${UCD_ROOTDIR} ${UCD_VERSION} ${UCD_FLAGS} > src/scripts.c | |||||
| libucd_includedir = $(includedir)/ucd | libucd_includedir = $(includedir)/ucd | ||||
| libucd_include_HEADERS = \ | libucd_include_HEADERS = \ | ||||
| src/case.c \ | src/case.c \ | ||||
| src/categories.c \ | src/categories.c \ | ||||
| src/ctype.c \ | src/ctype.c \ | ||||
| src/scripts.cpp \ | |||||
| src/scripts.c \ | |||||
| src/tostring.c | src/tostring.c | ||||
| ############################# tests ########################################### | ############################# tests ########################################### | 
| * @param c The Unicode codepoint to lookup. | * @param c The Unicode codepoint to lookup. | ||||
| * @return The Script of the Unicode codepoint. | * @return The Script of the Unicode codepoint. | ||||
| */ | */ | ||||
| script lookup_script(codepoint_t c); | |||||
| inline script lookup_script(codepoint_t c) | |||||
| { | |||||
| return (script)ucd_lookup_script(c); | |||||
| } | |||||
| /** @brief Is the codepoint an alpha-numeric character? | /** @brief Is the codepoint an alpha-numeric character? | ||||
| * | * | 
| #include <stddef.h> | #include <stddef.h> | ||||
| using namespace ucd; | |||||
| #define Afak UCD_SCRIPT_Afak | |||||
| #define Aghb UCD_SCRIPT_Aghb | |||||
| #define Ahom UCD_SCRIPT_Ahom | |||||
| #define Arab UCD_SCRIPT_Arab | |||||
| #define Armi UCD_SCRIPT_Armi | |||||
| #define Armn UCD_SCRIPT_Armn | |||||
| #define Avst UCD_SCRIPT_Avst | |||||
| #define Bali UCD_SCRIPT_Bali | |||||
| #define Bamu UCD_SCRIPT_Bamu | |||||
| #define Bass UCD_SCRIPT_Bass | |||||
| #define Batk UCD_SCRIPT_Batk | |||||
| #define Beng UCD_SCRIPT_Beng | |||||
| #define Blis UCD_SCRIPT_Blis | |||||
| #define Bopo UCD_SCRIPT_Bopo | |||||
| #define Brah UCD_SCRIPT_Brah | |||||
| #define Brai UCD_SCRIPT_Brai | |||||
| #define Bugi UCD_SCRIPT_Bugi | |||||
| #define Buhd UCD_SCRIPT_Buhd | |||||
| #define Cakm UCD_SCRIPT_Cakm | |||||
| #define Cans UCD_SCRIPT_Cans | |||||
| #define Cari UCD_SCRIPT_Cari | |||||
| #define Cham UCD_SCRIPT_Cham | |||||
| #define Cher UCD_SCRIPT_Cher | |||||
| #define Cirt UCD_SCRIPT_Cirt | |||||
| #define Copt UCD_SCRIPT_Copt | |||||
| #define Cprt UCD_SCRIPT_Cprt | |||||
| #define Cyrl UCD_SCRIPT_Cyrl | |||||
| #define Cyrs UCD_SCRIPT_Cyrs | |||||
| #define Deva UCD_SCRIPT_Deva | |||||
| #define Dsrt UCD_SCRIPT_Dsrt | |||||
| #define Dupl UCD_SCRIPT_Dupl | |||||
| #define Egyd UCD_SCRIPT_Egyd | |||||
| #define Egyh UCD_SCRIPT_Egyh | |||||
| #define Egyp UCD_SCRIPT_Egyp | |||||
| #define Elba UCD_SCRIPT_Elba | |||||
| #define Ethi UCD_SCRIPT_Ethi | |||||
| #define Geok UCD_SCRIPT_Geok | |||||
| #define Geor UCD_SCRIPT_Geor | |||||
| #define Glag UCD_SCRIPT_Glag | |||||
| #define Goth UCD_SCRIPT_Goth | |||||
| #define Gran UCD_SCRIPT_Gran | |||||
| #define Grek UCD_SCRIPT_Grek | |||||
| #define Gujr UCD_SCRIPT_Gujr | |||||
| #define Guru UCD_SCRIPT_Guru | |||||
| #define Hang UCD_SCRIPT_Hang | |||||
| #define Hani UCD_SCRIPT_Hani | |||||
| #define Hano UCD_SCRIPT_Hano | |||||
| #define Hans UCD_SCRIPT_Hans | |||||
| #define Hant UCD_SCRIPT_Hant | |||||
| #define Hatr UCD_SCRIPT_Hatr | |||||
| #define Hebr UCD_SCRIPT_Hebr | |||||
| #define Hira UCD_SCRIPT_Hira | |||||
| #define Hluw UCD_SCRIPT_Hluw | |||||
| #define Hmng UCD_SCRIPT_Hmng | |||||
| #define Hrkt UCD_SCRIPT_Hrkt | |||||
| #define Hung UCD_SCRIPT_Hung | |||||
| #define Inds UCD_SCRIPT_Inds | |||||
| #define Ital UCD_SCRIPT_Ital | |||||
| #define Java UCD_SCRIPT_Java | |||||
| #define Jpan UCD_SCRIPT_Jpan | |||||
| #define Jurc UCD_SCRIPT_Jurc | |||||
| #define Kali UCD_SCRIPT_Kali | |||||
| #define Kana UCD_SCRIPT_Kana | |||||
| #define Khar UCD_SCRIPT_Khar | |||||
| #define Khmr UCD_SCRIPT_Khmr | |||||
| #define Khoj UCD_SCRIPT_Khoj | |||||
| #define Knda UCD_SCRIPT_Knda | |||||
| #define Kore UCD_SCRIPT_Kore | |||||
| #define Kpel UCD_SCRIPT_Kpel | |||||
| #define Kthi UCD_SCRIPT_Kthi | |||||
| #define Lana UCD_SCRIPT_Lana | |||||
| #define Laoo UCD_SCRIPT_Laoo | |||||
| #define Latf UCD_SCRIPT_Latf | |||||
| #define Latg UCD_SCRIPT_Latg | |||||
| #define Latn UCD_SCRIPT_Latn | |||||
| #define Lepc UCD_SCRIPT_Lepc | |||||
| #define Limb UCD_SCRIPT_Limb | |||||
| #define Lina UCD_SCRIPT_Lina | |||||
| #define Linb UCD_SCRIPT_Linb | |||||
| #define Lisu UCD_SCRIPT_Lisu | |||||
| #define Loma UCD_SCRIPT_Loma | |||||
| #define Lyci UCD_SCRIPT_Lyci | |||||
| #define Lydi UCD_SCRIPT_Lydi | |||||
| #define Mahj UCD_SCRIPT_Mahj | |||||
| #define Mand UCD_SCRIPT_Mand | |||||
| #define Mani UCD_SCRIPT_Mani | |||||
| #define Maya UCD_SCRIPT_Maya | |||||
| #define Mend UCD_SCRIPT_Mend | |||||
| #define Merc UCD_SCRIPT_Merc | |||||
| #define Mero UCD_SCRIPT_Mero | |||||
| #define Mlym UCD_SCRIPT_Mlym | |||||
| #define Modi UCD_SCRIPT_Modi | |||||
| #define Mong UCD_SCRIPT_Mong | |||||
| #define Moon UCD_SCRIPT_Moon | |||||
| #define Mroo UCD_SCRIPT_Mroo | |||||
| #define Mtei UCD_SCRIPT_Mtei | |||||
| #define Mult UCD_SCRIPT_Mult | |||||
| #define Mymr UCD_SCRIPT_Mymr | |||||
| #define Narb UCD_SCRIPT_Narb | |||||
| #define Nbat UCD_SCRIPT_Nbat | |||||
| #define Nkgb UCD_SCRIPT_Nkgb | |||||
| #define Nkoo UCD_SCRIPT_Nkoo | |||||
| #define Nshu UCD_SCRIPT_Nshu | |||||
| #define Ogam UCD_SCRIPT_Ogam | |||||
| #define Olck UCD_SCRIPT_Olck | |||||
| #define Orkh UCD_SCRIPT_Orkh | |||||
| #define Orya UCD_SCRIPT_Orya | |||||
| #define Osma UCD_SCRIPT_Osma | |||||
| #define Palm UCD_SCRIPT_Palm | |||||
| #define Pauc UCD_SCRIPT_Pauc | |||||
| #define Perm UCD_SCRIPT_Perm | |||||
| #define Phag UCD_SCRIPT_Phag | |||||
| #define Phli UCD_SCRIPT_Phli | |||||
| #define Phlp UCD_SCRIPT_Phlp | |||||
| #define Phlv UCD_SCRIPT_Phlv | |||||
| #define Phnx UCD_SCRIPT_Phnx | |||||
| #define Plrd UCD_SCRIPT_Plrd | |||||
| #define Prti UCD_SCRIPT_Prti | |||||
| #define Qaak UCD_SCRIPT_Qaak | |||||
| #define Rjng UCD_SCRIPT_Rjng | |||||
| #define Roro UCD_SCRIPT_Roro | |||||
| #define Runr UCD_SCRIPT_Runr | |||||
| #define Samr UCD_SCRIPT_Samr | |||||
| #define Sara UCD_SCRIPT_Sara | |||||
| #define Sarb UCD_SCRIPT_Sarb | |||||
| #define Saur UCD_SCRIPT_Saur | |||||
| #define Sgnw UCD_SCRIPT_Sgnw | |||||
| #define Shaw UCD_SCRIPT_Shaw | |||||
| #define Shrd UCD_SCRIPT_Shrd | |||||
| #define Sidd UCD_SCRIPT_Sidd | |||||
| #define Sind UCD_SCRIPT_Sind | |||||
| #define Sinh UCD_SCRIPT_Sinh | |||||
| #define Sora UCD_SCRIPT_Sora | |||||
| #define Sund UCD_SCRIPT_Sund | |||||
| #define Sylo UCD_SCRIPT_Sylo | |||||
| #define Syrc UCD_SCRIPT_Syrc | |||||
| #define Syre UCD_SCRIPT_Syre | |||||
| #define Syrj UCD_SCRIPT_Syrj | |||||
| #define Syrn UCD_SCRIPT_Syrn | |||||
| #define Tagb UCD_SCRIPT_Tagb | |||||
| #define Takr UCD_SCRIPT_Takr | |||||
| #define Tale UCD_SCRIPT_Tale | |||||
| #define Talu UCD_SCRIPT_Talu | |||||
| #define Taml UCD_SCRIPT_Taml | |||||
| #define Tang UCD_SCRIPT_Tang | |||||
| #define Tavt UCD_SCRIPT_Tavt | |||||
| #define Telu UCD_SCRIPT_Telu | |||||
| #define Teng UCD_SCRIPT_Teng | |||||
| #define Tfng UCD_SCRIPT_Tfng | |||||
| #define Tglg UCD_SCRIPT_Tglg | |||||
| #define Thaa UCD_SCRIPT_Thaa | |||||
| #define Thai UCD_SCRIPT_Thai | |||||
| #define Tibt UCD_SCRIPT_Tibt | |||||
| #define Tirh UCD_SCRIPT_Tirh | |||||
| #define Ugar UCD_SCRIPT_Ugar | |||||
| #define Vaii UCD_SCRIPT_Vaii | |||||
| #define Visp UCD_SCRIPT_Visp | |||||
| #define Wara UCD_SCRIPT_Wara | |||||
| #define Wole UCD_SCRIPT_Wole | |||||
| #define Xpeo UCD_SCRIPT_Xpeo | |||||
| #define Xsux UCD_SCRIPT_Xsux | |||||
| #define Yiii UCD_SCRIPT_Yiii | |||||
| #define Zinh UCD_SCRIPT_Zinh | |||||
| #define Zmth UCD_SCRIPT_Zmth | |||||
| #define Zsym UCD_SCRIPT_Zsym | |||||
| #define Zxxx UCD_SCRIPT_Zxxx | |||||
| #define Zyyy UCD_SCRIPT_Zyyy | |||||
| #define Zzzz UCD_SCRIPT_Zzzz | |||||
| // Unicode Character Data 8.0.0 | // Unicode Character Data 8.0.0 | ||||
| }; | }; | ||||
| ucd_script ucd_lookup_script(codepoint_t c) | ucd_script ucd_lookup_script(codepoint_t c) | ||||
| { | |||||
| return (ucd_script)ucd::lookup_script(c); | |||||
| } | |||||
| ucd::script ucd::lookup_script(codepoint_t c) | |||||
| { | { | ||||
| if (c <= 0x00D7FF) // 000000..00D7FF | if (c <= 0x00D7FF) // 000000..00D7FF | ||||
| { | { | ||||
| const uint8_t *table = scripts_000000_00D7FF[(c - 0x000000) / 256]; | const uint8_t *table = scripts_000000_00D7FF[(c - 0x000000) / 256]; | ||||
| return (ucd::script)table[c % 256]; | |||||
| return (ucd_script)table[c % 256]; | |||||
| } | } | ||||
| if (c <= 0x00F7FF) return Zzzz; // 00D800..00F7FF : Surrogates / Private Use Area | if (c <= 0x00F7FF) return Zzzz; // 00D800..00F7FF : Surrogates / Private Use Area | ||||
| if (c <= 0x02FAFF) // 00F800..02FAFF | if (c <= 0x02FAFF) // 00F800..02FAFF | ||||
| { | { | ||||
| const uint8_t *table = scripts_00F800_02FAFF[(c - 0x00F800) / 256]; | const uint8_t *table = scripts_00F800_02FAFF[(c - 0x00F800) / 256]; | ||||
| return (ucd::script)table[c % 256]; | |||||
| return (ucd_script)table[c % 256]; | |||||
| } | } | ||||
| if (c <= 0x0DFFFF) return Zzzz; // 02FB00..0DFFFF : Unassigned | if (c <= 0x0DFFFF) return Zzzz; // 02FB00..0DFFFF : Unassigned | ||||
| if (c <= 0x0E01FF) // 0E0000..0E01FF | if (c <= 0x0E01FF) // 0E0000..0E01FF | ||||
| { | { | ||||
| const uint8_t *table = scripts_0E0000_0E01FF[(c - 0x0E0000) / 256]; | const uint8_t *table = scripts_0E0000_0E01FF[(c - 0x0E0000) / 256]; | ||||
| return (ucd::script)table[c % 256]; | |||||
| return (ucd_script)table[c % 256]; | |||||
| } | } | ||||
| if (c <= 0x10FFFF) return Zzzz; // 0E0200..10FFFF : Unassigned | if (c <= 0x10FFFF) return Zzzz; // 0E0200..10FFFF : Unassigned | ||||
| return Zzzz; // Invalid Unicode Codepoint | return Zzzz; // Invalid Unicode Codepoint | 
| #include <stddef.h> | #include <stddef.h> | ||||
| using namespace ucd; | |||||
| #define Afak UCD_SCRIPT_Afak | |||||
| #define Aghb UCD_SCRIPT_Aghb | |||||
| #define Ahom UCD_SCRIPT_Ahom | |||||
| #define Arab UCD_SCRIPT_Arab | |||||
| #define Armi UCD_SCRIPT_Armi | |||||
| #define Armn UCD_SCRIPT_Armn | |||||
| #define Avst UCD_SCRIPT_Avst | |||||
| #define Bali UCD_SCRIPT_Bali | |||||
| #define Bamu UCD_SCRIPT_Bamu | |||||
| #define Bass UCD_SCRIPT_Bass | |||||
| #define Batk UCD_SCRIPT_Batk | |||||
| #define Beng UCD_SCRIPT_Beng | |||||
| #define Blis UCD_SCRIPT_Blis | |||||
| #define Bopo UCD_SCRIPT_Bopo | |||||
| #define Brah UCD_SCRIPT_Brah | |||||
| #define Brai UCD_SCRIPT_Brai | |||||
| #define Bugi UCD_SCRIPT_Bugi | |||||
| #define Buhd UCD_SCRIPT_Buhd | |||||
| #define Cakm UCD_SCRIPT_Cakm | |||||
| #define Cans UCD_SCRIPT_Cans | |||||
| #define Cari UCD_SCRIPT_Cari | |||||
| #define Cham UCD_SCRIPT_Cham | |||||
| #define Cher UCD_SCRIPT_Cher | |||||
| #define Cirt UCD_SCRIPT_Cirt | |||||
| #define Copt UCD_SCRIPT_Copt | |||||
| #define Cprt UCD_SCRIPT_Cprt | |||||
| #define Cyrl UCD_SCRIPT_Cyrl | |||||
| #define Cyrs UCD_SCRIPT_Cyrs | |||||
| #define Deva UCD_SCRIPT_Deva | |||||
| #define Dsrt UCD_SCRIPT_Dsrt | |||||
| #define Dupl UCD_SCRIPT_Dupl | |||||
| #define Egyd UCD_SCRIPT_Egyd | |||||
| #define Egyh UCD_SCRIPT_Egyh | |||||
| #define Egyp UCD_SCRIPT_Egyp | |||||
| #define Elba UCD_SCRIPT_Elba | |||||
| #define Ethi UCD_SCRIPT_Ethi | |||||
| #define Geok UCD_SCRIPT_Geok | |||||
| #define Geor UCD_SCRIPT_Geor | |||||
| #define Glag UCD_SCRIPT_Glag | |||||
| #define Goth UCD_SCRIPT_Goth | |||||
| #define Gran UCD_SCRIPT_Gran | |||||
| #define Grek UCD_SCRIPT_Grek | |||||
| #define Gujr UCD_SCRIPT_Gujr | |||||
| #define Guru UCD_SCRIPT_Guru | |||||
| #define Hang UCD_SCRIPT_Hang | |||||
| #define Hani UCD_SCRIPT_Hani | |||||
| #define Hano UCD_SCRIPT_Hano | |||||
| #define Hans UCD_SCRIPT_Hans | |||||
| #define Hant UCD_SCRIPT_Hant | |||||
| #define Hatr UCD_SCRIPT_Hatr | |||||
| #define Hebr UCD_SCRIPT_Hebr | |||||
| #define Hira UCD_SCRIPT_Hira | |||||
| #define Hluw UCD_SCRIPT_Hluw | |||||
| #define Hmng UCD_SCRIPT_Hmng | |||||
| #define Hrkt UCD_SCRIPT_Hrkt | |||||
| #define Hung UCD_SCRIPT_Hung | |||||
| #define Inds UCD_SCRIPT_Inds | |||||
| #define Ital UCD_SCRIPT_Ital | |||||
| #define Java UCD_SCRIPT_Java | |||||
| #define Jpan UCD_SCRIPT_Jpan | |||||
| #define Jurc UCD_SCRIPT_Jurc | |||||
| #define Kali UCD_SCRIPT_Kali | |||||
| #define Kana UCD_SCRIPT_Kana | |||||
| #define Khar UCD_SCRIPT_Khar | |||||
| #define Khmr UCD_SCRIPT_Khmr | |||||
| #define Khoj UCD_SCRIPT_Khoj | |||||
| #define Knda UCD_SCRIPT_Knda | |||||
| #define Kore UCD_SCRIPT_Kore | |||||
| #define Kpel UCD_SCRIPT_Kpel | |||||
| #define Kthi UCD_SCRIPT_Kthi | |||||
| #define Lana UCD_SCRIPT_Lana | |||||
| #define Laoo UCD_SCRIPT_Laoo | |||||
| #define Latf UCD_SCRIPT_Latf | |||||
| #define Latg UCD_SCRIPT_Latg | |||||
| #define Latn UCD_SCRIPT_Latn | |||||
| #define Lepc UCD_SCRIPT_Lepc | |||||
| #define Limb UCD_SCRIPT_Limb | |||||
| #define Lina UCD_SCRIPT_Lina | |||||
| #define Linb UCD_SCRIPT_Linb | |||||
| #define Lisu UCD_SCRIPT_Lisu | |||||
| #define Loma UCD_SCRIPT_Loma | |||||
| #define Lyci UCD_SCRIPT_Lyci | |||||
| #define Lydi UCD_SCRIPT_Lydi | |||||
| #define Mahj UCD_SCRIPT_Mahj | |||||
| #define Mand UCD_SCRIPT_Mand | |||||
| #define Mani UCD_SCRIPT_Mani | |||||
| #define Maya UCD_SCRIPT_Maya | |||||
| #define Mend UCD_SCRIPT_Mend | |||||
| #define Merc UCD_SCRIPT_Merc | |||||
| #define Mero UCD_SCRIPT_Mero | |||||
| #define Mlym UCD_SCRIPT_Mlym | |||||
| #define Modi UCD_SCRIPT_Modi | |||||
| #define Mong UCD_SCRIPT_Mong | |||||
| #define Moon UCD_SCRIPT_Moon | |||||
| #define Mroo UCD_SCRIPT_Mroo | |||||
| #define Mtei UCD_SCRIPT_Mtei | |||||
| #define Mult UCD_SCRIPT_Mult | |||||
| #define Mymr UCD_SCRIPT_Mymr | |||||
| #define Narb UCD_SCRIPT_Narb | |||||
| #define Nbat UCD_SCRIPT_Nbat | |||||
| #define Nkgb UCD_SCRIPT_Nkgb | |||||
| #define Nkoo UCD_SCRIPT_Nkoo | |||||
| #define Nshu UCD_SCRIPT_Nshu | |||||
| #define Ogam UCD_SCRIPT_Ogam | |||||
| #define Olck UCD_SCRIPT_Olck | |||||
| #define Orkh UCD_SCRIPT_Orkh | |||||
| #define Orya UCD_SCRIPT_Orya | |||||
| #define Osma UCD_SCRIPT_Osma | |||||
| #define Palm UCD_SCRIPT_Palm | |||||
| #define Pauc UCD_SCRIPT_Pauc | |||||
| #define Perm UCD_SCRIPT_Perm | |||||
| #define Phag UCD_SCRIPT_Phag | |||||
| #define Phli UCD_SCRIPT_Phli | |||||
| #define Phlp UCD_SCRIPT_Phlp | |||||
| #define Phlv UCD_SCRIPT_Phlv | |||||
| #define Phnx UCD_SCRIPT_Phnx | |||||
| #define Plrd UCD_SCRIPT_Plrd | |||||
| #define Prti UCD_SCRIPT_Prti | |||||
| #define Qaak UCD_SCRIPT_Qaak | |||||
| #define Rjng UCD_SCRIPT_Rjng | |||||
| #define Roro UCD_SCRIPT_Roro | |||||
| #define Runr UCD_SCRIPT_Runr | |||||
| #define Samr UCD_SCRIPT_Samr | |||||
| #define Sara UCD_SCRIPT_Sara | |||||
| #define Sarb UCD_SCRIPT_Sarb | |||||
| #define Saur UCD_SCRIPT_Saur | |||||
| #define Sgnw UCD_SCRIPT_Sgnw | |||||
| #define Shaw UCD_SCRIPT_Shaw | |||||
| #define Shrd UCD_SCRIPT_Shrd | |||||
| #define Sidd UCD_SCRIPT_Sidd | |||||
| #define Sind UCD_SCRIPT_Sind | |||||
| #define Sinh UCD_SCRIPT_Sinh | |||||
| #define Sora UCD_SCRIPT_Sora | |||||
| #define Sund UCD_SCRIPT_Sund | |||||
| #define Sylo UCD_SCRIPT_Sylo | |||||
| #define Syrc UCD_SCRIPT_Syrc | |||||
| #define Syre UCD_SCRIPT_Syre | |||||
| #define Syrj UCD_SCRIPT_Syrj | |||||
| #define Syrn UCD_SCRIPT_Syrn | |||||
| #define Tagb UCD_SCRIPT_Tagb | |||||
| #define Takr UCD_SCRIPT_Takr | |||||
| #define Tale UCD_SCRIPT_Tale | |||||
| #define Talu UCD_SCRIPT_Talu | |||||
| #define Taml UCD_SCRIPT_Taml | |||||
| #define Tang UCD_SCRIPT_Tang | |||||
| #define Tavt UCD_SCRIPT_Tavt | |||||
| #define Telu UCD_SCRIPT_Telu | |||||
| #define Teng UCD_SCRIPT_Teng | |||||
| #define Tfng UCD_SCRIPT_Tfng | |||||
| #define Tglg UCD_SCRIPT_Tglg | |||||
| #define Thaa UCD_SCRIPT_Thaa | |||||
| #define Thai UCD_SCRIPT_Thai | |||||
| #define Tibt UCD_SCRIPT_Tibt | |||||
| #define Tirh UCD_SCRIPT_Tirh | |||||
| #define Ugar UCD_SCRIPT_Ugar | |||||
| #define Vaii UCD_SCRIPT_Vaii | |||||
| #define Visp UCD_SCRIPT_Visp | |||||
| #define Wara UCD_SCRIPT_Wara | |||||
| #define Wole UCD_SCRIPT_Wole | |||||
| #define Xpeo UCD_SCRIPT_Xpeo | |||||
| #define Xsux UCD_SCRIPT_Xsux | |||||
| #define Yiii UCD_SCRIPT_Yiii | |||||
| #define Zinh UCD_SCRIPT_Zinh | |||||
| #define Zmth UCD_SCRIPT_Zmth | |||||
| #define Zsym UCD_SCRIPT_Zsym | |||||
| #define Zxxx UCD_SCRIPT_Zxxx | |||||
| #define Zyyy UCD_SCRIPT_Zyyy | |||||
| #define Zzzz UCD_SCRIPT_Zzzz | |||||
| // Unicode Character Data %s | // Unicode Character Data %s | ||||
| """ % ucd_version) | """ % ucd_version) | ||||
| sys.stdout.write('\tscripts_%s,\n' % codepoint) | sys.stdout.write('\tscripts_%s,\n' % codepoint) | ||||
| sys.stdout.write('};\n') | sys.stdout.write('};\n') | ||||
| sys.stdout.write(""" | |||||
| ucd_script ucd_lookup_script(codepoint_t c) | |||||
| { | |||||
| return (ucd_script)ucd::lookup_script(c); | |||||
| } | |||||
| """) | |||||
| sys.stdout.write('\n') | sys.stdout.write('\n') | ||||
| sys.stdout.write('ucd::script ucd::lookup_script(codepoint_t c)\n') | |||||
| sys.stdout.write('ucd_script ucd_lookup_script(codepoint_t c)\n') | |||||
| sys.stdout.write('{\n') | sys.stdout.write('{\n') | ||||
| for codepoints, script, comment in script_sets: | for codepoints, script, comment in script_sets: | ||||
| if script: | if script: | ||||
| sys.stdout.write('\tif (c <= 0x%s) // %s\n' % (codepoints.last, codepoints)) | sys.stdout.write('\tif (c <= 0x%s) // %s\n' % (codepoints.last, codepoints)) | ||||
| sys.stdout.write('\t{\n') | sys.stdout.write('\t{\n') | ||||
| sys.stdout.write('\t\tconst uint8_t *table = scripts_%s_%s[(c - 0x%s) / 256];\n' % (codepoints.first, codepoints.last, codepoints.first)) | sys.stdout.write('\t\tconst uint8_t *table = scripts_%s_%s[(c - 0x%s) / 256];\n' % (codepoints.first, codepoints.last, codepoints.first)) | ||||
| sys.stdout.write('\t\treturn (ucd::script)table[c % 256];\n') | |||||
| sys.stdout.write('\t\treturn (ucd_script)table[c % 256];\n') | |||||
| sys.stdout.write('\t}\n') | sys.stdout.write('\t}\n') | ||||
| sys.stdout.write('\treturn Zzzz; // Invalid Unicode Codepoint\n') | sys.stdout.write('\treturn Zzzz; // Invalid Unicode Codepoint\n') | ||||
| sys.stdout.write('}\n') | sys.stdout.write('}\n') |