1 //===- TokenBufferTokenManager.cpp ----------------------------------------===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 #include "clang/Tooling/Syntax/TokenBufferTokenManager.h"
13 constexpr llvm::StringLiteral
syntax::TokenBufferTokenManager::Kind
;
15 std::pair
<FileID
, ArrayRef
<syntax::Token
>>
16 syntax::TokenBufferTokenManager::lexBuffer(
17 std::unique_ptr
<llvm::MemoryBuffer
> Input
) {
18 auto FID
= SM
.createFileID(std::move(Input
));
19 auto It
= ExtraTokens
.try_emplace(FID
, tokenize(FID
, SM
, LangOpts
));
20 assert(It
.second
&& "duplicate FileID");
21 return {FID
, It
.first
->second
};