Lines Matching full:piece
480 struct Piece { struct
482 Piece(PieceKind Kind) : ClassKind(Kind) {} in Piece() argument
483 Piece(Piece const &O) = delete;
484 Piece &operator=(Piece const &) = delete;
485 virtual ~Piece() {} in ~Piece() argument
488 static bool classof(const Piece *) { return true; } in classof() argument
494 struct MultiPiece : Piece {
495 MultiPiece() : Piece(MultiPieceClass) {} in MultiPiece()
496 MultiPiece(std::vector<Piece *> Pieces) in MultiPiece()
497 : Piece(MultiPieceClass), Pieces(std::move(Pieces)) {} in MultiPiece()
499 std::vector<Piece *> Pieces;
501 static bool classof(const Piece *P) { in classof()
506 struct TextPiece : Piece {
510 : Piece(TextPieceClass), Role(Role), Text(Text.str()) {} in TextPiece()
512 static bool classof(const Piece *P) { in classof()
517 struct PlaceholderPiece : Piece {
521 : Piece(PlaceholderPieceClass), Kind(Kind), Index(Index) {} in PlaceholderPiece()
523 static bool classof(const Piece *P) { in classof()
528 struct SelectPiece : Piece {
531 : Piece(Kind), ModKind(ModKind) {} in SelectPiece()
537 std::vector<Piece *> Options;
540 static bool classof(const Piece *P) { in classof()
549 std::vector<Piece *> OptionPrefixes;
552 static bool classof(const Piece *P) { in classof()
557 struct DiffPiece : Piece {
558 DiffPiece() : Piece(DiffPieceClass) {} in DiffPiece()
560 Piece *Parts[4] = {};
563 static bool classof(const Piece *P) { in classof()
568 struct SubstitutionPiece : Piece {
569 SubstitutionPiece() : Piece(SubstitutionPieceClass) {} in SubstitutionPiece()
574 static bool classof(const Piece *P) { in classof()
610 Piece *getSubstitution(SubstitutionPiece *S) const { in getSubstitution()
625 std::vector<Piece *> AllocatedPieces;
626 Piece *Root = nullptr;
629 static_assert(std::is_base_of<Piece, T>::value, "must be piece"); in New()
647 Piece *parseDiagText(StringRef &Text, StopAt Stop);
666 for (Piece *P : AllocatedPieces) in ~DiagText()
721 Piece *Substitution;
727 void Visit(Piece *P) { in Visit()
731 return getDerived().Visit##T(static_cast<T##Piece *>(P)) in Visit()
805 Piece *OrigP, const ModifierMappingsType &CurrentMappings, in gatherNodes()
806 std::vector<std::pair<Piece *, ModifierMappingsType>> &Pieces) const { in gatherNodes()
813 for (Piece *Node : MD->Pieces) in gatherNodes()
831 std::vector<std::pair<Piece *, ModifierMappingsType>> Pieces; in VisitMulti()
837 for (const std::pair<Piece *, ModifierMappingsType> &NodePair : Pieces) { in VisitMulti()
846 // We need a vertical separator if either this or the previous piece is a in VisitMulti()
847 // multi-line piece, or this is the last piece. in VisitMulti()
1018 Piece *DiagnosticTextBuilder::DiagText::parseDiagText(StringRef &Text, in parseDiagText()
1020 std::vector<Piece *> Parsed; in parseDiagText()
1332 for (StringRef Piece : SelectPieces) { in verifyDiagnosticWording() local
1333 if (Piece.empty()) in verifyDiagnosticWording()
1336 DiagnoseStart(Piece); in verifyDiagnosticWording()
1340 // There was an empty select piece, so we need to check the second in verifyDiagnosticWording()
1355 // at each piece to see whether it ends in punctuation or not. in verifyDiagnosticWording()
1389 for (StringRef Piece : SelectPieces) { in verifyDiagnosticWording() local
1391 if (!Piece.empty()) in verifyDiagnosticWording()
1392 DiagnoseEnd(Piece); in verifyDiagnosticWording()