12 #ifndef CLANG_SEMA_HLSLEXTERNALSEMASOURCE_H
13 #define CLANG_SEMA_HLSLEXTERNALSEMASOURCE_H
15 #include "llvm/ADT/DenseMap.h"
24 Sema *SemaPtr =
nullptr;
28 using CompletionFunction = std::function<void(
CXXRecordDecl *)>;
29 llvm::DenseMap<CXXRecordDecl *, CompletionFunction> Completions;
31 void defineHLSLVectorAlias();
32 void defineTrivialHLSLTypes();
33 void defineHLSLTypesWithForwardDeclarations();
llvm::MachO::Record Record
Represents a C++ struct/union/class.
virtual void CompleteType(TagDecl *Tag)
Gives the external AST source an opportunity to complete an incomplete type.
An abstract interface that should be implemented by external AST sources that also provide informatio...
void ForgetSema() override
Inform the semantic consumer that Sema is no longer available.
void InitializeSema(Sema &S) override
Initialize the semantic source with the Sema instance being used to perform semantic analysis on the ...
~HLSLExternalSemaSource() override
virtual void CompleteType(TagDecl *Tag)
Gives the external AST source an opportunity to complete an incomplete type.
Represent a C++ namespace.
Sema - This implements semantic analysis and AST building for C.
Represents the declaration of a struct/union/class/enum.
The JSON file list parser is used to communicate input to InstallAPI.