clang 20.0.0git
Classes | Public Member Functions | Friends | List of all members
clang::PreprocessingRecord Class Reference

A record of the steps taken while preprocessing a source file, including the various preprocessing directives processed, macros expanded, etc. More...

#include "clang/Lex/PreprocessingRecord.h"

Inheritance diagram for clang::PreprocessingRecord:
Inheritance graph
[legend]

Classes

class  iterator
 Iteration over the preprocessed entities. More...
 

Public Member Functions

 PreprocessingRecord (SourceManager &SM)
 Construct a new preprocessing record.
 
void * Allocate (unsigned Size, unsigned Align=8)
 Allocate memory in the preprocessing record.
 
void Deallocate (void *Ptr)
 Deallocate memory in the preprocessing record.
 
size_t getTotalMemory () const
 
SourceManagergetSourceManager () const
 
iterator begin ()
 Begin iterator for all preprocessed entities.
 
iterator end ()
 End iterator for all preprocessed entities.
 
iterator local_begin ()
 Begin iterator for local, non-loaded, preprocessed entities.
 
iterator local_end ()
 End iterator for local, non-loaded, preprocessed entities.
 
llvm::iterator_range< iteratorgetIteratorsForLoadedRange (unsigned start, unsigned count)
 iterator range for the given range of loaded preprocessed entities.
 
llvm::iterator_range< iteratorgetPreprocessedEntitiesInRange (SourceRange R)
 Returns a range of preprocessed entities that source range R encompasses.
 
bool isEntityInFileID (iterator PPEI, FileID FID)
 Returns true if the preprocessed entity that PPEI iterator points to is coming from the file FID.
 
PPEntityID addPreprocessedEntity (PreprocessedEntity *Entity)
 Add a new preprocessed entity to this record.
 
void SetExternalSource (ExternalPreprocessingRecordSource &Source)
 Set the external source for preprocessed entities.
 
ExternalPreprocessingRecordSourcegetExternalSource () const
 Retrieve the external source for preprocessed entities.
 
MacroDefinitionRecordfindMacroDefinition (const MacroInfo *MI)
 Retrieve the macro definition that corresponds to the given MacroInfo.
 
const std::vector< SourceRange > & getSkippedRanges ()
 Retrieve all ranges that got skipped while preprocessing.
 
- 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 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