10 #include "clang/Basic/CharInfo.h"
11 #include "llvm/Support/Path.h"
19 SourceLocation ExpansionLoc = SM.getExpansionLoc(
Loc);
20 return isFileExtension(SM.getFilename(ExpansionLoc), HeaderFileExtensions);
25 PresumedLoc PresumedLocation = SM.getPresumedLoc(
Loc);
26 return isFileExtension(PresumedLocation.getFilename(), HeaderFileExtensions);
31 SourceLocation SpellingLoc = SM.getSpellingLoc(
Loc);
32 return isFileExtension(SM.getFilename(SpellingLoc), HeaderFileExtensions);
37 StringRef Delimiters) {
39 for (
char Delimiter : Delimiters) {
40 if (AllFileExtensions.contains(Delimiter)) {
41 AllFileExtensions.split(
Suffixes, Delimiter);
46 FileExtensions.clear();
48 StringRef Extension =
Suffix.trim();
49 if (!llvm::all_of(Extension, isAlphanumeric))
51 FileExtensions.insert(Extension);
56 llvm::Optional<StringRef>
58 StringRef Extension = llvm::sys::path::extension(
FileName);
59 if (Extension.empty())
62 if (!FileExtensions.count(Extension.substr(1)))