File indexing completed on 2026-05-10 08:36:56
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_CLANG_INDEX_USRGENERATION_H
0010 #define LLVM_CLANG_INDEX_USRGENERATION_H
0011
0012 #include "clang/Basic/LLVM.h"
0013 #include "llvm/ADT/StringRef.h"
0014
0015 namespace clang {
0016 class ASTContext;
0017 class Decl;
0018 class LangOptions;
0019 class MacroDefinitionRecord;
0020 class Module;
0021 class SourceLocation;
0022 class SourceManager;
0023 class QualType;
0024
0025 namespace index {
0026
0027 static inline StringRef getUSRSpacePrefix() {
0028 return "c:";
0029 }
0030
0031
0032
0033 bool generateUSRForDecl(const Decl *D, SmallVectorImpl<char> &Buf);
0034 bool generateUSRForDecl(const Decl *D, SmallVectorImpl<char> &Buf,
0035 const LangOptions &LangOpts);
0036
0037
0038 void generateUSRForObjCClass(StringRef Cls, raw_ostream &OS,
0039 StringRef ExtSymbolDefinedIn = "",
0040 StringRef CategoryContextExtSymbolDefinedIn = "");
0041
0042
0043 void generateUSRForObjCCategory(StringRef Cls, StringRef Cat, raw_ostream &OS,
0044 StringRef ClsExtSymbolDefinedIn = "",
0045 StringRef CatExtSymbolDefinedIn = "");
0046
0047
0048
0049
0050 void generateUSRForObjCIvar(StringRef Ivar, raw_ostream &OS);
0051
0052
0053 void generateUSRForObjCMethod(StringRef Sel, bool IsInstanceMethod,
0054 raw_ostream &OS);
0055
0056
0057 void generateUSRForObjCProperty(StringRef Prop, bool isClassProp, raw_ostream &OS);
0058
0059
0060 void generateUSRForObjCProtocol(StringRef Prot, raw_ostream &OS,
0061 StringRef ExtSymbolDefinedIn = "");
0062
0063
0064 void generateUSRForGlobalEnum(StringRef EnumName, raw_ostream &OS,
0065 StringRef ExtSymbolDefinedIn = "");
0066
0067
0068 void generateUSRForEnumConstant(StringRef EnumConstantName, raw_ostream &OS);
0069
0070
0071
0072
0073 bool generateUSRForMacro(const MacroDefinitionRecord *MD,
0074 const SourceManager &SM, SmallVectorImpl<char> &Buf);
0075 bool generateUSRForMacro(StringRef MacroName, SourceLocation Loc,
0076 const SourceManager &SM, SmallVectorImpl<char> &Buf);
0077
0078
0079
0080
0081 bool generateUSRForType(QualType T, ASTContext &Ctx,
0082 SmallVectorImpl<char> &Buf);
0083 bool generateUSRForType(QualType T, ASTContext &Ctx, SmallVectorImpl<char> &Buf,
0084 const LangOptions &LangOpts);
0085
0086
0087
0088 bool generateFullUSRForModule(const Module *Mod, raw_ostream &OS);
0089
0090
0091
0092 bool generateFullUSRForTopLevelModuleName(StringRef ModName, raw_ostream &OS);
0093
0094
0095
0096 bool generateUSRFragmentForModule(const Module *Mod, raw_ostream &OS);
0097
0098
0099
0100 bool generateUSRFragmentForModuleName(StringRef ModName, raw_ostream &OS);
0101
0102
0103 }
0104 }
0105
0106 #endif
0107