Go to the documentation of this file.
14 #ifndef LLVM_CLANG_FRONTEND_MULTIPLEXCONSUMER_H
15 #define LLVM_CLANG_FRONTEND_MULTIPLEXCONSUMER_H
25 class MultiplexASTMutationListener;
33 const std::vector<ASTDeserializationListener *> &L);
47 std::vector<ASTDeserializationListener *> Listeners;
83 std::vector<std::unique_ptr<ASTConsumer>> Consumers;
84 std::unique_ptr<MultiplexASTMutationListener> MutationListener;
85 std::unique_ptr<MultiplexASTDeserializationListener> DeserializationListener;
ASTDeserializationListener * GetASTDeserializationListener() override
If the consumer is interested in entities being deserialized from AST files, it should return a point...
void SelectorRead(serialization::SelectorID iD, Selector Sel) override
A selector was read from the AST file.
A type index; the type ID with the qualifier bits removed.
bool shouldSkipFunctionBody(Decl *D) override
This callback is called for each function if the Parser was initialized with SkipFunctionBodies set t...
void HandleInterestingDecl(DeclGroupRef D) override
HandleInterestingDecl - Handle the specified interesting declaration.
Encodes a location in the source.
void HandleTagDeclDefinition(TagDecl *D) override
HandleTagDeclDefinition - This callback is invoked each time a TagDecl (e.g.
uint32_t IdentID
An ID number that refers to an identifier in an AST file.
~MultiplexConsumer() override
void TypeRead(serialization::TypeIdx Idx, QualType T) override
A type was deserialized from the AST file.
A (possibly-)qualified type.
void HandleImplicitImportDecl(ImportDecl *D) override
Handle an ImportDecl that was implicitly created due to an inclusion directive.
void ModuleImportRead(serialization::SubmoduleID ID, SourceLocation ImportLoc) override
A module import was read from the AST file.
void MacroDefinitionRead(serialization::PreprocessedEntityID, MacroDefinitionRecord *MD) override
A macro definition was read from the AST file.
void PrintStats() override
PrintStats - If desired, print any statistics.
Encapsulates the data about a macro definition (e.g.
void CompleteTentativeDefinition(VarDecl *D) override
CompleteTentativeDefinition - Callback invoked at the end of a translation unit to notify the consume...
void InitializeSema(Sema &S) override
Initialize the semantic consumer with the Sema instance being used to perform semantic analysis on th...
void DeclRead(serialization::DeclID ID, const Decl *D) override
A decl was deserialized from the AST file.
uint32_t MacroID
An ID number that refers to a macro in an AST file.
uint32_t SubmoduleID
An ID number that refers to a submodule in a module file.
void IdentifierRead(serialization::IdentID ID, IdentifierInfo *II) override
An identifier was deserialized from the AST file.
An abstract interface that should be implemented by clients that read ASTs and then require further s...
Describes a module or submodule.
Describes a module import declaration, which makes the contents of the named module visible in the cu...
Holds long-lived AST nodes (such as types and decls) that can be referred to throughout the semantic ...
An abstract interface that should be implemented by listeners that want to be notified when an AST en...
ASTMutationListener * GetASTMutationListener() override
If the consumer is interested in entities getting modified after their initial creation,...
MultiplexConsumer(std::vector< std::unique_ptr< ASTConsumer >> C)
Record the location of a macro definition.
void HandleCXXImplicitFunctionInstantiation(FunctionDecl *D) override
Invoked when a function is implicitly instantiated.
Represents a variable declaration or definition.
Represents the declaration of a struct/union/class/enum.
void ReaderInitialized(ASTReader *Reader) override
The ASTReader was initialized.
void HandleCXXStaticMemberVarInstantiation(VarDecl *VD) override
HandleCXXStaticMemberVarInstantiation - Tell the consumer that this.
void Initialize(ASTContext &Context) override
Initialize - This is called to initialize the consumer, providing the ASTContext.
uint32_t PreprocessedEntityID
An ID number that refers to an entity in the detailed preprocessing record.
void HandleVTable(CXXRecordDecl *RD) override
Callback involved at the end of a translation unit to notify the consumer that a vtable for the given...
Represents a C++ struct/union/class.
void MacroRead(serialization::MacroID ID, MacroInfo *MI) override
A macro was read from the AST file.
Decl - This represents one declaration (or definition), e.g.
Sema - This implements semantic analysis and AST building for C.
void HandleTagDeclRequiredDefinition(const TagDecl *D) override
This callback is invoked the first time each TagDecl is required to be complete.
One of these records is kept for each identifier that is lexed.
void HandleInlineFunctionDefinition(FunctionDecl *D) override
This callback is invoked each time an inline (method or friend) function definition in a class is com...
Reads an AST files chain containing the contents of a translation unit.
void ModuleRead(serialization::SubmoduleID ID, Module *Mod) override
A module definition was read from the AST file.
Smart pointer class that efficiently represents Objective-C method names.
void HandleTopLevelDeclInObjCContainer(DeclGroupRef D) override
Handle the specified top-level declaration that occurred inside and ObjC container.
bool HandleTopLevelDecl(DeclGroupRef D) override
HandleTopLevelDecl - Handle the specified top-level declaration.
MultiplexASTDeserializationListener(const std::vector< ASTDeserializationListener * > &L)
uint32_t DeclID
An ID number that refers to a declaration in an AST file.
void HandleTranslationUnit(ASTContext &Ctx) override
HandleTranslationUnit - This method is called when the ASTs for entire translation unit have been par...
uint32_t SelectorID
An ID number that refers to an ObjC selector in an AST file.
Represents a function declaration or definition.
void CompleteExternalDeclaration(VarDecl *D) override
CompleteExternalDeclaration - Callback invoked at the end of a translation unit to notify the consume...
void AssignInheritanceModel(CXXRecordDecl *RD) override
Callback invoked when an MSInheritanceAttr has been attached to a CXXRecordDecl.
void ForgetSema() override
Inform the semantic consumer that Sema is no longer available.