Lines Matching full:collation
35 #include "collation.h"
270 // Hangul is decomposed on the fly during collation,
302 U_ASSERT((ces[0] & Collation::CASE_AND_QUATERNARY_MASK) == 0);
311 if(cesLength > Collation::MAX_EXPANSION_LENGTH) {
313 parserErrorReason = "reset position maps to too many collation elements (more than 31)";
350 if(p == Collation::FIRST_TRAILING_PRIMARY) {
387 U_ASSERT(weight16 > Collation::BEFORE_WEIGHT16);
399 U_ASSERT(weight16 >= Collation::COMMON_WEIGHT16 || i == previousIndex);
404 previousWeight16 = Collation::COMMON_WEIGHT16;
447 t = Collation::COMMON_WEIGHT16; // Stronger node with implied common weight.
454 return Collation::BEFORE_WEIGHT16;
460 s = Collation::COMMON_WEIGHT16; // Stronger node with implied common weight.
467 return Collation::BEFORE_WEIGHT16;
476 U_ASSERT((weight16 & ~Collation::ONLY_TERTIARY_MASK) == 0);
572 ce = Collation::makeCE(Collation::FIRST_TRAILING_PRIMARY);
607 ce = Collation::makeCE(p);
718 parserErrorReason = "modifying collation elements";
739 if(cesLength > Collation::MAX_EXPANSION_LENGTH) {
742 "extension string adds too many collation elements (more than 31 total)";
746 uint32_t ce32 = Collation::UNASSIGNED_CE32;
756 parserErrorReason = "writing collation elements";
789 if((uint8_t)(ce >> 56) == Collation::UNASSIGNED_IMPLICIT_BYTE) {
800 U_ASSERT((uint8_t)(ce >> 56) != Collation::UNASSIGNED_IMPLICIT_BYTE);
811 index = findOrInsertWeakNode(index, lower32 & Collation::ONLY_TERTIARY_MASK,
878 if(weight16 == Collation::COMMON_WEIGHT16) {
886 if(weight16 != 0 && weight16 < Collation::COMMON_WEIGHT16) {
891 nodeFromWeight16(Collation::COMMON_WEIGHT16) | nodeFromStrength(level);
1001 weight16FromNode(node) < Collation::COMMON_WEIGHT16);
1008 weight16FromNode(node) < Collation::COMMON_WEIGHT16);
1009 U_ASSERT(weight16FromNode(node) == Collation::COMMON_WEIGHT16);
1035 U_ASSERT(baseCEsLength >= 0 && baseCEs.getCE(baseCEsLength) == Collation::NO_CE);
1176 int64_t newCEs[Collation::MAX_EXPANSION_LENGTH];
1187 if(newCEsLength > Collation::MAX_EXPANSION_LENGTH) {
1207 newCEs, newCEsLength, Collation::UNASSIGNED_CE32, errorCode);
1208 if(ce32 != Collation::UNASSIGNED_CE32) {
1325 // Hangul is decomposed on the fly during collation.
1334 if(cesLength > Collation::MAX_EXPANSION_LENGTH) {
1341 addIfDifferent(prefix, composite, ces, cesLength, Collation::UNASSIGNED_CE32, errorCode);
1350 int64_t oldCEs[Collation::MAX_EXPANSION_LENGTH];
1353 if(ce32 == Collation::UNASSIGNED_CE32) {
1367 U_ASSERT(ces1Length <= Collation::MAX_EXPANSION_LENGTH);
1400 uint32_t s = p == 0 ? 0 : Collation::COMMON_WEIGHT16;
1441 tLimit = rootElements.getFirstTertiaryCE() & Collation::ONLY_TERTIARY_MASK;
1445 } else if(t == Collation::BEFORE_WEIGHT16) {
1446 tLimit = Collation::COMMON_WEIGHT16;
1449 U_ASSERT(t == Collation::COMMON_WEIGHT16);
1452 U_ASSERT(tLimit == 0x4000 || (tLimit & ~Collation::ONLY_TERTIARY_MASK) == 0);
1488 } else if(s == Collation::BEFORE_WEIGHT16) {
1489 sLimit = Collation::COMMON_WEIGHT16;
1492 U_ASSERT(s == Collation::COMMON_WEIGHT16);
1495 if(s == Collation::COMMON_WEIGHT16) {
1544 s = Collation::COMMON_WEIGHT16;
1547 t = s == 0 ? 0 : Collation::COMMON_WEIGHT16;
1553 nodesArray[i] = Collation::makeCE(p, s, t, q);
1586 U_ASSERT(!Collation::isSpecialCE32(ce32));
1591 return Collation::NO_CE;
1599 return Collation::NO_CE;
1665 // and the rest of the collation "runtime" code only depends on normalization.
1666 // This function is not related to the collation builder,