brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.4 KiB · 2420bd4 Raw
41 lines · c
1//===-- PragmaCommentHandler.h - find all symbols----------------*- C++ -*-===//2//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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_CLANG_TOOLS_EXTRA_FIND_ALL_SYMBOLS_PRAGMA_COMMENT_HANDLER_H10#define LLVM_CLANG_TOOLS_EXTRA_FIND_ALL_SYMBOLS_PRAGMA_COMMENT_HANDLER_H11 12#include "clang/Basic/SourceLocation.h"13#include "clang/Lex/Preprocessor.h"14#include <map>15 16namespace clang {17namespace find_all_symbols {18 19class HeaderMapCollector;20 21/// PragmaCommentHandler parses pragma comment on include files to22/// determine when we should include a different header from the header that23/// directly defines a symbol.24///25/// Currently it only supports IWYU private pragma:26/// https://github.com/include-what-you-use/include-what-you-use/blob/master/docs/IWYUPragmas.md#iwyu-pragma-private27class PragmaCommentHandler : public clang::CommentHandler {28public:29  PragmaCommentHandler(HeaderMapCollector *Collector) : Collector(Collector) {}30 31  bool HandleComment(Preprocessor &PP, SourceRange Range) override;32 33private:34  HeaderMapCollector *const Collector;35};36 37} // namespace find_all_symbols38} // namespace clang39 40#endif // LLVM_CLANG_TOOLS_EXTRA_FIND_ALL_SYMBOLS_PRAGMA_COMMENT_HANDLER_H41