From 903080d6b1bddde8d9097359eed21a9b9ee74fd0 Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Tue, 16 Apr 2024 23:05:29 +0200 Subject: Add uprop_get_ccc() --- lib/unicode/prop/uprop_get_ccc.c | 408 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 408 insertions(+) create mode 100644 lib/unicode/prop/uprop_get_ccc.c (limited to 'lib') diff --git a/lib/unicode/prop/uprop_get_ccc.c b/lib/unicode/prop/uprop_get_ccc.c new file mode 100644 index 0000000..1e46c23 --- /dev/null +++ b/lib/unicode/prop/uprop_get_ccc.c @@ -0,0 +1,408 @@ +/* This file is autogenerated by gen/prop/ccc; DO NOT EDIT. */ + +#include "_bsearch.h" +#include "macros.h" +#include "rune.h" +#include "unicode/prop.h" + +static const struct { + rune lo, hi; + enum uprop_ccc val; +} lookup[] = { + {RUNE_C(0x000300), RUNE_C(0x000314), CCC_A}, + {RUNE_C(0x000315), RUNE_C(0x000315), CCC_AR}, + {RUNE_C(0x000316), RUNE_C(0x000319), CCC_B}, + {RUNE_C(0x00031A), RUNE_C(0x00031A), CCC_AR}, + {RUNE_C(0x00031B), RUNE_C(0x00031B), CCC_ATAR}, + {RUNE_C(0x00031C), RUNE_C(0x000320), CCC_B}, + {RUNE_C(0x000321), RUNE_C(0x000322), CCC_ATB}, + {RUNE_C(0x000323), RUNE_C(0x000326), CCC_B}, + {RUNE_C(0x000327), RUNE_C(0x000328), CCC_ATB}, + {RUNE_C(0x000329), RUNE_C(0x000333), CCC_B}, + {RUNE_C(0x000334), RUNE_C(0x000338), CCC_OV}, + {RUNE_C(0x000339), RUNE_C(0x00033C), CCC_B}, + {RUNE_C(0x00033D), RUNE_C(0x000344), CCC_A}, + {RUNE_C(0x000345), RUNE_C(0x000345), CCC_IS}, + {RUNE_C(0x000346), RUNE_C(0x000346), CCC_A}, + {RUNE_C(0x000347), RUNE_C(0x000349), CCC_B}, + {RUNE_C(0x00034A), RUNE_C(0x00034C), CCC_A}, + {RUNE_C(0x00034D), RUNE_C(0x00034E), CCC_B}, + {RUNE_C(0x000350), RUNE_C(0x000352), CCC_A}, + {RUNE_C(0x000353), RUNE_C(0x000356), CCC_B}, + {RUNE_C(0x000357), RUNE_C(0x000357), CCC_A}, + {RUNE_C(0x000358), RUNE_C(0x000358), CCC_AR}, + {RUNE_C(0x000359), RUNE_C(0x00035A), CCC_B}, + {RUNE_C(0x00035B), RUNE_C(0x00035B), CCC_A}, + {RUNE_C(0x00035C), RUNE_C(0x00035C), CCC_DB}, + {RUNE_C(0x00035D), RUNE_C(0x00035E), CCC_DA}, + {RUNE_C(0x00035F), RUNE_C(0x00035F), CCC_DB}, + {RUNE_C(0x000360), RUNE_C(0x000361), CCC_DA}, + {RUNE_C(0x000362), RUNE_C(0x000362), CCC_DB}, + {RUNE_C(0x000363), RUNE_C(0x00036F), CCC_A}, + {RUNE_C(0x000483), RUNE_C(0x000487), CCC_A}, + {RUNE_C(0x000591), RUNE_C(0x000591), CCC_B}, + {RUNE_C(0x000592), RUNE_C(0x000595), CCC_A}, + {RUNE_C(0x000596), RUNE_C(0x000596), CCC_B}, + {RUNE_C(0x000597), RUNE_C(0x000599), CCC_A}, + {RUNE_C(0x00059A), RUNE_C(0x00059A), CCC_BR}, + {RUNE_C(0x00059B), RUNE_C(0x00059B), CCC_B}, + {RUNE_C(0x00059C), RUNE_C(0x0005A1), CCC_A}, + {RUNE_C(0x0005A2), RUNE_C(0x0005A7), CCC_B}, + {RUNE_C(0x0005A8), RUNE_C(0x0005A9), CCC_A}, + {RUNE_C(0x0005AA), RUNE_C(0x0005AA), CCC_B}, + {RUNE_C(0x0005AB), RUNE_C(0x0005AC), CCC_A}, + {RUNE_C(0x0005AD), RUNE_C(0x0005AD), CCC_BR}, + {RUNE_C(0x0005AE), RUNE_C(0x0005AE), CCC_AL}, + {RUNE_C(0x0005AF), RUNE_C(0x0005AF), CCC_A}, + {RUNE_C(0x0005B0), RUNE_C(0x0005B0), CCC_CCC10}, + {RUNE_C(0x0005B1), RUNE_C(0x0005B1), CCC_CCC11}, + {RUNE_C(0x0005B2), RUNE_C(0x0005B2), CCC_CCC12}, + {RUNE_C(0x0005B3), RUNE_C(0x0005B3), CCC_CCC13}, + {RUNE_C(0x0005B4), RUNE_C(0x0005B4), CCC_CCC14}, + {RUNE_C(0x0005B5), RUNE_C(0x0005B5), CCC_CCC15}, + {RUNE_C(0x0005B6), RUNE_C(0x0005B6), CCC_CCC16}, + {RUNE_C(0x0005B7), RUNE_C(0x0005B7), CCC_CCC17}, + {RUNE_C(0x0005B8), RUNE_C(0x0005B8), CCC_CCC18}, + {RUNE_C(0x0005B9), RUNE_C(0x0005BA), CCC_CCC19}, + {RUNE_C(0x0005BB), RUNE_C(0x0005BB), CCC_CCC20}, + {RUNE_C(0x0005BC), RUNE_C(0x0005BC), CCC_CCC21}, + {RUNE_C(0x0005BD), RUNE_C(0x0005BD), CCC_CCC22}, + {RUNE_C(0x0005BF), RUNE_C(0x0005BF), CCC_CCC23}, + {RUNE_C(0x0005C1), RUNE_C(0x0005C1), CCC_CCC24}, + {RUNE_C(0x0005C2), RUNE_C(0x0005C2), CCC_CCC25}, + {RUNE_C(0x0005C4), RUNE_C(0x0005C4), CCC_A}, + {RUNE_C(0x0005C5), RUNE_C(0x0005C5), CCC_B}, + {RUNE_C(0x0005C7), RUNE_C(0x0005C7), CCC_CCC18}, + {RUNE_C(0x000610), RUNE_C(0x000617), CCC_A}, + {RUNE_C(0x000618), RUNE_C(0x000618), CCC_CCC30}, + {RUNE_C(0x000619), RUNE_C(0x000619), CCC_CCC31}, + {RUNE_C(0x00061A), RUNE_C(0x00061A), CCC_CCC32}, + {RUNE_C(0x00064B), RUNE_C(0x00064B), CCC_CCC27}, + {RUNE_C(0x00064C), RUNE_C(0x00064C), CCC_CCC28}, + {RUNE_C(0x00064D), RUNE_C(0x00064D), CCC_CCC29}, + {RUNE_C(0x00064E), RUNE_C(0x00064E), CCC_CCC30}, + {RUNE_C(0x00064F), RUNE_C(0x00064F), CCC_CCC31}, + {RUNE_C(0x000650), RUNE_C(0x000650), CCC_CCC32}, + {RUNE_C(0x000651), RUNE_C(0x000651), CCC_CCC33}, + {RUNE_C(0x000652), RUNE_C(0x000652), CCC_CCC34}, + {RUNE_C(0x000653), RUNE_C(0x000654), CCC_A}, + {RUNE_C(0x000655), RUNE_C(0x000656), CCC_B}, + {RUNE_C(0x000657), RUNE_C(0x00065B), CCC_A}, + {RUNE_C(0x00065C), RUNE_C(0x00065C), CCC_B}, + {RUNE_C(0x00065D), RUNE_C(0x00065E), CCC_A}, + {RUNE_C(0x00065F), RUNE_C(0x00065F), CCC_B}, + {RUNE_C(0x000670), RUNE_C(0x000670), CCC_CCC35}, + {RUNE_C(0x0006D6), RUNE_C(0x0006DC), CCC_A}, + {RUNE_C(0x0006DF), RUNE_C(0x0006E2), CCC_A}, + {RUNE_C(0x0006E3), RUNE_C(0x0006E3), CCC_B}, + {RUNE_C(0x0006E4), RUNE_C(0x0006E4), CCC_A}, + {RUNE_C(0x0006E7), RUNE_C(0x0006E8), CCC_A}, + {RUNE_C(0x0006EA), RUNE_C(0x0006EA), CCC_B}, + {RUNE_C(0x0006EB), RUNE_C(0x0006EC), CCC_A}, + {RUNE_C(0x0006ED), RUNE_C(0x0006ED), CCC_B}, + {RUNE_C(0x000711), RUNE_C(0x000711), CCC_CCC36}, + {RUNE_C(0x000730), RUNE_C(0x000730), CCC_A}, + {RUNE_C(0x000731), RUNE_C(0x000731), CCC_B}, + {RUNE_C(0x000732), RUNE_C(0x000733), CCC_A}, + {RUNE_C(0x000734), RUNE_C(0x000734), CCC_B}, + {RUNE_C(0x000735), RUNE_C(0x000736), CCC_A}, + {RUNE_C(0x000737), RUNE_C(0x000739), CCC_B}, + {RUNE_C(0x00073A), RUNE_C(0x00073A), CCC_A}, + {RUNE_C(0x00073B), RUNE_C(0x00073C), CCC_B}, + {RUNE_C(0x00073D), RUNE_C(0x00073D), CCC_A}, + {RUNE_C(0x00073E), RUNE_C(0x00073E), CCC_B}, + {RUNE_C(0x00073F), RUNE_C(0x000741), CCC_A}, + {RUNE_C(0x000742), RUNE_C(0x000742), CCC_B}, + {RUNE_C(0x000743), RUNE_C(0x000743), CCC_A}, + {RUNE_C(0x000744), RUNE_C(0x000744), CCC_B}, + {RUNE_C(0x000745), RUNE_C(0x000745), CCC_A}, + {RUNE_C(0x000746), RUNE_C(0x000746), CCC_B}, + {RUNE_C(0x000747), RUNE_C(0x000747), CCC_A}, + {RUNE_C(0x000748), RUNE_C(0x000748), CCC_B}, + {RUNE_C(0x000749), RUNE_C(0x00074A), CCC_A}, + {RUNE_C(0x0007EB), RUNE_C(0x0007F1), CCC_A}, + {RUNE_C(0x0007F2), RUNE_C(0x0007F2), CCC_B}, + {RUNE_C(0x0007F3), RUNE_C(0x0007F3), CCC_A}, + {RUNE_C(0x0007FD), RUNE_C(0x0007FD), CCC_B}, + {RUNE_C(0x000816), RUNE_C(0x000819), CCC_A}, + {RUNE_C(0x00081B), RUNE_C(0x000823), CCC_A}, + {RUNE_C(0x000825), RUNE_C(0x000827), CCC_A}, + {RUNE_C(0x000829), RUNE_C(0x00082D), CCC_A}, + {RUNE_C(0x000859), RUNE_C(0x00085B), CCC_B}, + {RUNE_C(0x000898), RUNE_C(0x000898), CCC_A}, + {RUNE_C(0x000899), RUNE_C(0x00089B), CCC_B}, + {RUNE_C(0x00089C), RUNE_C(0x00089F), CCC_A}, + {RUNE_C(0x0008CA), RUNE_C(0x0008CE), CCC_A}, + {RUNE_C(0x0008CF), RUNE_C(0x0008D3), CCC_B}, + {RUNE_C(0x0008D4), RUNE_C(0x0008E1), CCC_A}, + {RUNE_C(0x0008E3), RUNE_C(0x0008E3), CCC_B}, + {RUNE_C(0x0008E4), RUNE_C(0x0008E5), CCC_A}, + {RUNE_C(0x0008E6), RUNE_C(0x0008E6), CCC_B}, + {RUNE_C(0x0008E7), RUNE_C(0x0008E8), CCC_A}, + {RUNE_C(0x0008E9), RUNE_C(0x0008E9), CCC_B}, + {RUNE_C(0x0008EA), RUNE_C(0x0008EC), CCC_A}, + {RUNE_C(0x0008ED), RUNE_C(0x0008EF), CCC_B}, + {RUNE_C(0x0008F0), RUNE_C(0x0008F0), CCC_CCC27}, + {RUNE_C(0x0008F1), RUNE_C(0x0008F1), CCC_CCC28}, + {RUNE_C(0x0008F2), RUNE_C(0x0008F2), CCC_CCC29}, + {RUNE_C(0x0008F3), RUNE_C(0x0008F5), CCC_A}, + {RUNE_C(0x0008F6), RUNE_C(0x0008F6), CCC_B}, + {RUNE_C(0x0008F7), RUNE_C(0x0008F8), CCC_A}, + {RUNE_C(0x0008F9), RUNE_C(0x0008FA), CCC_B}, + {RUNE_C(0x0008FB), RUNE_C(0x0008FF), CCC_A}, + {RUNE_C(0x00093C), RUNE_C(0x00093C), CCC_NK}, + {RUNE_C(0x00094D), RUNE_C(0x00094D), CCC_VR}, + {RUNE_C(0x000951), RUNE_C(0x000951), CCC_A}, + {RUNE_C(0x000952), RUNE_C(0x000952), CCC_B}, + {RUNE_C(0x000953), RUNE_C(0x000954), CCC_A}, + {RUNE_C(0x0009BC), RUNE_C(0x0009BC), CCC_NK}, + {RUNE_C(0x0009CD), RUNE_C(0x0009CD), CCC_VR}, + {RUNE_C(0x0009FE), RUNE_C(0x0009FE), CCC_A}, + {RUNE_C(0x000A3C), RUNE_C(0x000A3C), CCC_NK}, + {RUNE_C(0x000A4D), RUNE_C(0x000A4D), CCC_VR}, + {RUNE_C(0x000ABC), RUNE_C(0x000ABC), CCC_NK}, + {RUNE_C(0x000ACD), RUNE_C(0x000ACD), CCC_VR}, + {RUNE_C(0x000B3C), RUNE_C(0x000B3C), CCC_NK}, + {RUNE_C(0x000B4D), RUNE_C(0x000B4D), CCC_VR}, + {RUNE_C(0x000BCD), RUNE_C(0x000BCD), CCC_VR}, + {RUNE_C(0x000C3C), RUNE_C(0x000C3C), CCC_NK}, + {RUNE_C(0x000C4D), RUNE_C(0x000C4D), CCC_VR}, + {RUNE_C(0x000C55), RUNE_C(0x000C55), CCC_CCC84}, + {RUNE_C(0x000C56), RUNE_C(0x000C56), CCC_CCC91}, + {RUNE_C(0x000CBC), RUNE_C(0x000CBC), CCC_NK}, + {RUNE_C(0x000CCD), RUNE_C(0x000CCD), CCC_VR}, + {RUNE_C(0x000D3B), RUNE_C(0x000D3C), CCC_VR}, + {RUNE_C(0x000D4D), RUNE_C(0x000D4D), CCC_VR}, + {RUNE_C(0x000DCA), RUNE_C(0x000DCA), CCC_VR}, + {RUNE_C(0x000E38), RUNE_C(0x000E39), CCC_CCC103}, + {RUNE_C(0x000E3A), RUNE_C(0x000E3A), CCC_VR}, + {RUNE_C(0x000E48), RUNE_C(0x000E4B), CCC_CCC107}, + {RUNE_C(0x000EB8), RUNE_C(0x000EB9), CCC_CCC118}, + {RUNE_C(0x000EBA), RUNE_C(0x000EBA), CCC_VR}, + {RUNE_C(0x000EC8), RUNE_C(0x000ECB), CCC_CCC122}, + {RUNE_C(0x000F18), RUNE_C(0x000F19), CCC_B}, + {RUNE_C(0x000F35), RUNE_C(0x000F35), CCC_B}, + {RUNE_C(0x000F37), RUNE_C(0x000F37), CCC_B}, + {RUNE_C(0x000F39), RUNE_C(0x000F39), CCC_ATAR}, + {RUNE_C(0x000F71), RUNE_C(0x000F71), CCC_CCC129}, + {RUNE_C(0x000F72), RUNE_C(0x000F72), CCC_CCC130}, + {RUNE_C(0x000F74), RUNE_C(0x000F74), CCC_CCC132}, + {RUNE_C(0x000F7A), RUNE_C(0x000F7D), CCC_CCC130}, + {RUNE_C(0x000F80), RUNE_C(0x000F80), CCC_CCC130}, + {RUNE_C(0x000F82), RUNE_C(0x000F83), CCC_A}, + {RUNE_C(0x000F84), RUNE_C(0x000F84), CCC_VR}, + {RUNE_C(0x000F86), RUNE_C(0x000F87), CCC_A}, + {RUNE_C(0x000FC6), RUNE_C(0x000FC6), CCC_B}, + {RUNE_C(0x001037), RUNE_C(0x001037), CCC_NK}, + {RUNE_C(0x001039), RUNE_C(0x00103A), CCC_VR}, + {RUNE_C(0x00108D), RUNE_C(0x00108D), CCC_B}, + {RUNE_C(0x00135D), RUNE_C(0x00135F), CCC_A}, + {RUNE_C(0x001714), RUNE_C(0x001715), CCC_VR}, + {RUNE_C(0x001734), RUNE_C(0x001734), CCC_VR}, + {RUNE_C(0x0017D2), RUNE_C(0x0017D2), CCC_VR}, + {RUNE_C(0x0017DD), RUNE_C(0x0017DD), CCC_A}, + {RUNE_C(0x0018A9), RUNE_C(0x0018A9), CCC_AL}, + {RUNE_C(0x001939), RUNE_C(0x001939), CCC_BR}, + {RUNE_C(0x00193A), RUNE_C(0x00193A), CCC_A}, + {RUNE_C(0x00193B), RUNE_C(0x00193B), CCC_B}, + {RUNE_C(0x001A17), RUNE_C(0x001A17), CCC_A}, + {RUNE_C(0x001A18), RUNE_C(0x001A18), CCC_B}, + {RUNE_C(0x001A60), RUNE_C(0x001A60), CCC_VR}, + {RUNE_C(0x001A75), RUNE_C(0x001A7C), CCC_A}, + {RUNE_C(0x001A7F), RUNE_C(0x001A7F), CCC_B}, + {RUNE_C(0x001AB0), RUNE_C(0x001AB4), CCC_A}, + {RUNE_C(0x001AB5), RUNE_C(0x001ABA), CCC_B}, + {RUNE_C(0x001ABB), RUNE_C(0x001ABC), CCC_A}, + {RUNE_C(0x001ABD), RUNE_C(0x001ABD), CCC_B}, + {RUNE_C(0x001ABF), RUNE_C(0x001AC0), CCC_B}, + {RUNE_C(0x001AC1), RUNE_C(0x001AC2), CCC_A}, + {RUNE_C(0x001AC3), RUNE_C(0x001AC4), CCC_B}, + {RUNE_C(0x001AC5), RUNE_C(0x001AC9), CCC_A}, + {RUNE_C(0x001ACA), RUNE_C(0x001ACA), CCC_B}, + {RUNE_C(0x001ACB), RUNE_C(0x001ACE), CCC_A}, + {RUNE_C(0x001B34), RUNE_C(0x001B34), CCC_NK}, + {RUNE_C(0x001B44), RUNE_C(0x001B44), CCC_VR}, + {RUNE_C(0x001B6B), RUNE_C(0x001B6B), CCC_A}, + {RUNE_C(0x001B6C), RUNE_C(0x001B6C), CCC_B}, + {RUNE_C(0x001B6D), RUNE_C(0x001B73), CCC_A}, + {RUNE_C(0x001BAA), RUNE_C(0x001BAB), CCC_VR}, + {RUNE_C(0x001BE6), RUNE_C(0x001BE6), CCC_NK}, + {RUNE_C(0x001BF2), RUNE_C(0x001BF3), CCC_VR}, + {RUNE_C(0x001C37), RUNE_C(0x001C37), CCC_NK}, + {RUNE_C(0x001CD0), RUNE_C(0x001CD2), CCC_A}, + {RUNE_C(0x001CD4), RUNE_C(0x001CD4), CCC_OV}, + {RUNE_C(0x001CD5), RUNE_C(0x001CD9), CCC_B}, + {RUNE_C(0x001CDA), RUNE_C(0x001CDB), CCC_A}, + {RUNE_C(0x001CDC), RUNE_C(0x001CDF), CCC_B}, + {RUNE_C(0x001CE0), RUNE_C(0x001CE0), CCC_A}, + {RUNE_C(0x001CE2), RUNE_C(0x001CE8), CCC_OV}, + {RUNE_C(0x001CED), RUNE_C(0x001CED), CCC_B}, + {RUNE_C(0x001CF4), RUNE_C(0x001CF4), CCC_A}, + {RUNE_C(0x001CF8), RUNE_C(0x001CF9), CCC_A}, + {RUNE_C(0x001DC0), RUNE_C(0x001DC1), CCC_A}, + {RUNE_C(0x001DC2), RUNE_C(0x001DC2), CCC_B}, + {RUNE_C(0x001DC3), RUNE_C(0x001DC9), CCC_A}, + {RUNE_C(0x001DCA), RUNE_C(0x001DCA), CCC_B}, + {RUNE_C(0x001DCB), RUNE_C(0x001DCC), CCC_A}, + {RUNE_C(0x001DCD), RUNE_C(0x001DCD), CCC_DA}, + {RUNE_C(0x001DCE), RUNE_C(0x001DCE), CCC_ATA}, + {RUNE_C(0x001DCF), RUNE_C(0x001DCF), CCC_B}, + {RUNE_C(0x001DD0), RUNE_C(0x001DD0), CCC_ATB}, + {RUNE_C(0x001DD1), RUNE_C(0x001DF5), CCC_A}, + {RUNE_C(0x001DF6), RUNE_C(0x001DF6), CCC_AR}, + {RUNE_C(0x001DF7), RUNE_C(0x001DF8), CCC_AL}, + {RUNE_C(0x001DF9), RUNE_C(0x001DF9), CCC_B}, + {RUNE_C(0x001DFA), RUNE_C(0x001DFA), CCC_BL}, + {RUNE_C(0x001DFB), RUNE_C(0x001DFB), CCC_A}, + {RUNE_C(0x001DFC), RUNE_C(0x001DFC), CCC_DB}, + {RUNE_C(0x001DFD), RUNE_C(0x001DFD), CCC_B}, + {RUNE_C(0x001DFE), RUNE_C(0x001DFE), CCC_A}, + {RUNE_C(0x001DFF), RUNE_C(0x001DFF), CCC_B}, + {RUNE_C(0x0020D0), RUNE_C(0x0020D1), CCC_A}, + {RUNE_C(0x0020D2), RUNE_C(0x0020D3), CCC_OV}, + {RUNE_C(0x0020D4), RUNE_C(0x0020D7), CCC_A}, + {RUNE_C(0x0020D8), RUNE_C(0x0020DA), CCC_OV}, + {RUNE_C(0x0020DB), RUNE_C(0x0020DC), CCC_A}, + {RUNE_C(0x0020E1), RUNE_C(0x0020E1), CCC_A}, + {RUNE_C(0x0020E5), RUNE_C(0x0020E6), CCC_OV}, + {RUNE_C(0x0020E7), RUNE_C(0x0020E7), CCC_A}, + {RUNE_C(0x0020E8), RUNE_C(0x0020E8), CCC_B}, + {RUNE_C(0x0020E9), RUNE_C(0x0020E9), CCC_A}, + {RUNE_C(0x0020EA), RUNE_C(0x0020EB), CCC_OV}, + {RUNE_C(0x0020EC), RUNE_C(0x0020EF), CCC_B}, + {RUNE_C(0x0020F0), RUNE_C(0x0020F0), CCC_A}, + {RUNE_C(0x002CEF), RUNE_C(0x002CF1), CCC_A}, + {RUNE_C(0x002D7F), RUNE_C(0x002D7F), CCC_VR}, + {RUNE_C(0x002DE0), RUNE_C(0x002DFF), CCC_A}, + {RUNE_C(0x00302A), RUNE_C(0x00302A), CCC_BL}, + {RUNE_C(0x00302B), RUNE_C(0x00302B), CCC_AL}, + {RUNE_C(0x00302C), RUNE_C(0x00302C), CCC_AR}, + {RUNE_C(0x00302D), RUNE_C(0x00302D), CCC_BR}, + {RUNE_C(0x00302E), RUNE_C(0x00302F), CCC_L}, + {RUNE_C(0x003099), RUNE_C(0x00309A), CCC_KV}, + {RUNE_C(0x00A66F), RUNE_C(0x00A66F), CCC_A}, + {RUNE_C(0x00A674), RUNE_C(0x00A67D), CCC_A}, + {RUNE_C(0x00A69E), RUNE_C(0x00A69F), CCC_A}, + {RUNE_C(0x00A6F0), RUNE_C(0x00A6F1), CCC_A}, + {RUNE_C(0x00A806), RUNE_C(0x00A806), CCC_VR}, + {RUNE_C(0x00A82C), RUNE_C(0x00A82C), CCC_VR}, + {RUNE_C(0x00A8C4), RUNE_C(0x00A8C4), CCC_VR}, + {RUNE_C(0x00A8E0), RUNE_C(0x00A8F1), CCC_A}, + {RUNE_C(0x00A92B), RUNE_C(0x00A92D), CCC_B}, + {RUNE_C(0x00A953), RUNE_C(0x00A953), CCC_VR}, + {RUNE_C(0x00A9B3), RUNE_C(0x00A9B3), CCC_NK}, + {RUNE_C(0x00A9C0), RUNE_C(0x00A9C0), CCC_VR}, + {RUNE_C(0x00AAB0), RUNE_C(0x00AAB0), CCC_A}, + {RUNE_C(0x00AAB2), RUNE_C(0x00AAB3), CCC_A}, + {RUNE_C(0x00AAB4), RUNE_C(0x00AAB4), CCC_B}, + {RUNE_C(0x00AAB7), RUNE_C(0x00AAB8), CCC_A}, + {RUNE_C(0x00AABE), RUNE_C(0x00AABF), CCC_A}, + {RUNE_C(0x00AAC1), RUNE_C(0x00AAC1), CCC_A}, + {RUNE_C(0x00AAF6), RUNE_C(0x00AAF6), CCC_VR}, + {RUNE_C(0x00ABED), RUNE_C(0x00ABED), CCC_VR}, + {RUNE_C(0x00FB1E), RUNE_C(0x00FB1E), CCC_CCC26}, + {RUNE_C(0x00FE20), RUNE_C(0x00FE26), CCC_A}, + {RUNE_C(0x00FE27), RUNE_C(0x00FE2D), CCC_B}, + {RUNE_C(0x00FE2E), RUNE_C(0x00FE2F), CCC_A}, + {RUNE_C(0x0101FD), RUNE_C(0x0101FD), CCC_B}, + {RUNE_C(0x0102E0), RUNE_C(0x0102E0), CCC_B}, + {RUNE_C(0x010376), RUNE_C(0x01037A), CCC_A}, + {RUNE_C(0x010A0D), RUNE_C(0x010A0D), CCC_B}, + {RUNE_C(0x010A0F), RUNE_C(0x010A0F), CCC_A}, + {RUNE_C(0x010A38), RUNE_C(0x010A38), CCC_A}, + {RUNE_C(0x010A39), RUNE_C(0x010A39), CCC_OV}, + {RUNE_C(0x010A3A), RUNE_C(0x010A3A), CCC_B}, + {RUNE_C(0x010A3F), RUNE_C(0x010A3F), CCC_VR}, + {RUNE_C(0x010AE5), RUNE_C(0x010AE5), CCC_A}, + {RUNE_C(0x010AE6), RUNE_C(0x010AE6), CCC_B}, + {RUNE_C(0x010D24), RUNE_C(0x010D27), CCC_A}, + {RUNE_C(0x010EAB), RUNE_C(0x010EAC), CCC_A}, + {RUNE_C(0x010EFD), RUNE_C(0x010EFF), CCC_B}, + {RUNE_C(0x010F46), RUNE_C(0x010F47), CCC_B}, + {RUNE_C(0x010F48), RUNE_C(0x010F4A), CCC_A}, + {RUNE_C(0x010F4B), RUNE_C(0x010F4B), CCC_B}, + {RUNE_C(0x010F4C), RUNE_C(0x010F4C), CCC_A}, + {RUNE_C(0x010F4D), RUNE_C(0x010F50), CCC_B}, + {RUNE_C(0x010F82), RUNE_C(0x010F82), CCC_A}, + {RUNE_C(0x010F83), RUNE_C(0x010F83), CCC_B}, + {RUNE_C(0x010F84), RUNE_C(0x010F84), CCC_A}, + {RUNE_C(0x010F85), RUNE_C(0x010F85), CCC_B}, + {RUNE_C(0x011046), RUNE_C(0x011046), CCC_VR}, + {RUNE_C(0x011070), RUNE_C(0x011070), CCC_VR}, + {RUNE_C(0x01107F), RUNE_C(0x01107F), CCC_VR}, + {RUNE_C(0x0110B9), RUNE_C(0x0110B9), CCC_VR}, + {RUNE_C(0x0110BA), RUNE_C(0x0110BA), CCC_NK}, + {RUNE_C(0x011100), RUNE_C(0x011102), CCC_A}, + {RUNE_C(0x011133), RUNE_C(0x011134), CCC_VR}, + {RUNE_C(0x011173), RUNE_C(0x011173), CCC_NK}, + {RUNE_C(0x0111C0), RUNE_C(0x0111C0), CCC_VR}, + {RUNE_C(0x0111CA), RUNE_C(0x0111CA), CCC_NK}, + {RUNE_C(0x011235), RUNE_C(0x011235), CCC_VR}, + {RUNE_C(0x011236), RUNE_C(0x011236), CCC_NK}, + {RUNE_C(0x0112E9), RUNE_C(0x0112E9), CCC_NK}, + {RUNE_C(0x0112EA), RUNE_C(0x0112EA), CCC_VR}, + {RUNE_C(0x01133B), RUNE_C(0x01133C), CCC_NK}, + {RUNE_C(0x01134D), RUNE_C(0x01134D), CCC_VR}, + {RUNE_C(0x011366), RUNE_C(0x01136C), CCC_A}, + {RUNE_C(0x011370), RUNE_C(0x011374), CCC_A}, + {RUNE_C(0x011442), RUNE_C(0x011442), CCC_VR}, + {RUNE_C(0x011446), RUNE_C(0x011446), CCC_NK}, + {RUNE_C(0x01145E), RUNE_C(0x01145E), CCC_A}, + {RUNE_C(0x0114C2), RUNE_C(0x0114C2), CCC_VR}, + {RUNE_C(0x0114C3), RUNE_C(0x0114C3), CCC_NK}, + {RUNE_C(0x0115BF), RUNE_C(0x0115BF), CCC_VR}, + {RUNE_C(0x0115C0), RUNE_C(0x0115C0), CCC_NK}, + {RUNE_C(0x01163F), RUNE_C(0x01163F), CCC_VR}, + {RUNE_C(0x0116B6), RUNE_C(0x0116B6), CCC_VR}, + {RUNE_C(0x0116B7), RUNE_C(0x0116B7), CCC_NK}, + {RUNE_C(0x01172B), RUNE_C(0x01172B), CCC_VR}, + {RUNE_C(0x011839), RUNE_C(0x011839), CCC_VR}, + {RUNE_C(0x01183A), RUNE_C(0x01183A), CCC_NK}, + {RUNE_C(0x01193D), RUNE_C(0x01193E), CCC_VR}, + {RUNE_C(0x011943), RUNE_C(0x011943), CCC_NK}, + {RUNE_C(0x0119E0), RUNE_C(0x0119E0), CCC_VR}, + {RUNE_C(0x011A34), RUNE_C(0x011A34), CCC_VR}, + {RUNE_C(0x011A47), RUNE_C(0x011A47), CCC_VR}, + {RUNE_C(0x011A99), RUNE_C(0x011A99), CCC_VR}, + {RUNE_C(0x011C3F), RUNE_C(0x011C3F), CCC_VR}, + {RUNE_C(0x011D42), RUNE_C(0x011D42), CCC_NK}, + {RUNE_C(0x011D44), RUNE_C(0x011D45), CCC_VR}, + {RUNE_C(0x011D97), RUNE_C(0x011D97), CCC_VR}, + {RUNE_C(0x011F41), RUNE_C(0x011F42), CCC_VR}, + {RUNE_C(0x016AF0), RUNE_C(0x016AF4), CCC_OV}, + {RUNE_C(0x016B30), RUNE_C(0x016B36), CCC_A}, + {RUNE_C(0x016FF0), RUNE_C(0x016FF1), CCC_HANR}, + {RUNE_C(0x01BC9E), RUNE_C(0x01BC9E), CCC_OV}, + {RUNE_C(0x01D165), RUNE_C(0x01D166), CCC_ATAR}, + {RUNE_C(0x01D167), RUNE_C(0x01D169), CCC_OV}, + {RUNE_C(0x01D16D), RUNE_C(0x01D16D), CCC_R}, + {RUNE_C(0x01D16E), RUNE_C(0x01D172), CCC_ATAR}, + {RUNE_C(0x01D17B), RUNE_C(0x01D182), CCC_B}, + {RUNE_C(0x01D185), RUNE_C(0x01D189), CCC_A}, + {RUNE_C(0x01D18A), RUNE_C(0x01D18B), CCC_B}, + {RUNE_C(0x01D1AA), RUNE_C(0x01D1AD), CCC_A}, + {RUNE_C(0x01D242), RUNE_C(0x01D244), CCC_A}, + {RUNE_C(0x01E000), RUNE_C(0x01E006), CCC_A}, + {RUNE_C(0x01E008), RUNE_C(0x01E018), CCC_A}, + {RUNE_C(0x01E01B), RUNE_C(0x01E021), CCC_A}, + {RUNE_C(0x01E023), RUNE_C(0x01E024), CCC_A}, + {RUNE_C(0x01E026), RUNE_C(0x01E02A), CCC_A}, + {RUNE_C(0x01E08F), RUNE_C(0x01E08F), CCC_A}, + {RUNE_C(0x01E130), RUNE_C(0x01E136), CCC_A}, + {RUNE_C(0x01E2AE), RUNE_C(0x01E2AE), CCC_A}, + {RUNE_C(0x01E2EC), RUNE_C(0x01E2EF), CCC_A}, + {RUNE_C(0x01E4EC), RUNE_C(0x01E4ED), CCC_AR}, + {RUNE_C(0x01E4EE), RUNE_C(0x01E4EE), CCC_B}, + {RUNE_C(0x01E4EF), RUNE_C(0x01E4EF), CCC_A}, + {RUNE_C(0x01E8D0), RUNE_C(0x01E8D6), CCC_B}, + {RUNE_C(0x01E944), RUNE_C(0x01E949), CCC_A}, + {RUNE_C(0x01E94A), RUNE_C(0x01E94A), CCC_NK}, +}; + +_MLIB_DEFINE_BSEARCH(enum uprop_ccc, lookup, CCC_NR) + +enum uprop_ccc +uprop_get_ccc(rune ch) +{ + return ch < lookup[0].lo ? CCC_NR : mlib_lookup(ch); +} -- cgit v1.2.3