| 1 | /* == Start of generated table == */ |
| 2 | /* |
| 3 | * The following table is generated by running: |
| 4 | * |
| 5 | * ./gen-indic-table.py IndicSyllabicCategory.txt IndicPositionalCategory.txt Blocks.txt |
| 6 | * |
| 7 | * on files with these headers: |
| 8 | * |
| 9 | * # IndicSyllabicCategory-15.0.0.txt |
| 10 | * # Date: 2022-05-26, 02:18:00 GMT [KW, RP] |
| 11 | * # IndicPositionalCategory-15.0.0.txt |
| 12 | * # Date: 2022-05-26, 02:18:00 GMT [KW, RP] |
| 13 | * # Blocks-15.0.0.txt |
| 14 | * # Date: 2022-01-28, 20:58:00 GMT [KW] |
| 15 | */ |
| 16 | |
| 17 | #include "hb.hh" |
| 18 | |
| 19 | #ifndef HB_NO_OT_SHAPE |
| 20 | |
| 21 | #include "hb-ot-shaper-indic.hh" |
| 22 | |
| 23 | #pragma GCC diagnostic push |
| 24 | #pragma GCC diagnostic ignored "-Wunused-macros" |
| 25 | |
| 26 | #include "hb-ot-shaper-indic-machine.hh" |
| 27 | #include "hb-ot-shaper-khmer-machine.hh" |
| 28 | #include "hb-ot-shaper-myanmar-machine.hh" |
| 29 | |
| 30 | /* indic */ |
| 31 | #define OT_X I_Cat(X) |
| 32 | #define OT_C I_Cat(C) |
| 33 | #define OT_V I_Cat(V) |
| 34 | #define OT_N I_Cat(N) |
| 35 | #define OT_H I_Cat(H) |
| 36 | #define OT_ZWNJ I_Cat(ZWNJ) |
| 37 | #define OT_ZWJ I_Cat(ZWJ) |
| 38 | #define OT_M I_Cat(M) |
| 39 | #define OT_SM I_Cat(SM) |
| 40 | #define OT_A I_Cat(A) |
| 41 | #define OT_VD I_Cat(VD) |
| 42 | #define OT_PLACEHOLDER I_Cat(PLACEHOLDER) |
| 43 | #define OT_DOTTEDCIRCLE I_Cat(DOTTEDCIRCLE) |
| 44 | #define OT_RS I_Cat(RS) |
| 45 | #define OT_MPst I_Cat(MPst) |
| 46 | #define OT_Repha I_Cat(Repha) |
| 47 | #define OT_Ra I_Cat(Ra) |
| 48 | #define OT_CM I_Cat(CM) |
| 49 | #define OT_Symbol I_Cat(Symbol) |
| 50 | #define OT_CS I_Cat(CS) |
| 51 | /* khmer */ |
| 52 | #define OT_VAbv K_Cat(VAbv) |
| 53 | #define OT_VBlw K_Cat(VBlw) |
| 54 | #define OT_VPre K_Cat(VPre) |
| 55 | #define OT_VPst K_Cat(VPst) |
| 56 | #define OT_Robatic K_Cat(Robatic) |
| 57 | #define OT_Xgroup K_Cat(Xgroup) |
| 58 | #define OT_Ygroup K_Cat(Ygroup) |
| 59 | /* myanmar */ |
| 60 | static_assert (OT_VAbv == M_Cat(VAbv), "" ); |
| 61 | static_assert (OT_VBlw == M_Cat(VBlw), "" ); |
| 62 | static_assert (OT_VPre == M_Cat(VPre), "" ); |
| 63 | static_assert (OT_VPst == M_Cat(VPst), "" ); |
| 64 | #define OT_IV M_Cat(IV) |
| 65 | #define OT_As M_Cat(As) |
| 66 | #define OT_DB M_Cat(DB) |
| 67 | #define OT_GB M_Cat(GB) |
| 68 | #define OT_MH M_Cat(MH) |
| 69 | #define OT_MR M_Cat(MR) |
| 70 | #define OT_MW M_Cat(MW) |
| 71 | #define OT_MY M_Cat(MY) |
| 72 | #define OT_PT M_Cat(PT) |
| 73 | #define OT_VS M_Cat(VS) |
| 74 | #define OT_ML M_Cat(ML) |
| 75 | |
| 76 | |
| 77 | #define _OT_A OT_A /* 53 chars; A */ |
| 78 | #define _OT_As OT_As /* 1 chars; As */ |
| 79 | #define _OT_C OT_C /* 478 chars; C */ |
| 80 | #define _OT_CM OT_CM /* 1 chars; CM */ |
| 81 | #define _OT_CS OT_CS /* 2 chars; CS */ |
| 82 | #define _OT_DC OT_DOTTEDCIRCLE /* 1 chars; DOTTEDCIRCLE */ |
| 83 | #define _OT_H OT_H /* 11 chars; H */ |
| 84 | #define _OT_M OT_M /* 142 chars; M */ |
| 85 | #define _OT_MH OT_MH /* 1 chars; MH */ |
| 86 | #define _OT_ML OT_ML /* 1 chars; ML */ |
| 87 | #define _OT_MP OT_MPst /* 1 chars; MPst */ |
| 88 | #define _OT_MR OT_MR /* 1 chars; MR */ |
| 89 | #define _OT_MW OT_MW /* 2 chars; MW */ |
| 90 | #define _OT_MY OT_MY /* 3 chars; MY */ |
| 91 | #define _OT_N OT_N /* 17 chars; N */ |
| 92 | #define _OT_GB OT_PLACEHOLDER /* 165 chars; PLACEHOLDER */ |
| 93 | #define _OT_PT OT_PT /* 8 chars; PT */ |
| 94 | #define _OT_R OT_Ra /* 14 chars; Ra */ |
| 95 | #define _OT_Rf OT_Repha /* 1 chars; Repha */ |
| 96 | #define _OT_Rt OT_Robatic /* 3 chars; Robatic */ |
| 97 | #define _OT_SM OT_SM /* 56 chars; SM */ |
| 98 | #define _OT_S OT_Symbol /* 22 chars; Symbol */ |
| 99 | #define _OT_V OT_V /* 172 chars; V */ |
| 100 | #define _OT_VA OT_VAbv /* 18 chars; VAbv */ |
| 101 | #define _OT_VB OT_VBlw /* 7 chars; VBlw */ |
| 102 | #define _OT_VL OT_VPre /* 5 chars; VPre */ |
| 103 | #define _OT_VR OT_VPst /* 13 chars; VPst */ |
| 104 | #define _OT_VS OT_VS /* 16 chars; VS */ |
| 105 | #define _OT_X OT_X /* 2 chars; X */ |
| 106 | #define _OT_Xg OT_Xgroup /* 7 chars; Xgroup */ |
| 107 | #define _OT_Yg OT_Ygroup /* 4 chars; Ygroup */ |
| 108 | #define _OT_ZWJ OT_ZWJ /* 1 chars; ZWJ */ |
| 109 | #define _OT_ZWNJ OT_ZWNJ /* 1 chars; ZWNJ */ |
| 110 | |
| 111 | #define _POS_T POS_ABOVE_C /* 22 chars; ABOVE_C */ |
| 112 | #define _POS_A POS_AFTER_MAIN /* 3 chars; AFTER_MAIN */ |
| 113 | #define _POS_AP POS_AFTER_POST /* 50 chars; AFTER_POST */ |
| 114 | #define _POS_AS POS_AFTER_SUB /* 51 chars; AFTER_SUB */ |
| 115 | #define _POS_C POS_BASE_C /* 833 chars; BASE_C */ |
| 116 | #define _POS_BS POS_BEFORE_SUB /* 25 chars; BEFORE_SUB */ |
| 117 | #define _POS_B POS_BELOW_C /* 13 chars; BELOW_C */ |
| 118 | #define _POS_X POS_END /* 71 chars; END */ |
| 119 | #define _POS_R POS_POST_C /* 13 chars; POST_C */ |
| 120 | #define _POS_L POS_PRE_C /* 5 chars; PRE_C */ |
| 121 | #define _POS_LM POS_PRE_M /* 14 chars; PRE_M */ |
| 122 | #define _POS_SM POS_SMVD /* 130 chars; SMVD */ |
| 123 | |
| 124 | #pragma GCC diagnostic pop |
| 125 | |
| 126 | #define INDIC_COMBINE_CATEGORIES(S,M) ((S) | ((M) << 8)) |
| 127 | |
| 128 | #define _(S,M) INDIC_COMBINE_CATEGORIES (_OT_##S, _POS_##M) |
| 129 | |
| 130 | |
| 131 | static const uint16_t indic_table[] = { |
| 132 | |
| 133 | |
| 134 | #define indic_offset_0x0028u 0 |
| 135 | |
| 136 | |
| 137 | /* Basic Latin */ |
| 138 | |
| 139 | /* 0028 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,C), _(X,X), _(X,X), |
| 140 | /* 0030 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 141 | /* 0038 */ _(GB,C), _(GB,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 142 | |
| 143 | #define indic_offset_0x00b0u 24 |
| 144 | |
| 145 | |
| 146 | /* Latin-1 Supplement */ |
| 147 | |
| 148 | /* 00B0 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X), |
| 149 | /* 00B8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 150 | /* 00C0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 151 | /* 00C8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 152 | /* 00D0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,C), |
| 153 | |
| 154 | #define indic_offset_0x0900u 64 |
| 155 | |
| 156 | |
| 157 | /* Devanagari */ |
| 158 | |
| 159 | /* 0900 */_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM), _(V,C), _(V,C), _(V,C), _(V,C), |
| 160 | /* 0908 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), |
| 161 | /* 0910 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 162 | /* 0918 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 163 | /* 0920 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 164 | /* 0928 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 165 | /* 0930 */ _(R,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 166 | /* 0938 */ _(C,C), _(C,C), _(M,AS), _(M,AS), _(N,X), _(S,SM), _(M,AS), _(M,LM), |
| 167 | /* 0940 */ _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(M,AS), |
| 168 | /* 0948 */ _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(H,B), _(M,LM), _(M,AS), |
| 169 | /* 0950 */ _(X,X), _(A,SM), _(A,SM),_(SM,SM),_(SM,SM), _(M,AS), _(M,AS), _(M,AS), |
| 170 | /* 0958 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 171 | /* 0960 */ _(V,C), _(V,C), _(M,AS), _(M,AS), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 172 | /* 0968 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 173 | /* 0970 */ _(X,X), _(X,X), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), |
| 174 | /* 0978 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 175 | |
| 176 | /* Bengali */ |
| 177 | |
| 178 | /* 0980 */ _(GB,C),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(V,C), _(V,C), _(V,C), |
| 179 | /* 0988 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(X,X), _(X,X), _(V,C), |
| 180 | /* 0990 */ _(V,C), _(X,X), _(X,X), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 181 | /* 0998 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 182 | /* 09A0 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 183 | /* 09A8 */ _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 184 | /* 09B0 */ _(R,C), _(X,X), _(C,C), _(X,X), _(X,X), _(X,X), _(C,C), _(C,C), |
| 185 | /* 09B8 */ _(C,C), _(C,C), _(X,X), _(X,X), _(N,X), _(S,SM), _(M,AP), _(M,LM), |
| 186 | /* 09C0 */ _(M,AP), _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(X,X), _(X,X), _(M,LM), |
| 187 | /* 09C8 */ _(M,LM), _(X,X), _(X,X), _(M,AP), _(M,AP), _(H,B), _(C,C), _(X,X), |
| 188 | /* 09D0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,AP), |
| 189 | /* 09D8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(C,C), _(C,C), _(X,X), _(C,C), |
| 190 | /* 09E0 */ _(V,C), _(V,C), _(M,AS), _(M,AS), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 191 | /* 09E8 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 192 | /* 09F0 */ _(R,C), _(C,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 193 | /* 09F8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(GB,C), _(X,X),_(SM,SM), _(X,X), |
| 194 | |
| 195 | /* Gurmukhi */ |
| 196 | |
| 197 | /* 0A00 */ _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(V,C), _(V,C), _(V,C), |
| 198 | /* 0A08 */ _(V,C), _(V,C), _(V,C), _(X,X), _(X,X), _(X,X), _(X,X), _(V,C), |
| 199 | /* 0A10 */ _(V,C), _(X,X), _(X,X), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 200 | /* 0A18 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 201 | /* 0A20 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 202 | /* 0A28 */ _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 203 | /* 0A30 */ _(R,C), _(X,X), _(C,C), _(C,C), _(X,X), _(C,C), _(C,C), _(X,X), |
| 204 | /* 0A38 */ _(C,C), _(C,C), _(X,X), _(X,X), _(N,X), _(X,X), _(M,AP), _(M,LM), |
| 205 | /* 0A40 */_(MP,AP), _(M,AP), _(M,AP), _(X,X), _(X,X), _(X,X), _(X,X), _(M,AP), |
| 206 | /* 0A48 */ _(M,AP), _(X,X), _(X,X), _(M,AP), _(M,AP), _(H,B), _(X,X), _(X,X), |
| 207 | /* 0A50 */ _(X,X), _(M,B), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 208 | /* 0A58 */ _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(X,X), _(C,C), _(X,X), |
| 209 | /* 0A60 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 210 | /* 0A68 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 211 | /* 0A70 */_(SM,SM),_(SM,SM), _(C,C), _(C,C), _(X,X), _(CM,C), _(X,X), _(X,X), |
| 212 | /* 0A78 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 213 | |
| 214 | /* Gujarati */ |
| 215 | |
| 216 | /* 0A80 */ _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(V,C), _(V,C), _(V,C), |
| 217 | /* 0A88 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(X,X), _(V,C), |
| 218 | /* 0A90 */ _(V,C), _(V,C), _(X,X), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 219 | /* 0A98 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 220 | /* 0AA0 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 221 | /* 0AA8 */ _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 222 | /* 0AB0 */ _(R,C), _(X,X), _(C,C), _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), |
| 223 | /* 0AB8 */ _(C,C), _(C,C), _(X,X), _(X,X), _(N,X), _(S,SM), _(M,AP), _(M,LM), |
| 224 | /* 0AC0 */ _(M,AP), _(M,AP), _(M,AP), _(M,AP), _(M,AP), _(M,AS), _(X,X), _(M,AS), |
| 225 | /* 0AC8 */ _(M,AS), _(M,AP), _(X,X), _(M,AP), _(M,AP), _(H,B), _(X,X), _(X,X), |
| 226 | /* 0AD0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 227 | /* 0AD8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 228 | /* 0AE0 */ _(V,C), _(V,C), _(M,AP), _(M,AP), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 229 | /* 0AE8 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 230 | /* 0AF0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 231 | /* 0AF8 */ _(X,X), _(C,C), _(A,SM), _(N,X), _(A,SM), _(N,X), _(N,X), _(N,X), |
| 232 | |
| 233 | /* Oriya */ |
| 234 | |
| 235 | /* 0B00 */ _(X,X),_(SM,BS),_(SM,SM),_(SM,SM), _(X,X), _(V,C), _(V,C), _(V,C), |
| 236 | /* 0B08 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(X,X), _(X,X), _(V,C), |
| 237 | /* 0B10 */ _(V,C), _(X,X), _(X,X), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 238 | /* 0B18 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 239 | /* 0B20 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 240 | /* 0B28 */ _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 241 | /* 0B30 */ _(R,C), _(X,X), _(C,C), _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), |
| 242 | /* 0B38 */ _(C,C), _(C,C), _(X,X), _(X,X), _(N,X), _(S,SM), _(M,AP), _(M,A), |
| 243 | /* 0B40 */ _(M,AP), _(M,AS), _(M,AS), _(M,AS), _(M,AS), _(X,X), _(X,X), _(M,LM), |
| 244 | /* 0B48 */ _(M,A), _(X,X), _(X,X), _(M,AP), _(M,AP), _(H,B), _(X,X), _(X,X), |
| 245 | /* 0B50 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(N,X), _(M,A), _(M,AP), |
| 246 | /* 0B58 */ _(X,X), _(X,X), _(X,X), _(X,X), _(C,C), _(C,C), _(X,X), _(C,C), |
| 247 | /* 0B60 */ _(V,C), _(V,C), _(M,AS), _(M,AS), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 248 | /* 0B68 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 249 | /* 0B70 */ _(X,X), _(C,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 250 | /* 0B78 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 251 | |
| 252 | /* Tamil */ |
| 253 | |
| 254 | /* 0B80 */ _(X,X), _(X,X),_(SM,SM), _(X,X), _(X,X), _(V,C), _(V,C), _(V,C), |
| 255 | /* 0B88 */ _(V,C), _(V,C), _(V,C), _(X,X), _(X,X), _(X,X), _(V,C), _(V,C), |
| 256 | /* 0B90 */ _(V,C), _(X,X), _(V,C), _(V,C), _(V,C), _(C,C), _(X,X), _(X,X), |
| 257 | /* 0B98 */ _(X,X), _(C,C), _(C,C), _(X,X), _(C,C), _(X,X), _(C,C), _(C,C), |
| 258 | /* 0BA0 */ _(X,X), _(X,X), _(X,X), _(C,C), _(C,C), _(X,X), _(X,X), _(X,X), |
| 259 | /* 0BA8 */ _(C,C), _(C,C), _(C,C), _(X,X), _(X,X), _(X,X), _(C,C), _(C,C), |
| 260 | /* 0BB0 */ _(R,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 261 | /* 0BB8 */ _(C,C), _(C,C), _(X,X), _(X,X), _(X,X), _(X,X), _(M,AP), _(M,AP), |
| 262 | /* 0BC0 */ _(M,AS), _(M,AP), _(M,AP), _(X,X), _(X,X), _(X,X), _(M,LM), _(M,LM), |
| 263 | /* 0BC8 */ _(M,LM), _(X,X), _(M,AP), _(M,AP), _(M,AP), _(H,T), _(X,X), _(X,X), |
| 264 | /* 0BD0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,AP), |
| 265 | /* 0BD8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 266 | /* 0BE0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 267 | /* 0BE8 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 268 | /* 0BF0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 269 | /* 0BF8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 270 | |
| 271 | /* Telugu */ |
| 272 | |
| 273 | /* 0C00 */_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM), _(V,C), _(V,C), _(V,C), |
| 274 | /* 0C08 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(X,X), _(V,C), _(V,C), |
| 275 | /* 0C10 */ _(V,C), _(X,X), _(V,C), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 276 | /* 0C18 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 277 | /* 0C20 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 278 | /* 0C28 */ _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 279 | /* 0C30 */ _(R,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 280 | /* 0C38 */ _(C,C), _(C,C), _(X,X), _(X,X), _(N,X), _(S,SM), _(M,BS), _(M,BS), |
| 281 | /* 0C40 */ _(M,BS), _(M,BS), _(M,BS), _(M,AS), _(M,AS), _(X,X), _(M,BS), _(M,BS), |
| 282 | /* 0C48 */ _(M,BS), _(X,X), _(M,BS), _(M,BS), _(M,BS), _(H,T), _(X,X), _(X,X), |
| 283 | /* 0C50 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,BS), _(M,BS), _(X,X), |
| 284 | /* 0C58 */ _(C,C), _(C,C), _(C,C), _(X,X), _(X,X), _(C,C), _(X,X), _(X,X), |
| 285 | /* 0C60 */ _(V,C), _(V,C), _(M,BS), _(M,BS), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 286 | /* 0C68 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 287 | /* 0C70 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 288 | /* 0C78 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 289 | |
| 290 | /* Kannada */ |
| 291 | |
| 292 | /* 0C80 */ _(GB,C),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(V,C), _(V,C), _(V,C), |
| 293 | /* 0C88 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(X,X), _(V,C), _(V,C), |
| 294 | /* 0C90 */ _(V,C), _(X,X), _(V,C), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 295 | /* 0C98 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 296 | /* 0CA0 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 297 | /* 0CA8 */ _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 298 | /* 0CB0 */ _(R,C), _(C,C), _(C,C), _(C,C), _(X,X), _(C,C), _(C,C), _(C,C), |
| 299 | /* 0CB8 */ _(C,C), _(C,C), _(X,X), _(X,X), _(N,X), _(S,SM), _(M,BS), _(M,BS), |
| 300 | /* 0CC0 */ _(M,BS), _(M,BS), _(M,BS), _(M,AS), _(M,AS), _(X,X), _(M,BS), _(M,AS), |
| 301 | /* 0CC8 */ _(M,AS), _(X,X), _(M,AS), _(M,AS), _(M,BS), _(H,T), _(X,X), _(X,X), |
| 302 | /* 0CD0 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(M,AS), _(M,AS), _(X,X), |
| 303 | /* 0CD8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(C,C), _(C,C), _(X,X), |
| 304 | /* 0CE0 */ _(V,C), _(V,C), _(M,BS), _(M,BS), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 305 | /* 0CE8 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 306 | /* 0CF0 */ _(X,X), _(CS,C), _(CS,C),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X), |
| 307 | /* 0CF8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 308 | |
| 309 | /* Malayalam */ |
| 310 | |
| 311 | /* 0D00 */_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM), _(GB,C), _(V,C), _(V,C), _(V,C), |
| 312 | /* 0D08 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(X,X), _(V,C), _(V,C), |
| 313 | /* 0D10 */ _(V,C), _(X,X), _(V,C), _(V,C), _(V,C), _(C,C), _(C,C), _(C,C), |
| 314 | /* 0D18 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 315 | /* 0D20 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 316 | /* 0D28 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 317 | /* 0D30 */ _(R,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 318 | /* 0D38 */ _(C,C), _(C,C), _(C,C), _(M,AS), _(M,AS), _(S,SM), _(M,AP), _(M,AP), |
| 319 | /* 0D40 */ _(M,AP), _(M,AP), _(M,AP), _(M,AP), _(M,AP), _(X,X), _(M,LM), _(M,LM), |
| 320 | /* 0D48 */ _(M,LM), _(X,X), _(M,AP), _(M,AP), _(M,AP), _(H,T), _(Rf,X), _(X,X), |
| 321 | /* 0D50 */ _(X,X), _(X,X), _(X,X), _(X,X), _(C,C), _(C,C), _(C,C), _(M,AP), |
| 322 | /* 0D58 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,C), |
| 323 | /* 0D60 */ _(V,C), _(V,C), _(M,AP), _(M,AP), _(X,X), _(X,X), _(GB,C), _(GB,C), |
| 324 | /* 0D68 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 325 | /* 0D70 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 326 | /* 0D78 */ _(X,X), _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 327 | |
| 328 | #define indic_offset_0x1000u 1216 |
| 329 | |
| 330 | |
| 331 | /* Myanmar */ |
| 332 | |
| 333 | /* 1000 */ _(C,C), _(C,C), _(C,C), _(C,C), _(R,C), _(C,C), _(C,C), _(C,C), |
| 334 | /* 1008 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 335 | /* 1010 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 336 | /* 1018 */ _(C,C), _(C,C), _(C,C), _(R,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 337 | /* 1020 */ _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), |
| 338 | /* 1028 */ _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R), _(VA,T), _(VA,T), _(VB,B), |
| 339 | /* 1030 */ _(VB,B), _(VL,L), _(A,SM), _(VA,T), _(VA,T), _(VA,T), _(A,SM), _(N,X), |
| 340 | /* 1038 */_(SM,SM), _(H,X), _(As,X), _(MY,X), _(MR,X), _(MW,X), _(MH,X), _(C,C), |
| 341 | /* 1040 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 342 | /* 1048 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), _(X,X), _(C,C), _(X,X), |
| 343 | /* 1050 */ _(C,C), _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R), |
| 344 | /* 1058 */ _(VB,B), _(VB,B), _(R,C), _(C,C), _(C,C), _(C,C), _(MY,X), _(MY,X), |
| 345 | /* 1060 */ _(ML,X), _(C,C), _(VR,R), _(PT,X), _(PT,X), _(C,C), _(C,C), _(VR,R), |
| 346 | /* 1068 */ _(VR,R), _(PT,X), _(PT,X), _(PT,X), _(PT,X), _(PT,X), _(C,C), _(C,C), |
| 347 | /* 1070 */ _(C,C), _(VA,T), _(VA,T), _(VA,T), _(VA,T), _(C,C), _(C,C), _(C,C), |
| 348 | /* 1078 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 349 | /* 1080 */ _(C,C), _(C,C), _(MW,X), _(VR,R), _(VL,L), _(VA,T), _(VA,T),_(SM,SM), |
| 350 | /* 1088 */_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM), _(C,C),_(SM,SM), |
| 351 | /* 1090 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 352 | /* 1098 */ _(GB,C), _(GB,C),_(SM,SM),_(SM,SM),_(SM,SM), _(VA,T), _(X,X), _(X,X), |
| 353 | |
| 354 | #define indic_offset_0x1780u 1376 |
| 355 | |
| 356 | |
| 357 | /* Khmer */ |
| 358 | |
| 359 | /* 1780 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 360 | /* 1788 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 361 | /* 1790 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 362 | /* 1798 */ _(C,C), _(C,C), _(R,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 363 | /* 17A0 */ _(C,C), _(C,C), _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), |
| 364 | /* 17A8 */ _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), |
| 365 | /* 17B0 */ _(V,C), _(V,C), _(V,C), _(V,C), _(X,X), _(X,X), _(VR,R), _(VA,T), |
| 366 | /* 17B8 */ _(VA,T), _(VA,T), _(VA,T), _(VB,B), _(VB,B), _(VB,B), _(VA,T), _(VR,R), |
| 367 | /* 17C0 */ _(VR,R), _(VL,L), _(VL,L), _(VL,L), _(VR,R), _(VR,R), _(Xg,X), _(Yg,X), |
| 368 | /* 17C8 */ _(Yg,X), _(Rt,X), _(Rt,X), _(Xg,X), _(Rt,X), _(Xg,X), _(Xg,X), _(Xg,X), |
| 369 | /* 17D0 */ _(Xg,X), _(Xg,X), _(H,X), _(Yg,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 370 | /* 17D8 */ _(X,X), _(GB,C), _(X,X), _(X,X), _(S,SM), _(Yg,X), _(X,X), _(X,X), |
| 371 | /* 17E0 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 372 | /* 17E8 */ _(GB,C), _(GB,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 373 | |
| 374 | #define indic_offset_0x1cd0u 1488 |
| 375 | |
| 376 | |
| 377 | /* Vedic Extensions */ |
| 378 | |
| 379 | /* 1CD0 */ _(A,SM), _(A,SM), _(A,SM), _(X,X), _(A,SM), _(A,SM), _(A,SM), _(A,SM), |
| 380 | /* 1CD8 */ _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), |
| 381 | /* 1CE0 */ _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), |
| 382 | /* 1CE8 */ _(A,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(A,SM), _(S,SM), _(S,SM), |
| 383 | /* 1CF0 */ _(S,SM), _(S,SM), _(C,C), _(C,C), _(A,SM), _(C,C), _(C,C), _(A,SM), |
| 384 | /* 1CF8 */ _(A,SM), _(A,SM), _(GB,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 385 | |
| 386 | #define indic_offset_0x2008u 1536 |
| 387 | |
| 388 | |
| 389 | /* General Punctuation */ |
| 390 | |
| 391 | /* 2008 */ _(X,X), _(X,X), _(X,X), _(X,X),_(ZWNJ,X),_(ZWJ,X), _(X,X), _(X,X), |
| 392 | /* 2010 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), _(X,X), |
| 393 | /* 2018 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 394 | /* 2020 */ _(X,X), _(X,X), _(GB,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 395 | |
| 396 | #define indic_offset_0x2070u 1568 |
| 397 | |
| 398 | |
| 399 | /* Superscripts and Subscripts */ |
| 400 | |
| 401 | /* 2070 */ _(X,X), _(X,X), _(X,X), _(X,X),_(SM,SM), _(X,X), _(X,X), _(X,X), |
| 402 | /* 2078 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), |
| 403 | /* 2080 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), |
| 404 | |
| 405 | #define indic_offset_0x25f8u 1592 |
| 406 | |
| 407 | |
| 408 | /* Geometric Shapes */ |
| 409 | |
| 410 | /* 25F8 */ _(X,X), _(X,X), _(X,X), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), |
| 411 | |
| 412 | #define indic_offset_0xa8e0u 1600 |
| 413 | |
| 414 | |
| 415 | /* Devanagari Extended */ |
| 416 | |
| 417 | /* A8E0 */ _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), |
| 418 | /* A8E8 */ _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), _(A,SM), |
| 419 | /* A8F0 */ _(A,SM), _(A,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), |
| 420 | /* A8F8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,C), _(M,AS), |
| 421 | |
| 422 | #define indic_offset_0xa9e0u 1632 |
| 423 | |
| 424 | |
| 425 | /* Myanmar Extended-B */ |
| 426 | |
| 427 | /* A9E0 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(VA,T), _(X,X), _(C,C), |
| 428 | /* A9E8 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 429 | /* A9F0 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), |
| 430 | /* A9F8 */ _(GB,C), _(GB,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(X,X), |
| 431 | |
| 432 | #define indic_offset_0xaa60u 1664 |
| 433 | |
| 434 | |
| 435 | /* Myanmar Extended-A */ |
| 436 | |
| 437 | /* AA60 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 438 | /* AA68 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), |
| 439 | /* AA70 */ _(X,X), _(C,C), _(C,C), _(C,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), |
| 440 | /* AA78 */ _(X,X), _(X,X), _(C,C), _(PT,X), _(N,X), _(N,X), _(C,C), _(C,C), |
| 441 | |
| 442 | #define indic_offset_0xfe00u 1696 |
| 443 | |
| 444 | |
| 445 | /* Variation Selectors */ |
| 446 | |
| 447 | /* FE00 */ _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), |
| 448 | /* FE08 */ _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), |
| 449 | |
| 450 | #define indic_offset_0x11300u 1712 |
| 451 | |
| 452 | |
| 453 | /* Grantha */ |
| 454 | |
| 455 | /* 11300 */ _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X), |
| 456 | |
| 457 | #define indic_offset_0x11338u 1720 |
| 458 | |
| 459 | /* 11338 */ _(X,X), _(X,X), _(X,X), _(N,X), _(N,X), _(X,X), _(X,X), _(X,X), |
| 460 | |
| 461 | }; /* Table items: 1728; occupancy: 71% */ |
| 462 | |
| 463 | uint16_t |
| 464 | hb_indic_get_categories (hb_codepoint_t u) |
| 465 | { |
| 466 | switch (u >> 12) |
| 467 | { |
| 468 | case 0x0u: |
| 469 | if (unlikely (u == 0x00A0u)) return _(GB,C); |
| 470 | if (hb_in_range<hb_codepoint_t> (u, 0x0028u, 0x003Fu)) return indic_table[u - 0x0028u + indic_offset_0x0028u]; |
| 471 | if (hb_in_range<hb_codepoint_t> (u, 0x00B0u, 0x00D7u)) return indic_table[u - 0x00B0u + indic_offset_0x00b0u]; |
| 472 | if (hb_in_range<hb_codepoint_t> (u, 0x0900u, 0x0D7Fu)) return indic_table[u - 0x0900u + indic_offset_0x0900u]; |
| 473 | break; |
| 474 | |
| 475 | case 0x1u: |
| 476 | if (hb_in_range<hb_codepoint_t> (u, 0x1000u, 0x109Fu)) return indic_table[u - 0x1000u + indic_offset_0x1000u]; |
| 477 | if (hb_in_range<hb_codepoint_t> (u, 0x1780u, 0x17EFu)) return indic_table[u - 0x1780u + indic_offset_0x1780u]; |
| 478 | if (hb_in_range<hb_codepoint_t> (u, 0x1CD0u, 0x1CFFu)) return indic_table[u - 0x1CD0u + indic_offset_0x1cd0u]; |
| 479 | break; |
| 480 | |
| 481 | case 0x2u: |
| 482 | if (unlikely (u == 0x25CCu)) return _(DC,C); |
| 483 | if (hb_in_range<hb_codepoint_t> (u, 0x2008u, 0x2027u)) return indic_table[u - 0x2008u + indic_offset_0x2008u]; |
| 484 | if (hb_in_range<hb_codepoint_t> (u, 0x2070u, 0x2087u)) return indic_table[u - 0x2070u + indic_offset_0x2070u]; |
| 485 | if (hb_in_range<hb_codepoint_t> (u, 0x25F8u, 0x25FFu)) return indic_table[u - 0x25F8u + indic_offset_0x25f8u]; |
| 486 | break; |
| 487 | |
| 488 | case 0xAu: |
| 489 | if (hb_in_range<hb_codepoint_t> (u, 0xA8E0u, 0xA8FFu)) return indic_table[u - 0xA8E0u + indic_offset_0xa8e0u]; |
| 490 | if (hb_in_range<hb_codepoint_t> (u, 0xA9E0u, 0xA9FFu)) return indic_table[u - 0xA9E0u + indic_offset_0xa9e0u]; |
| 491 | if (hb_in_range<hb_codepoint_t> (u, 0xAA60u, 0xAA7Fu)) return indic_table[u - 0xAA60u + indic_offset_0xaa60u]; |
| 492 | break; |
| 493 | |
| 494 | case 0xFu: |
| 495 | if (hb_in_range<hb_codepoint_t> (u, 0xFE00u, 0xFE0Fu)) return indic_table[u - 0xFE00u + indic_offset_0xfe00u]; |
| 496 | break; |
| 497 | |
| 498 | case 0x11u: |
| 499 | if (hb_in_range<hb_codepoint_t> (u, 0x11300u, 0x11307u)) return indic_table[u - 0x11300u + indic_offset_0x11300u]; |
| 500 | if (hb_in_range<hb_codepoint_t> (u, 0x11338u, 0x1133Fu)) return indic_table[u - 0x11338u + indic_offset_0x11338u]; |
| 501 | break; |
| 502 | |
| 503 | default: |
| 504 | break; |
| 505 | } |
| 506 | return _(X,X); |
| 507 | } |
| 508 | |
| 509 | #undef _ |
| 510 | #undef INDIC_COMBINE_CATEGORIES |
| 511 | |
| 512 | #undef _OT_A |
| 513 | #undef _OT_As |
| 514 | #undef _OT_C |
| 515 | #undef _OT_CM |
| 516 | #undef _OT_CS |
| 517 | #undef _OT_DC |
| 518 | #undef _OT_H |
| 519 | #undef _OT_M |
| 520 | #undef _OT_MH |
| 521 | #undef _OT_ML |
| 522 | #undef _OT_MP |
| 523 | #undef _OT_MR |
| 524 | #undef _OT_MW |
| 525 | #undef _OT_MY |
| 526 | #undef _OT_N |
| 527 | #undef _OT_GB |
| 528 | #undef _OT_PT |
| 529 | #undef _OT_R |
| 530 | #undef _OT_Rf |
| 531 | #undef _OT_Rt |
| 532 | #undef _OT_SM |
| 533 | #undef _OT_S |
| 534 | #undef _OT_V |
| 535 | #undef _OT_VA |
| 536 | #undef _OT_VB |
| 537 | #undef _OT_VL |
| 538 | #undef _OT_VR |
| 539 | #undef _OT_VS |
| 540 | #undef _OT_X |
| 541 | #undef _OT_Xg |
| 542 | #undef _OT_Yg |
| 543 | #undef _OT_ZWJ |
| 544 | #undef _OT_ZWNJ |
| 545 | |
| 546 | #undef _POS_T |
| 547 | #undef _POS_A |
| 548 | #undef _POS_AP |
| 549 | #undef _POS_AS |
| 550 | #undef _POS_C |
| 551 | #undef _POS_BS |
| 552 | #undef _POS_B |
| 553 | #undef _POS_X |
| 554 | #undef _POS_R |
| 555 | #undef _POS_L |
| 556 | #undef _POS_LM |
| 557 | #undef _POS_SM |
| 558 | |
| 559 | #endif |
| 560 | |
| 561 | /* == End of generated table == */ |
| 562 | |