12#ifndef CLANG_SEMA_HLSLEXTERNALSEMASOURCE_H
13#define CLANG_SEMA_HLSLEXTERNALSEMASOURCE_H
15#include "llvm/ADT/DenseMap.h"
24 Sema *SemaPtr =
nullptr;
27 using CompletionFunction = std::function<void(
CXXRecordDecl *)>;
28 llvm::DenseMap<CXXRecordDecl *, CompletionFunction> Completions;
30 void defineHLSLVectorAlias();
31 void defineTrivialHLSLTypes();
32 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 CompleteType(TagDecl *Tag) override
Complete an incomplete HLSL builtin type.
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
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.