15 #ifndef LLVM_CLANG_TOOLS_EXTRA_CLANG_DOC_REPRESENTATION_H 16 #define LLVM_CLANG_TOOLS_EXTRA_CLANG_DOC_REPRESENTATION_H 18 #include "clang/AST/Type.h" 19 #include "clang/Basic/Specifiers.h" 20 #include "clang/Tooling/StandaloneExecution.h" 21 #include "llvm/ADT/Optional.h" 22 #include "llvm/ADT/SmallVector.h" 23 #include "llvm/ADT/StringExtras.h" 58 bool SelfClosing =
false;
59 bool Explicit =
false;
61 llvm::SmallVector<SmallString<16>, 4>
63 llvm::SmallVector<SmallString<16>, 4>
65 llvm::SmallVector<SmallString<16>, 4>
67 std::vector<std::unique_ptr<CommentInfo>>
75 : USR(USR), Name(Name), RefType(IT) {}
78 return std::tie(USR,
Name, RefType) ==
93 : Type(Type, Field, IT) {}
94 TypeInfo(llvm::StringRef RefName) : Type(RefName) {}
105 llvm::StringRef
Name)
106 :
TypeInfo(Type, Field, IT), Name(Name) {}
111 return std::tie(Type,
Name) == std::tie(Other.
Type, Other.
Name);
121 llvm::StringRef
Name, AccessSpecifier Access)
124 AccessSpecifier Access)
128 return std::tie(Type,
Name, Access) ==
132 AccessSpecifier Access = AccessSpecifier::AS_none;
141 : LineNumber(LineNumber), Filename(std::move(Filename)) {}
144 return std::tie(LineNumber,
Filename) ==
163 llvm::SmallVector<Reference, 4>
167 void mergeBase(
Info &&I);
168 bool mergeable(
const Info &Other);
185 llvm::SmallVector<Location, 2>
Loc;
195 bool IsMethod =
false;
198 llvm::SmallVector<FieldTypeInfo, 4>
Params;
200 AccessSpecifier Access = AccessSpecifier::AS_none;
211 TagTypeKind TagType = TagTypeKind::TTK_Struct;
214 llvm::SmallVector<MemberTypeInfo, 4>
219 llvm::SmallVector<Reference, 4>
232 llvm::SmallVector<SmallString<16>, 4>
Members;
240 llvm::Expected<std::unique_ptr<Info>>
241 mergeInfos(std::vector<std::unique_ptr<Info>> &Values);
244 tooling::ExecutionContext *
ECtx;
251 #endif // LLVM_CLANG_TOOLS_EXTRA_CLANG_DOC_REPRESENTATION_H
llvm::SmallVector< Reference, 4 > Namespace
llvm::Optional< Location > DefLoc
llvm::SmallVector< Location, 2 > Loc
bool operator==(const TypeInfo &Other) const
MemberTypeInfo(SymbolID Type, StringRef Field, InfoType IT, llvm::StringRef Name, AccessSpecifier Access)
bool operator==(const Reference &Other) const
Reference(llvm::StringRef Name)
bool operator==(const MemberTypeInfo &Other) const
llvm::SmallVector< Reference, 4 > VirtualParents
MemberTypeInfo(llvm::StringRef RefName, llvm::StringRef Name, AccessSpecifier Access)
Location(int LineNumber, SmallString< 16 > Filename)
llvm::SmallVector< FieldTypeInfo, 4 > Params
std::string Filename
Filename as a string.
llvm::SmallVector< SmallString< 16 >, 4 > Members
std::vector< CommentInfo > Description
llvm::Expected< std::unique_ptr< Info > > mergeInfos(std::vector< std::unique_ptr< Info >> &Values)
llvm::SmallVector< Reference, 4 > Parents
Reference(SymbolID USR, StringRef Name, InfoType IT)
bool operator==(const Location &Other) const
tooling::ExecutionContext * ECtx
===– Representation.cpp - ClangDoc Representation --------—*- C++ -*-===//
TypeInfo(SymbolID Type, StringRef Field, InfoType IT)
SmallString< 32 > Filename
bool operator==(const FieldTypeInfo &Other) const
llvm::SmallVector< MemberTypeInfo, 4 > Members
FieldTypeInfo(SymbolID Type, StringRef Field, InfoType IT, llvm::StringRef Name)
std::array< uint8_t, 20 > SymbolID
FieldTypeInfo(llvm::StringRef RefName, llvm::StringRef Name)
TypeInfo(llvm::StringRef RefName)