//===-- SymbolInfo.h - Symbol Info ------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_FIND_ALL_SYMBOLS_SYMBOLINFO_H #define LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_FIND_ALL_SYMBOLS_SYMBOLINFO_H #include "llvm/ADT/StringRef.h" #include "llvm/Support/YAMLTraits.h" #include "llvm/Support/raw_ostream.h" #include <set> #include <string> #include <vector> namespace clang { namespace find_all_symbols { /// Describes a named symbol from a header. /// Symbols with the same qualified name and type (e.g. function overloads) /// that appear in the same header are represented by a single SymbolInfo. /// /// TODO: keep track of instances, e.g. overload locations and signatures. class SymbolInfo { … }; struct SymbolAndSignals { … }; /// Write SymbolInfos to a stream (YAML format). bool WriteSymbolInfosToStream(llvm::raw_ostream &OS, const SymbolInfo::SignalMap &Symbols); /// Read SymbolInfos from a YAML document. std::vector<SymbolAndSignals> ReadSymbolInfosFromYAML(llvm::StringRef Yaml); } // namespace find_all_symbols } // namespace clang #endif // LLVM_CLANG_TOOLS_EXTRA_INCLUDE_FIXER_FIND_ALL_SYMBOLS_SYMBOLINFO_H