clang: clang::PPChainedCallbacks Class Reference (original) (raw)
Public Member Functions
PPChainedCallbacks (std::unique_ptr< PPCallbacks > _First, std::unique_ptr< PPCallbacks > _Second)
~PPChainedCallbacks () override
void
FileChanged (SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID) override
Callback invoked whenever a source file is entered or exited.
void
LexedFileChanged (FileID FID, LexedFileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID, SourceLocation Loc) override
Callback invoked whenever the [Lexer](classclang%5F1%5F1Lexer.html "Lexer - This provides a simple interface that turns a text buffer into a stream of tokens.")
moves to a different file for lexing.
void
FileSkipped (const FileEntryRef &SkippedFile, const Token &FilenameTok, SrcMgr::CharacteristicKind FileType) override
Callback invoked whenever a source file is skipped as the result of header guard optimization.
EmbedFileNotFound (StringRef FileName) override
Callback invoked whenever the preprocessor cannot find a file for an embed directive.
void
EmbedDirective (SourceLocation HashLoc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File, const LexEmbedParametersResult &Params) override
Callback invoked whenever an embed directive has been processed, regardless of whether the embed will actually find a file.
FileNotFound (StringRef FileName) override
Callback invoked whenever the preprocessor cannot find a file for an inclusion directive.
void
InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, OptionalFileEntryRef File, StringRef SearchPath, StringRef RelativePath, const Module *SuggestedModule, bool ModuleImported, SrcMgr::CharacteristicKind FileType) override
Callback invoked whenever an inclusion directive of any kind (#include
, #import
, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.
void
EnteredSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma) override
Callback invoked whenever a submodule was entered.
void
LeftSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma) override
Callback invoked whenever a submodule was left.
void
moduleImport (SourceLocation ImportLoc, ModuleIdPath Path, const Module *Imported) override
Callback invoked whenever there was an explicit module-import syntax.
void
EndOfMainFile () override
Callback invoked when the end of the main file is reached.
void
Ident (SourceLocation Loc, StringRef str) override
Callback invoked when a #ident or #sccs directive is read.
void
PragmaDirective (SourceLocation Loc, PragmaIntroducerKind Introducer) override
Callback invoked when start reading any pragma directive.
void
PragmaComment (SourceLocation Loc, const IdentifierInfo *Kind, StringRef Str) override
Callback invoked when a #pragma comment directive is read.
void
PragmaMark (SourceLocation Loc, StringRef Trivia) override
Callback invoked when a #pragma mark comment is read.
void
PragmaDetectMismatch (SourceLocation Loc, StringRef Name, StringRef Value) override
Callback invoked when a #pragma detect_mismatch directive is read.
void
PragmaDebug (SourceLocation Loc, StringRef DebugType) override
Callback invoked when a #pragma clang __debug directive is read.
void
PragmaMessage (SourceLocation Loc, StringRef Namespace, PragmaMessageKind Kind, StringRef Str) override
Callback invoked when a #pragma message directive is read.
void
PragmaDiagnosticPush (SourceLocation Loc, StringRef Namespace) override
Callback invoked when a #pragma gcc diagnostic push directive is read.
void
PragmaDiagnosticPop (SourceLocation Loc, StringRef Namespace) override
Callback invoked when a #pragma gcc diagnostic pop directive is read.
void
PragmaDiagnostic (SourceLocation Loc, StringRef Namespace, diag::Severity mapping, StringRef Str) override
Callback invoked when a #pragma gcc diagnostic directive is read.
void
HasEmbed (SourceLocation Loc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File) override
Hook called when a '__has_embed' directive is read.
void
HasInclude (SourceLocation Loc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File, SrcMgr::CharacteristicKind FileType) override
Hook called when a '__has_include' or '__has_include_next' directive is read.
void
PragmaOpenCLExtension (SourceLocation NameLoc, const IdentifierInfo *Name, SourceLocation StateLoc, unsigned State) override
Called when an OpenCL extension is either disabled or enabled with a pragma.
void
PragmaWarning (SourceLocation Loc, PragmaWarningSpecifier WarningSpec, ArrayRef< int > Ids) override
void
PragmaWarningPush (SourceLocation Loc, int Level) override
Callback invoked when a #pragma warning(push) directive is read.
void
PragmaWarningPop (SourceLocation Loc) override
Callback invoked when a #pragma warning(pop) directive is read.
void
PragmaExecCharsetPush (SourceLocation Loc, StringRef Str) override
Callback invoked when a #pragma execution_character_set(push) directive is read.
void
PragmaExecCharsetPop (SourceLocation Loc) override
Callback invoked when a #pragma execution_character_set(pop) directive is read.
void
PragmaAssumeNonNullBegin (SourceLocation Loc) override
Callback invoked when a #pragma clang assume_nonnull begin directive is read.
void
PragmaAssumeNonNullEnd (SourceLocation Loc) override
Callback invoked when a #pragma clang assume_nonnull end directive is read.
void
MacroExpands (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range, const MacroArgs *Args) override
Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found.
void
MacroDefined (const Token &MacroNameTok, const MacroDirective *MD) override
Hook called whenever a macro definition is seen.
void
MacroUndefined (const Token &MacroNameTok, const MacroDefinition &MD, const MacroDirective *Undef) override
Hook called whenever a macro #undef is seen.
void
Defined (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range) override
Hook called whenever the 'defined' operator is seen.
void
SourceRangeSkipped (SourceRange Range, SourceLocation EndifLoc) override
Hook called when a source range is skipped.
void
If (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue) override
Hook called whenever an #if is seen.
void
Elif (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc) override
Hook called whenever an #elif is seen.
void
Ifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override
Hook called whenever an #ifdef is seen.
void
Elifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override
Hook called whenever an #elifdef is taken.
void
Elifdef (SourceLocation Loc, SourceRange ConditionRange, SourceLocation IfLoc) override
Hook called whenever an #elifdef is skipped.
void
Ifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override
Hook called whenever an #ifndef is seen.
void
Elifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD) override
Hook called whenever an #elifndef is taken.
void
Elifndef (SourceLocation Loc, SourceRange ConditionRange, SourceLocation IfLoc) override
Hook called whenever an #elifndef is skipped.
void
Else (SourceLocation Loc, SourceLocation IfLoc) override
Hook called whenever an #else is seen.
void
Endif (SourceLocation Loc, SourceLocation IfLoc) override
Hook called whenever an #endif is seen.
Public Member Functions inherited from clang::PPCallbacks
virtual
~PPCallbacks ()
virtual void
FileChanged (SourceLocation Loc, FileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID=FileID())
Callback invoked whenever a source file is entered or exited.
virtual void
LexedFileChanged (FileID FID, LexedFileChangeReason Reason, SrcMgr::CharacteristicKind FileType, FileID PrevFID, SourceLocation Loc)
Callback invoked whenever the [Lexer](classclang%5F1%5F1Lexer.html "Lexer - This provides a simple interface that turns a text buffer into a stream of tokens.")
moves to a different file for lexing.
virtual void
FileSkipped (const FileEntryRef &SkippedFile, const Token &FilenameTok, SrcMgr::CharacteristicKind FileType)
Callback invoked whenever a source file is skipped as the result of header guard optimization.
virtual bool
EmbedFileNotFound (StringRef FileName)
Callback invoked whenever the preprocessor cannot find a file for an embed directive.
virtual void
EmbedDirective (SourceLocation HashLoc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File, const LexEmbedParametersResult &Params)
Callback invoked whenever an embed directive has been processed, regardless of whether the embed will actually find a file.
virtual bool
FileNotFound (StringRef FileName)
Callback invoked whenever the preprocessor cannot find a file for an inclusion directive.
virtual void
InclusionDirective (SourceLocation HashLoc, const Token &IncludeTok, StringRef FileName, bool IsAngled, CharSourceRange FilenameRange, OptionalFileEntryRef File, StringRef SearchPath, StringRef RelativePath, const Module *SuggestedModule, bool ModuleImported, SrcMgr::CharacteristicKind FileType)
Callback invoked whenever an inclusion directive of any kind (#include
, #import
, etc.) has been processed, regardless of whether the inclusion will actually result in an inclusion.
virtual void
EnteredSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma)
Callback invoked whenever a submodule was entered.
virtual void
LeftSubmodule (Module *M, SourceLocation ImportLoc, bool ForPragma)
Callback invoked whenever a submodule was left.
virtual void
moduleImport (SourceLocation ImportLoc, ModuleIdPath Path, const Module *Imported)
Callback invoked whenever there was an explicit module-import syntax.
virtual void
Callback invoked when the end of the main file is reached.
virtual void
Ident (SourceLocation Loc, StringRef str)
Callback invoked when a #ident or #sccs directive is read.
virtual void
PragmaDirective (SourceLocation Loc, PragmaIntroducerKind Introducer)
Callback invoked when start reading any pragma directive.
virtual void
PragmaComment (SourceLocation Loc, const IdentifierInfo *Kind, StringRef Str)
Callback invoked when a #pragma comment directive is read.
virtual void
PragmaMark (SourceLocation Loc, StringRef Trivia)
Callback invoked when a #pragma mark comment is read.
virtual void
PragmaDetectMismatch (SourceLocation Loc, StringRef Name, StringRef Value)
Callback invoked when a #pragma detect_mismatch directive is read.
virtual void
PragmaDebug (SourceLocation Loc, StringRef DebugType)
Callback invoked when a #pragma clang __debug directive is read.
virtual void
PragmaMessage (SourceLocation Loc, StringRef Namespace, PragmaMessageKind Kind, StringRef Str)
Callback invoked when a #pragma message directive is read.
virtual void
PragmaDiagnosticPush (SourceLocation Loc, StringRef Namespace)
Callback invoked when a #pragma gcc diagnostic push directive is read.
virtual void
PragmaDiagnosticPop (SourceLocation Loc, StringRef Namespace)
Callback invoked when a #pragma gcc diagnostic pop directive is read.
virtual void
PragmaDiagnostic (SourceLocation Loc, StringRef Namespace, diag::Severity mapping, StringRef Str)
Callback invoked when a #pragma gcc diagnostic directive is read.
virtual void
PragmaOpenCLExtension (SourceLocation NameLoc, const IdentifierInfo *Name, SourceLocation StateLoc, unsigned State)
Called when an OpenCL extension is either disabled or enabled with a pragma.
virtual void
PragmaWarning (SourceLocation Loc, PragmaWarningSpecifier WarningSpec, ArrayRef< int > Ids)
virtual void
PragmaWarningPush (SourceLocation Loc, int Level)
Callback invoked when a #pragma warning(push) directive is read.
virtual void
PragmaWarningPop (SourceLocation Loc)
Callback invoked when a #pragma warning(pop) directive is read.
virtual void
PragmaExecCharsetPush (SourceLocation Loc, StringRef Str)
Callback invoked when a #pragma execution_character_set(push) directive is read.
virtual void
PragmaExecCharsetPop (SourceLocation Loc)
Callback invoked when a #pragma execution_character_set(pop) directive is read.
virtual void
PragmaAssumeNonNullBegin (SourceLocation Loc)
Callback invoked when a #pragma clang assume_nonnull begin directive is read.
virtual void
PragmaAssumeNonNullEnd (SourceLocation Loc)
Callback invoked when a #pragma clang assume_nonnull end directive is read.
virtual void
MacroExpands (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range, const MacroArgs *Args)
Called by Preprocessor::HandleMacroExpandedIdentifier when a macro invocation is found.
virtual void
MacroDefined (const Token &MacroNameTok, const MacroDirective *MD)
Hook called whenever a macro definition is seen.
virtual void
MacroUndefined (const Token &MacroNameTok, const MacroDefinition &MD, const MacroDirective *Undef)
Hook called whenever a macro #undef is seen.
virtual void
Defined (const Token &MacroNameTok, const MacroDefinition &MD, SourceRange Range)
Hook called whenever the 'defined' operator is seen.
virtual void
HasEmbed (SourceLocation Loc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File)
Hook called when a '__has_embed' directive is read.
virtual void
HasInclude (SourceLocation Loc, StringRef FileName, bool IsAngled, OptionalFileEntryRef File, SrcMgr::CharacteristicKind FileType)
Hook called when a '__has_include' or '__has_include_next' directive is read.
virtual void
SourceRangeSkipped (SourceRange Range, SourceLocation EndifLoc)
Hook called when a source range is skipped.
virtual void
If (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue)
Hook called whenever an #if is seen.
virtual void
Elif (SourceLocation Loc, SourceRange ConditionRange, ConditionValueKind ConditionValue, SourceLocation IfLoc)
Hook called whenever an #elif is seen.
virtual void
Ifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #ifdef is seen.
virtual void
Elifdef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #elifdef branch is taken.
virtual void
Elifdef (SourceLocation Loc, SourceRange ConditionRange, SourceLocation IfLoc)
Hook called whenever an #elifdef is skipped.
virtual void
Ifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #ifndef is seen.
virtual void
Elifndef (SourceLocation Loc, const Token &MacroNameTok, const MacroDefinition &MD)
Hook called whenever an #elifndef branch is taken.
virtual void
Elifndef (SourceLocation Loc, SourceRange ConditionRange, SourceLocation IfLoc)
Hook called whenever an #elifndef is skipped.
virtual void
Else (SourceLocation Loc, SourceLocation IfLoc)
Hook called whenever an #else is seen.
virtual void
Endif (SourceLocation Loc, SourceLocation IfLoc)
Hook called whenever an #endif is seen.
Additional Inherited Members
Public Types inherited from clang::PPCallbacks
enum
FileChangeReason { EnterFile, ExitFile, SystemHeaderPragma, RenameFile }
enum class
LexedFileChangeReason { EnterFile, ExitFile }
enum
PragmaMessageKind { PMK_Message, PMK_Warning, PMK_Error }
Determines the kind of #pragma invoking a call to PragmaMessage. More...
enum
PragmaWarningSpecifier {
PWS_Default, PWS_Disable, PWS_Error, PWS_Once,
PWS_Suppress, PWS_Level1, PWS_Level2, PWS_Level3,
PWS_Level4
}
Callback invoked when a #pragma warning directive is read. More...
enum
ConditionValueKind { CVK_NotEvaluated, CVK_False, CVK_True }
Simple wrapper class for chaining callbacks.
Definition at line 470 of file PPCallbacks.h.