17#ifndef LLVM_CLANG_EXTRACTAPI_SERIALIZATION_SYMBOLGRAPHSERIALIZER_H
18#define LLVM_CLANG_EXTRACTAPI_SERIALIZATION_SYMBOLGRAPHSERIALIZER_H
23#include "llvm/ADT/DenseMap.h"
24#include "llvm/ADT/SmallString.h"
25#include "llvm/ADT/SmallVector.h"
26#include "llvm/ADT/StringMap.h"
27#include "llvm/ADT/StringRef.h"
28#include "llvm/ADT/StringSet.h"
29#include "llvm/ADT/Twine.h"
30#include "llvm/Support/JSON.h"
31#include "llvm/Support/VersionTuple.h"
32#include "llvm/Support/raw_ostream.h"
84 llvm::StringMap<ExtendedModule> ExtendedModules;
87 static const VersionTuple FormatVersion;
91 bool ForceEmitToMainModule;
102 const bool EmitSymbolLabelsForTesting =
false;
104 const bool SkipSymbolsInCategoriesToExternalTypes =
false;
107 Object *CurrentSymbol =
nullptr;
119 raw_ostream &MainOutput,
const APISet &
API,
122 std::unique_ptr<llvm::raw_pwrite_stream>(llvm::Twine BaseFileName)>
136 enum RelationshipKind {
158 static StringRef getRelationshipString(RelationshipKind
Kind);
160 void serializeRelationship(RelationshipKind
Kind,
165 enum ConstraintKind { Conformance, ConditionalConformance };
167 static StringRef getConstraintString(ConstraintKind
Kind);
177 void serializeGraphToStream(raw_ostream &OS,
185 Object serializeMetadata()
const;
193 Object serializeModuleObject(StringRef ModuleName)
const;
274 bool EmitSymbolLabelsForTesting =
false,
275 bool ForceEmitToMainModule =
false,
276 bool SkipSymbolsInCategoriesToExternalTypes =
false)
277 :
Base(
API), ForceEmitToMainModule(ForceEmitToMainModule),
278 IgnoresList(IgnoresList),
279 EmitSymbolLabelsForTesting(EmitSymbolLabelsForTesting),
280 SkipSymbolsInCategoriesToExternalTypes(
281 SkipSymbolsInCategoriesToExternalTypes) {}
This file defines the ExtractAPI APISetVisitor interface.
This file defines the APIRecord-based structs and the APISet class.
enum clang::sema::@1653::IndirectLocalPathEntry::EntryKind Kind
llvm::MachO::Target Target
llvm::MachO::Record Record
The JSON file list parser is used to communicate input to InstallAPI.