//===--- ParsedTrivia.cpp - ParsedTrivia API ----------------------------*-===// // // This source file is part of the Swift.org open source project // // Copyright (c) 2014 - 2019 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // //===----------------------------------------------------------------------===// #include "swift/Parse/ParsedTrivia.h" #include "swift/Syntax/Trivia.h" #include "swift/Basic/SourceManager.h" using namespace swift; using namespace swift::syntax; Trivia ParsedTriviaPiece::convertToSyntaxTrivia(ArrayRef pieces, SourceLoc loc, const SourceManager &SM, unsigned bufferID) { Trivia trivia; SourceLoc curLoc = loc; for (const auto &piece : pieces) { CharSourceRange range{curLoc, piece.getLength()}; StringRef text = SM.extractText(range, bufferID); trivia.push_back(TriviaPiece::fromText(piece.getKind(), text)); curLoc = curLoc.getAdvancedLoc(piece.getLength()); } return trivia; } Trivia ParsedTrivia::convertToSyntaxTrivia(SourceLoc loc, const SourceManager &SM, unsigned bufferID) const { return ParsedTriviaPiece::convertToSyntaxTrivia(Pieces, loc, SM, bufferID); }