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.

bool

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.

bool

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

EndOfMainFile ()

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.