Lines Matching full:start
81 // Requires start<limit,
82 // and all strings of the [start..limit[ elements must be sorted and
85 StringTrieBuilder::writeNode(int32_t start, int32_t limit, int32_t unitIndex) { in writeNode() argument
89 if(unitIndex==getElementStringLength(start)) { in writeNode()
91 value=getElementValue(start++); in writeNode()
92 if(start==limit) { in writeNode()
97 // Now all [start..limit[ strings are longer than unitIndex. in writeNode()
98 int32_t minUnit=getElementUnit(start, unitIndex); in writeNode()
102 int32_t lastUnitIndex=getLimitOfLinearMatch(start, limit-1, unitIndex); in writeNode()
103 writeNode(start, limit, lastUnitIndex); in writeNode()
110 writeElementUnits(start, lastUnitIndex, maxLinearMatchLength); in writeNode()
113 writeElementUnits(start, unitIndex, length); in writeNode()
117 int32_t length=countElementUnits(start, limit, unitIndex); in writeNode()
119 writeBranchSubNode(start, limit, unitIndex, length); in writeNode()
130 // start<limit && all strings longer than unitIndex &&
133 StringTrieBuilder::writeBranchSubNode(int32_t start, int32_t limit, int32_t unitIndex, int32_t leng… in writeBranchSubNode() argument
140 int32_t i=skipElementsBySomeUnits(start, unitIndex, length/2); in writeBranchSubNode()
143 lessThan[ltLength]=writeBranchSubNode(start, i, unitIndex, length/2); in writeBranchSubNode()
146 start=i; in writeBranchSubNode()
149 // For each unit, find its elements array start and whether it has a final value. in writeBranchSubNode()
154 int32_t i=starts[unitNumber]=start; in writeBranchSubNode()
157 isFinal[unitNumber]= start==i-1 && unitIndex+1==getElementStringLength(start); in writeBranchSubNode()
158 start=i; in writeBranchSubNode()
160 // unitNumber==length-1, and the maxUnit elements range is [start..limit[ in writeBranchSubNode()
161 starts[unitNumber]=start; in writeBranchSubNode()
177 writeNode(start, limit, unitIndex+1); in writeBranchSubNode()
178 int32_t offset=write(getElementUnit(start, unitIndex)); in writeBranchSubNode()
181 start=starts[unitNumber]; in writeBranchSubNode()
185 value=getElementValue(start); in writeBranchSubNode()
187 // Write the delta to the start position of the sub-node. in writeBranchSubNode()
191 offset=write(getElementUnit(start, unitIndex)); in writeBranchSubNode()
202 // Requires start<limit,
203 // and all strings of the [start..limit[ elements must be sorted and
206 StringTrieBuilder::makeNode(int32_t start, int32_t limit, int32_t unitIndex, UErrorCode &errorCode)… in makeNode() argument
212 if(unitIndex==getElementStringLength(start)) { in makeNode()
214 value=getElementValue(start++); in makeNode()
215 if(start==limit) { in makeNode()
221 // Now all [start..limit[ strings are longer than unitIndex. in makeNode()
222 int32_t minUnit=getElementUnit(start, unitIndex); in makeNode()
226 int32_t lastUnitIndex=getLimitOfLinearMatch(start, limit-1, unitIndex); in makeNode()
227 Node *nextNode=makeNode(start, limit, lastUnitIndex, errorCode); in makeNode()
234 node=createLinearMatchNode(start, lastUnitIndex, maxLinearMatchLength, nextNode); in makeNode()
237 node=createLinearMatchNode(start, unitIndex, length, nextNode); in makeNode()
240 int32_t length=countElementUnits(start, limit, unitIndex); in makeNode()
242 Node *subNode=makeBranchSubNode(start, limit, unitIndex, length, errorCode); in makeNode()
255 // start<limit && all strings longer than unitIndex &&
258 StringTrieBuilder::makeBranchSubNode(int32_t start, int32_t limit, int32_t unitIndex, in makeBranchSubNode() argument
269 int32_t i=skipElementsBySomeUnits(start, unitIndex, length/2); in makeBranchSubNode()
272 lessThan[ltLength]=makeBranchSubNode(start, i, unitIndex, length/2, errorCode); in makeBranchSubNode()
275 start=i; in makeBranchSubNode()
286 // For each unit, find its elements array start and whether it has a final value. in makeBranchSubNode()
289 int32_t i=start; in makeBranchSubNode()
292 if(start==i-1 && unitIndex+1==getElementStringLength(start)) { in makeBranchSubNode()
293 listNode->add(unit, getElementValue(start)); in makeBranchSubNode()
295 listNode->add(unit, makeNode(start, i, unitIndex+1, errorCode)); in makeBranchSubNode()
297 start=i; in makeBranchSubNode()
299 // unitNumber==length-1, and the maxUnit elements range is [start..limit[ in makeBranchSubNode()
300 UChar unit=getElementUnit(start, unitIndex); in makeBranchSubNode()
301 if(start==limit-1 && unitIndex+1==getElementStringLength(start)) { in makeBranchSubNode()
302 listNode->add(unit, getElementValue(start)); in makeBranchSubNode()
304 listNode->add(unit, makeNode(start, limit, unitIndex+1, errorCode)); in makeBranchSubNode()
541 // Write the delta to the start position of the sub-node. in write()