Home | History | Annotate | Download | only in Support

Lines Matching defs:Components

353   // Parse into components.
354 SmallVector<StringRef, 4> Components;
355 Str.split(Components, "-");
363 if (Components.size() > 0)
364 Arch = parseArch(Components[0]);
366 if (Components.size() > 1)
367 Vendor = parseVendor(Components[1]);
369 if (Components.size() > 2)
370 OS = parseOS(Components[2]);
372 if (Components.size() > 3)
373 Environment = parseEnvironment(Components[3]);
375 // Note which components are already in their final position. These will not
383 // If they are not there already, permute the components into their canonical
390 for (unsigned Idx = 0; Idx != Components.size(); ++Idx) {
391 // Do not reparse any components that already matched.
397 StringRef Comp = Components[Idx];
421 // components that are in the way to the right. This tends to give
425 // Insert left, pushing the existing components to the right. For
429 std::swap(CurrentComponent, Components[Idx]);
431 // components to the right.
433 // Skip over any fixed components.
438 std::swap(CurrentComponent, Components[i]);
441 // Push right by inserting empty components until the component at Idx
447 for (unsigned i = Idx; i < Components.size();) {
450 std::swap(CurrentComponent, Components[i]);
454 // Advance to the next component, skipping any fixed components.
460 Components.push_back(CurrentComponent);
467 assert(Pos < Components.size() && Components[Pos] == Comp &&
475 // correct values for the computed components.
477 // Stick the corrected components back together to form the normalized string.
479 for (unsigned i = 0, e = Components.size(); i != e; ++i) {
481 Normalized += Components[i];
539 // Parse up to three components.
540 unsigned *Components[3] = { &Major, &Minor, &Micro };
546 *Components[i] = EatNumber(OSName);