File indexing completed on 2026-05-03 08:13:29
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047
0048
0049
0050
0051
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061 #ifndef _LIBCPP___CXX03___FORMAT_INDIC_CONJUNCT_BREAK_TABLE_H
0062 #define _LIBCPP___CXX03___FORMAT_INDIC_CONJUNCT_BREAK_TABLE_H
0063
0064 #include <__cxx03/__algorithm/ranges_upper_bound.h>
0065 #include <__cxx03/__config>
0066 #include <__cxx03/__iterator/access.h>
0067 #include <__cxx03/cstddef>
0068 #include <__cxx03/cstdint>
0069
0070 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
0071 # pragma GCC system_header
0072 #endif
0073
0074 _LIBCPP_BEGIN_NAMESPACE_STD
0075
0076 #if _LIBCPP_STD_VER >= 20
0077
0078 namespace __indic_conjunct_break {
0079
0080 enum class __property : uint8_t {
0081
0082 __Consonant,
0083 __Extend,
0084 __Linker,
0085
0086
0087 __none
0088 };
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101
0102
0103
0104
0105
0106
0107
0108
0109
0110 _LIBCPP_HIDE_FROM_ABI inline constexpr uint32_t __entries[201] = {
0111 0x00180139,
0112 0x001a807d,
0113 0x00241811,
0114 0x002c88b1,
0115 0x002df801,
0116 0x002e0805,
0117 0x002e2005,
0118 0x002e3801,
0119 0x00308029,
0120 0x00325851,
0121 0x00338001,
0122 0x0036b019,
0123 0x0036f815,
0124 0x00373805,
0125 0x0037500d,
0126 0x00388801,
0127 0x00398069,
0128 0x003f5821,
0129 0x003fe801,
0130 0x0040b00d,
0131 0x0040d821,
0132 0x00412809,
0133 0x00414811,
0134 0x0042c809,
0135 0x0044c01d,
0136 0x0046505d,
0137 0x00471871,
0138 0x0048a890,
0139 0x0049e001,
0140 0x004a6802,
0141 0x004a880d,
0142 0x004ac01c,
0143 0x004bc01c,
0144 0x004ca84c,
0145 0x004d5018,
0146 0x004d9000,
0147 0x004db00c,
0148 0x004de001,
0149 0x004e6802,
0150 0x004ee004,
0151 0x004ef800,
0152 0x004f8004,
0153 0x004ff001,
0154 0x0051e001,
0155 0x0054a84c,
0156 0x00555018,
0157 0x00559004,
0158 0x0055a810,
0159 0x0055e001,
0160 0x00566802,
0161 0x0057c800,
0162 0x0058a84c,
0163 0x00595018,
0164 0x00599004,
0165 0x0059a810,
0166 0x0059e001,
0167 0x005a6802,
0168 0x005ae004,
0169 0x005af800,
0170 0x005b8800,
0171 0x0060a84c,
0172 0x0061503c,
0173 0x0061e001,
0174 0x00626802,
0175 0x0062a805,
0176 0x0062c008,
0177 0x0065e001,
0178 0x0068a894,
0179 0x0069d805,
0180 0x006a6802,
0181 0x0071c009,
0182 0x0072400d,
0183 0x0075c009,
0184 0x0076400d,
0185 0x0078c005,
0186 0x0079a801,
0187 0x0079b801,
0188 0x0079c801,
0189 0x007b8805,
0190 0x007ba001,
0191 0x007bd00d,
0192 0x007c0001,
0193 0x007c1009,
0194 0x007c3005,
0195 0x007e3001,
0196 0x0081b801,
0197 0x0081c805,
0198 0x00846801,
0199 0x009ae809,
0200 0x00b8a001,
0201 0x00be9001,
0202 0x00bee801,
0203 0x00c54801,
0204 0x00c9c809,
0205 0x00d0b805,
0206 0x00d30001,
0207 0x00d3a81d,
0208 0x00d3f801,
0209 0x00d58035,
0210 0x00d5f83d,
0211 0x00d9a001,
0212 0x00db5821,
0213 0x00dd5801,
0214 0x00df3001,
0215 0x00e1b801,
0216 0x00e68009,
0217 0x00e6a031,
0218 0x00e71019,
0219 0x00e76801,
0220 0x00e7a001,
0221 0x00e7c005,
0222 0x00ee00fd,
0223 0x01006801,
0224 0x01068031,
0225 0x01070801,
0226 0x0107282d,
0227 0x01677809,
0228 0x016bf801,
0229 0x016f007d,
0230 0x01815015,
0231 0x0184c805,
0232 0x05337801,
0233 0x0533a025,
0234 0x0534f005,
0235 0x05378005,
0236 0x05416001,
0237 0x05470045,
0238 0x05495809,
0239 0x054d9801,
0240 0x05558001,
0241 0x05559009,
0242 0x0555b805,
0243 0x0555f005,
0244 0x05560801,
0245 0x0557b001,
0246 0x055f6801,
0247 0x07d8f001,
0248 0x07f1003d,
0249 0x080fe801,
0250 0x08170001,
0251 0x081bb011,
0252 0x08506801,
0253 0x08507801,
0254 0x0851c009,
0255 0x0851f801,
0256 0x08572805,
0257 0x0869200d,
0258 0x08755805,
0259 0x0877e809,
0260 0x087a3029,
0261 0x087c100d,
0262 0x08838001,
0263 0x0883f801,
0264 0x0885d001,
0265 0x08880009,
0266 0x08899805,
0267 0x088b9801,
0268 0x088e5001,
0269 0x0891b001,
0270 0x08974805,
0271 0x0899d805,
0272 0x089b3019,
0273 0x089b8011,
0274 0x08a23001,
0275 0x08a2f001,
0276 0x08a61801,
0277 0x08ae0001,
0278 0x08b5b801,
0279 0x08b95801,
0280 0x08c1d001,
0281 0x08c9f001,
0282 0x08ca1801,
0283 0x08d1a001,
0284 0x08d23801,
0285 0x08d4c801,
0286 0x08ea1001,
0287 0x08ea2005,
0288 0x08ecb801,
0289 0x08fa1001,
0290 0x0b578011,
0291 0x0b598019,
0292 0x0de4f001,
0293 0x0e8b2801,
0294 0x0e8b3809,
0295 0x0e8b7011,
0296 0x0e8bd81d,
0297 0x0e8c2819,
0298 0x0e8d500d,
0299 0x0e921009,
0300 0x0f000019,
0301 0x0f004041,
0302 0x0f00d819,
0303 0x0f011805,
0304 0x0f013011,
0305 0x0f047801,
0306 0x0f098019,
0307 0x0f157001,
0308 0x0f17600d,
0309 0x0f27600d,
0310 0x0f468019,
0311 0x0f4a2019};
0312
0313
0314
0315 [[nodiscard]] _LIBCPP_HIDE_FROM_ABI constexpr __property __get_property(const char32_t __code_point) noexcept {
0316
0317
0318
0319
0320
0321
0322
0323
0324
0325
0326
0327
0328
0329
0330
0331
0332 ptrdiff_t __i = std::ranges::upper_bound(__entries, (__code_point << 11) | 0x7ffu) - __entries;
0333 if (__i == 0)
0334 return __property::__none;
0335
0336 --__i;
0337 uint32_t __upper_bound = (__entries[__i] >> 11) + ((__entries[__i] >> 2) & 0b1'1111'1111);
0338 if (__code_point <= __upper_bound)
0339 return static_cast<__property>(__entries[__i] & 0b11);
0340
0341 return __property::__none;
0342 }
0343
0344 }
0345
0346 #endif
0347
0348 _LIBCPP_END_NAMESPACE_STD
0349
0350 #endif