Lines Matching full:ranges
1526 ZoneList<CharacterRange>* ranges = cc->ranges();
1539 int range_count = ranges->length();
1543 CharacterRange& range = ranges->at(last_valid_range);
1564 ranges->at(0).IsEverything(max_char)) {
1583 CharacterRange& range = ranges->at(i);
1606 CharacterRange& range = ranges->at(last_valid_range);
1995 ZoneList<CharacterRange>* ranges = tree->ranges();
2005 while (ranges->at(first_range).from() > char_mask) {
2007 if (first_range == ranges->length()) {
2013 CharacterRange range = ranges->at(first_range);
2028 for (int i = first_range + 1; i < ranges->length(); i++) {
2029 CharacterRange range = ranges->at(i);
2034 // Here we are combining more ranges into the mask and compare
2037 // with multiple ranges is assumed never to be equivalent to a
2629 ZoneList<CharacterRange>* ranges = cc->ranges();
2630 int range_count = ranges->length();
2632 ranges->at(j).AddCaseEquivalents(ranges, is_ascii);
3420 for (int j = 0; j < node->ranges()->length(); j++) {
3421 CharacterRange range = node->ranges()->at(j);
3613 static bool CompareInverseRanges(ZoneList<CharacterRange>* ranges,
3616 ASSERT(ranges->length() != 0);
3619 if (ranges->length() != (length >> 1) + 1) {
3622 CharacterRange range = ranges->at(0);
3630 range = ranges->at((i >> 1) + 1);
3642 static bool CompareRanges(ZoneList<CharacterRange>* ranges,
3645 if (ranges->length() * 2 != length) {
3649 CharacterRange range = ranges->at(i >> 1);
3667 if (CompareRanges(set_.ranges(), kSpaceRanges, kSpaceRangeCount)) {
3671 if (CompareInverseRanges(set_.ranges(), kSpaceRanges, kSpaceRangeCount)) {
3675 ranges(),
3681 if (CompareRanges(set_.ranges(),
3687 if (CompareRanges(set_.ranges(), kWordRanges, kWordRangeCount)) {
3691 if (CompareInverseRanges(set_.ranges(), kWordRanges, kWordRangeCount)) {
4007 ZoneList<CharacterRange>* ranges) {
4010 ranges->Add(CharacterRange(elmv[i], elmv[i + 1]));
4017 ZoneList<CharacterRange>* ranges) {
4024 ranges->Add(CharacterRange(last, elmv[i] - 1));
4027 ranges->Add(CharacterRange(last, String::kMaxUC16CharCode));
4032 ZoneList<CharacterRange>* ranges) {
4035 AddClass(kSpaceRanges, kSpaceRangeCount, ranges);
4038 AddClassNegated(kSpaceRanges, kSpaceRangeCount, ranges);
4041 AddClass(kWordRanges, kWordRangeCount, ranges);
4044 AddClassNegated(kWordRanges, kWordRangeCount, ranges);
4047 AddClass(kDigitRanges, kDigitRangeCount, ranges);
4050 AddClassNegated(kDigitRanges, kDigitRangeCount, ranges);
4055 ranges);
4061 ranges->Add(CharacterRange::Everything());
4068 ranges);
4127 ZoneList<CharacterRange>* ranges,
4132 void CharacterRange::AddCaseEquivalents(ZoneList<CharacterRange>* ranges,
4148 ranges->Add(CharacterRange::Singleton(chars[i]));
4188 ranges->Add(CharacterRange(range_from, range_to));
4197 bool CharacterRange::IsCanonical(ZoneList<CharacterRange>* ranges) {
4198 ASSERT_NOT_NULL(ranges);
4199 int n = ranges->length();
4201 int max = ranges->at(0).to();
4203 CharacterRange next_range = ranges->at(i);
4224 // Check the two ranges for the five cases:
4226 // - partial overlap (there are elements in both ranges that isn't
4230 // - ranges are completely equal.
4234 // Ranges are disjoint. The earlier word range contains elements that
4238 // Ranges are disjoint. The earlier argument range contains elements that
4293 ZoneList<CharacterRange>* ranges,
4317 range.AddCaseEquivalents(ranges, false);
4321 // Split up very large ranges. This helps remove ranges where there are no
4325 AddUncanonicals(isolate, ranges, bottom, boundaries[i] - 1);
4326 AddUncanonicals(isolate, ranges, boundaries[i], top);
4360 // Step through the equivalent characters finding simple ranges and
4361 // adding ranges to the character class.
4371 ranges->Add(CharacterRange::Singleton(new_from));
4373 ranges->Add(CharacterRange(new_from, new_to));
4379 ranges->Add(CharacterRange::Singleton(new_from));
4381 ranges->Add(CharacterRange(new_from, new_to));
4387 ZoneList<CharacterRange>* CharacterSet::ranges() {
4402 // Ranges are potentially overlapping.
4421 // canonicalized ranges. Inserting a range may collapse existing ranges into
4422 // fewer ranges, so the return value can be anything in the range 1..count+1.
4437 // Inserted range overlaps, or is adjacent to, ranges at positions
4438 // [start_pos..end_pos[. Ranges before start_pos or at or after end_pos are
4445 // Insert between existing ranges at position start_pos.
4460 // Replace a number of existing ranges from start_pos to end_pos - 1.
4461 // Move the remaining ranges down.
4475 // of calling ranges() will be sorted.
4483 // Check whether ranges are already canonical (increasing, non-overlapping,
4499 // The ranges at index i and forward are not canonicalized. Make them so by
4502 // Notice that inserting a range can reduce the number of ranges in the
4503 // result due to combining of adjacent and overlapping ranges.
4606 // Ranges disjoint: |current| |next|
4624 // Ranges overlap: |current|
4644 // If ranges end at same character, both ranges are consumed completely.
4657 void CharacterRange::Negate(ZoneList<CharacterRange>* ranges,
4659 ASSERT(CharacterRange::IsCanonical(ranges));
4661 int range_count = ranges->length();
4664 if (range_count > 0 && ranges->at(0).from() == 0) {
4665 from = ranges->at(0).to();
4669 CharacterRange range = ranges->at(i);
4785 // because the following code only handles ranges that start on
5151 ZoneList<CharacterRange>* ranges = char_class->ranges();
5152 // TODO(lrn): Canonicalize ranges when they are created
5154 CharacterRange::Canonicalize(ranges);
5156 int length = ranges->length();
5159 if (ranges->at(0).from() == 0) new_length--;
5160 if (ranges->at(length - 1).to() == String::kMaxUC16CharCode) {
5166 CharacterRange::Negate(ranges, negated_ranges);
5169 set_first_character_set(ranges);
5242 void DispatchTableConstructor::AddInverse(ZoneList<CharacterRange>* ranges) {
5243 ranges->Sort(CompareRangeByFrom);
5245 for (int i = 0; i < ranges->length(); i++) {
5246 CharacterRange range = ranges->at(i);
5271 ZoneList<CharacterRange>* ranges = tree->ranges();
5273 AddInverse(ranges);
5275 for (int i = 0; i < ranges->length(); i++)
5276 AddRange(ranges->at(i));