• Home
  • Raw
  • Download

Lines Matching full:norm

125 Norm *Normalizer2DataBuilder::checkNormForMapping(Norm *p, UChar32 c) {  in checkNormForMapping()
127 if(p->mappingType!=Norm::NONE) { in checkNormForMapping()
169 Norm *p=checkNormForMapping(norms.createNorm(c), c); in setOneWayMapping()
171 p->mappingType=Norm::ONE_WAY; in setOneWayMapping()
199 Norm *p=checkNormForMapping(norms.createNorm(c), c); in setRoundTripMapping()
201 p->mappingType=Norm::ROUND_TRIP; in setRoundTripMapping()
208 Norm *p=checkNormForMapping(norms.createNorm(c), c); in removeMapping()
209 p->mappingType=Norm::REMOVED; in removeMapping()
214 Norm::MappingType mappingType) const { in mappingHasCompBoundaryAfter()
223 if(mappingType==Norm::ONE_WAY && lastStarterIndex<lastIndex && buffer.ccAt(lastIndex)>1) { in mappingHasCompBoundaryAfter()
255 const Norm *starterNorm=norms.getNorm(starter); in mappingHasCompBoundaryAfter()
302 const Norm *starterNorm=nullptr; in mappingRecomposes()
325 void Normalizer2DataBuilder::postProcess(Norm &norm) { in postProcess() argument
329 // This function works on a Norm struct. We do not know which code point(s) map(s) to it. in postProcess()
332 if(norm.hasMapping()) { in postProcess()
333 if(norm.mapping->length()>Normalizer2Impl::MAPPING_LENGTH_MASK) { in postProcess()
334 norm.error="mapping longer than maximum of 31"; in postProcess()
339 if(norm.rawMapping!=nullptr) { in postProcess()
340 norms.reorder(*norm.rawMapping, buffer); in postProcess()
343 norms.reorder(*norm.mapping, buffer); in postProcess()
348 norm.leadCC=1; in postProcess()
349 norm.trailCC=0xff; in postProcess()
351 norm.leadCC=buffer.ccAt(0); in postProcess()
352 norm.trailCC=buffer.ccAt(buffer.length()-1); in postProcess()
355 norm.hasCompBoundaryBefore= in postProcess()
356 !buffer.isEmpty() && norm.leadCC==0 && !norms.combinesBack(buffer.charAt(0)); in postProcess()
357 // No comp-boundary-after when norm.combinesBack: in postProcess()
361 norm.hasCompBoundaryAfter= in postProcess()
362 !norm.combinesBack && !norm.combinesFwd() && in postProcess()
363 mappingHasCompBoundaryAfter(buffer, norm.mappingType); in postProcess()
365 if(norm.combinesBack) { in postProcess()
366 if(norm.mappingType!=Norm::ROUND_TRIP) { in postProcess()
369 norm.error="combines-back and has a one-way mapping, " in postProcess()
371 } else if(norm.combinesFwd()) { in postProcess()
373 norm.type=Norm::MAYBE_NO_COMBINES_FWD; in postProcess()
374 } else if(norm.cc==0) { in postProcess()
375 norm.type=Norm::MAYBE_NO_MAPPING_ONLY; in postProcess()
377 norm.error="combines-back and decomposes with ccc!=0, " in postProcess()
381 } else if(norm.mappingType==Norm::ROUND_TRIP) { in postProcess()
382 if(norm.combinesFwd()) { in postProcess()
383 norm.type=Norm::YES_NO_COMBINES_FWD; in postProcess()
385 norm.type=Norm::YES_NO_MAPPING_ONLY; in postProcess()
388 if(norm.combinesFwd()) { in postProcess()
389 norm.error="combines-forward and has a one-way mapping, " in postProcess()
392 norm.type=Norm::NO_NO_EMPTY; in postProcess()
393 } else if(!norm.hasCompBoundaryBefore) { in postProcess()
394 norm.type=Norm::NO_NO_COMP_NO_MAYBE_CC; in postProcess()
396 norm.type=Norm::NO_NO_COMP_BOUNDARY_BEFORE; in postProcess()
399 norm.type=Norm::NO_NO_COMP_YES; in postProcess()
403 norm.leadCC=norm.trailCC=norm.cc; in postProcess()
405 norm.hasCompBoundaryBefore= in postProcess()
406 norm.cc==0 && !norm.combinesBack; in postProcess()
407 norm.hasCompBoundaryAfter= in postProcess()
408 norm.cc==0 && !norm.combinesBack && !norm.combinesFwd(); in postProcess()
410 if(norm.combinesBack) { in postProcess()
411 if(norm.combinesFwd()) { in postProcess()
413 norm.type=Norm::MAYBE_YES_COMBINES_FWD; in postProcess()
415 norm.type=Norm::MAYBE_YES_SIMPLE; // any ccc in postProcess()
417 } else if(norm.combinesFwd()) { in postProcess()
419 norm.type=Norm::YES_YES_COMBINES_FWD; in postProcess()
420 } else if(norm.cc!=0) { in postProcess()
421 norm.type=Norm::YES_YES_WITH_CC; in postProcess()
423 norm.type=Norm::INERT; in postProcess()
432 void rangeHandler(UChar32 start, UChar32 end, Norm &norm) override { in rangeHandler() argument
433 builder.writeNorm16(norm16Trie, start, end, norm); in rangeHandler()
444 …izer2DataBuilder::writeNorm16(UMutableCPTrie *norm16Trie, UChar32 start, UChar32 end, Norm &norm) { in writeNorm16() argument
445 if((norm.leadCC|norm.trailCC)!=0) { in writeNorm16()
452 switch(norm.type) { in writeNorm16()
453 case Norm::INERT: in writeNorm16()
456 case Norm::YES_YES_COMBINES_FWD: in writeNorm16()
457 norm16=norm.offset*2; in writeNorm16()
459 case Norm::YES_NO_COMBINES_FWD: in writeNorm16()
460 norm16=indexes[Normalizer2Impl::IX_MIN_YES_NO]+norm.offset*2; in writeNorm16()
462 case Norm::YES_NO_MAPPING_ONLY: in writeNorm16()
463 norm16=indexes[Normalizer2Impl::IX_MIN_YES_NO_MAPPINGS_ONLY]+norm.offset*2; in writeNorm16()
465 case Norm::NO_NO_COMP_YES: in writeNorm16()
466 norm16=indexes[Normalizer2Impl::IX_MIN_NO_NO]+norm.offset*2; in writeNorm16()
468 case Norm::NO_NO_COMP_BOUNDARY_BEFORE: in writeNorm16()
469 norm16=indexes[Normalizer2Impl::IX_MIN_NO_NO_COMP_BOUNDARY_BEFORE]+norm.offset*2; in writeNorm16()
471 case Norm::NO_NO_COMP_NO_MAYBE_CC: in writeNorm16()
472 norm16=indexes[Normalizer2Impl::IX_MIN_NO_NO_COMP_NO_MAYBE_CC]+norm.offset*2; in writeNorm16()
474 case Norm::NO_NO_EMPTY: in writeNorm16()
475 norm16=indexes[Normalizer2Impl::IX_MIN_NO_NO_EMPTY]+norm.offset*2; in writeNorm16()
477 case Norm::NO_NO_DELTA: in writeNorm16()
480 int32_t offset=(norm.offset+Normalizer2Impl::MAX_DELTA)<<Normalizer2Impl::DELTA_SHIFT; in writeNorm16()
481 if(norm.trailCC==0) { in writeNorm16()
483 } else if(norm.trailCC==1) { in writeNorm16()
491 case Norm::MAYBE_NO_MAPPING_ONLY: in writeNorm16()
492 norm16=indexes[Normalizer2Impl::IX_MIN_MAYBE_NO]+norm.offset*2; in writeNorm16()
494 case Norm::MAYBE_NO_COMBINES_FWD: in writeNorm16()
495 norm16=indexes[Normalizer2Impl::IX_MIN_MAYBE_NO_COMBINES_FWD]+norm.offset*2; in writeNorm16()
497 case Norm::MAYBE_YES_COMBINES_FWD: in writeNorm16()
498 norm16=indexes[Normalizer2Impl::IX_MIN_MAYBE_YES]+norm.offset*2; in writeNorm16()
500 case Norm::MAYBE_YES_SIMPLE: in writeNorm16()
501 norm16=Normalizer2Impl::MIN_NORMAL_MAYBE_YES+norm.cc*2; // ccc=0..255 in writeNorm16()
503 case Norm::YES_YES_WITH_CC: in writeNorm16()
504 U_ASSERT(norm.cc!=0); in writeNorm16()
505 norm16=Normalizer2Impl::MIN_YES_YES_WITH_CC-2+norm.cc*2; // ccc=1..255 in writeNorm16()
511 if(norm.hasCompBoundaryAfter) { in writeNorm16()
519 (Norm::YES_NO_COMBINES_FWD<=norm.type && norm.type<=Norm::NO_NO_DELTA) || in writeNorm16()
520 norm.cc!=0; in writeNorm16()
524 UBool isCompNoMaybe= norm.type>=Norm::NO_NO_COMP_YES; in writeNorm16()
528 if(norm.leadCC!=0 && start<indexes[Normalizer2Impl::IX_MIN_LCCC_CP]) { in writeNorm16()
595 // Set the Norm::Type and other properties. in processData()
986 Norm::MappingType prevType = Norm::NONE; in writeDataFile()
990 const Norm *norm; in writeDataFile() local
993 norm = norms.getNorm(c); in writeDataFile()
996 norm = nullptr; in writeDataFile()
1000 Norm::MappingType type; in writeDataFile()
1001 if(norm == nullptr) { in writeDataFile()
1003 type = Norm::NONE; in writeDataFile()
1005 type = norm->mappingType; in writeDataFile()
1006 if(type == Norm::NONE) { in writeDataFile()
1009 mapping = norm->mapping; in writeDataFile()
1015 if(writeRemoved ? prevType != Norm::NONE : prevType > Norm::REMOVED) { in writeDataFile()
1059 const Norm *norm1 = b1.norms.getNorm(c); in computeDiff()
1060 const Norm *norm2 = b2.norms.getNorm(c); in computeDiff()
1062 Norm::MappingType type1; in computeDiff()
1065 type1 = Norm::NONE; in computeDiff()
1071 Norm::MappingType type2; in computeDiff()
1074 type2 = Norm::NONE; in computeDiff()
1081 } else if(type1 == Norm::NONE) { in computeDiff()
1083 } else if(type1 == Norm::ROUND_TRIP) { in computeDiff()
1085 } else if(type1 == Norm::ONE_WAY) { in computeDiff()