clang  15.0.0git
Classes | Namespaces | Enumerations | Functions
DependencyDirectivesScanner.h File Reference
#include "clang/Basic/SourceLocation.h"
#include "llvm/ADT/ArrayRef.h"
Include dependency graph for DependencyDirectivesScanner.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  clang::dependency_directives_scan::Token
 Token lexed as part of dependency directive scanning. More...
 
struct  clang::dependency_directives_scan::Directive
 Represents a directive that's lexed as part of the dependency directives scanning. More...
 

Namespaces

 clang
 
 clang::tok
 
 clang::dependency_directives_scan
 

Enumerations

enum  clang::dependency_directives_scan::DirectiveKind : uint8_t {
  clang::dependency_directives_scan::pp_none, clang::dependency_directives_scan::pp_include, clang::dependency_directives_scan::pp___include_macros, clang::dependency_directives_scan::pp_define,
  clang::dependency_directives_scan::pp_undef, clang::dependency_directives_scan::pp_import, clang::dependency_directives_scan::pp_pragma_import, clang::dependency_directives_scan::pp_pragma_once,
  clang::dependency_directives_scan::pp_pragma_push_macro, clang::dependency_directives_scan::pp_pragma_pop_macro, clang::dependency_directives_scan::pp_pragma_include_alias, clang::dependency_directives_scan::pp_include_next,
  clang::dependency_directives_scan::pp_if, clang::dependency_directives_scan::pp_ifdef, clang::dependency_directives_scan::pp_ifndef, clang::dependency_directives_scan::pp_elif,
  clang::dependency_directives_scan::pp_elifdef, clang::dependency_directives_scan::pp_elifndef, clang::dependency_directives_scan::pp_else, clang::dependency_directives_scan::pp_endif,
  clang::dependency_directives_scan::decl_at_import, clang::dependency_directives_scan::cxx_module_decl, clang::dependency_directives_scan::cxx_import_decl, clang::dependency_directives_scan::cxx_export_module_decl,
  clang::dependency_directives_scan::cxx_export_import_decl, clang::dependency_directives_scan::pp_eof
}
 Represents the kind of preprocessor directive or a module declaration that is tracked by the scanner in its token output. More...
 

Functions

bool clang::scanSourceForDependencyDirectives (StringRef Input, SmallVectorImpl< dependency_directives_scan::Token > &Tokens, SmallVectorImpl< dependency_directives_scan::Directive > &Directives, DiagnosticsEngine *Diags=nullptr, SourceLocation InputSourceLoc=SourceLocation())
 Scan the input for the preprocessor directives that might have an effect on the dependencies for a compilation unit. More...
 
void clang::printDependencyDirectivesAsSource (StringRef Source, ArrayRef< dependency_directives_scan::Directive > Directives, llvm::raw_ostream &OS)
 Print the previously scanned dependency directives as minimized source text. More...
 

Detailed Description

This is the interface for scanning header and source files to get the minimum necessary preprocessor directives for evaluating includes. It reduces the source down to #define, include, #import, @import, and any conditional preprocessor logic that contains one of those.

Definition in file DependencyDirectivesScanner.h.