clang 20.0.0git
Functions
DependencyDirectivesScanner.cpp File Reference

This is the interface for scanning header and source files to get the minimum necessary preprocessor directives for evaluating includes. More...

#include "clang/Lex/DependencyDirectivesScanner.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Lex/LexDiagnostic.h"
#include "clang/Lex/Lexer.h"
#include "clang/Lex/Pragma.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/StringMap.h"
#include "llvm/ADT/StringSwitch.h"
#include <optional>

Go to the source code of this file.

Functions

static void skipOverSpaces (const char *&First, const char *const End)
 
static bool isRawStringLiteral (const char *First, const char *Current)
 
static void skipRawString (const char *&First, const char *const End)
 
static unsigned isEOL (const char *First, const char *const End)
 
static void skipString (const char *&First, const char *const End)
 
static unsigned skipNewline (const char *&First, const char *End)
 
static bool wasLineContinuation (const char *First, unsigned EOLLen)
 
static void skipToNewlineRaw (const char *&First, const char *const End)
 
static void skipLineComment (const char *&First, const char *const End)
 
static void skipBlockComment (const char *&First, const char *const End)
 
static bool isQuoteCppDigitSeparator (const char *const Start, const char *const Cur, const char *const End)
 
static void skipWhitespace (const char *&First, const char *const End)
 
static bool isStartOfRelevantLine (char First)
 
static void skipUTF8ByteOrderMark (const char *&First, const char *const End)
 

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.cpp.

Function Documentation

◆ isEOL()

static unsigned isEOL ( const char *  First,
const char *const  End 
)
static

◆ isQuoteCppDigitSeparator()

static bool isQuoteCppDigitSeparator ( const char *const  Start,
const char *const  Cur,
const char *const  End 
)
static
Returns
True if the current single quotation mark character is a C++14 digit separator.

Definition at line 374 of file DependencyDirectivesScanner.cpp.

References clang::isAsciiIdentifierContinue(), and clang::isPreprocessingNumberBody().

◆ isRawStringLiteral()

static bool isRawStringLiteral ( const char *  First,
const char *  Current 
)
static

◆ isStartOfRelevantLine()

static bool isStartOfRelevantLine ( char  First)
static

Definition at line 808 of file DependencyDirectivesScanner.cpp.

References clang::First.

◆ skipBlockComment()

static void skipBlockComment ( const char *&  First,
const char *const  End 
)
static

Definition at line 359 of file DependencyDirectivesScanner.cpp.

References clang::First.

Referenced by skipWhitespace().

◆ skipLineComment()

static void skipLineComment ( const char *&  First,
const char *const  End 
)
static

Definition at line 353 of file DependencyDirectivesScanner.cpp.

References clang::First, and skipToNewlineRaw().

Referenced by skipWhitespace().

◆ skipNewline()

static unsigned skipNewline ( const char *&  First,
const char *  End 
)
static

Definition at line 316 of file DependencyDirectivesScanner.cpp.

References clang::First, isEOL(), and clang::isVerticalWhitespace().

Referenced by skipWhitespace().

◆ skipOverSpaces()

static void skipOverSpaces ( const char *&  First,
const char *const  End 
)
static

Definition at line 204 of file DependencyDirectivesScanner.cpp.

References clang::First, and clang::isHorizontalWhitespace().

Referenced by skipString(), and skipWhitespace().

◆ skipRawString()

static void skipRawString ( const char *&  First,
const char *const  End 
)
static

Definition at line 234 of file DependencyDirectivesScanner.cpp.

References clang::First, and clang::Last.

◆ skipString()

static void skipString ( const char *&  First,
const char *const  End 
)
static

◆ skipToNewlineRaw()

static void skipToNewlineRaw ( const char *&  First,
const char *const  End 
)
static

Definition at line 330 of file DependencyDirectivesScanner.cpp.

References clang::First, and isEOL().

Referenced by skipLineComment().

◆ skipUTF8ByteOrderMark()

static void skipUTF8ByteOrderMark ( const char *&  First,
const char *const  End 
)
static

Definition at line 928 of file DependencyDirectivesScanner.cpp.

References clang::First.

◆ skipWhitespace()

static void skipWhitespace ( const char *&  First,
const char *const  End 
)
static

◆ wasLineContinuation()

static bool wasLineContinuation ( const char *  First,
unsigned  EOLLen 
)
static

Definition at line 326 of file DependencyDirectivesScanner.cpp.

References clang::First, and int.