clang
10.0.0git
|
This is the implementation for minimizing header and source files to the minimum necessary preprocessor directives for evaluating includes. More...
#include "clang/Lex/DependencyDirectivesSourceMinimizer.h"
#include "clang/Basic/CharInfo.h"
#include "clang/Basic/Diagnostic.h"
#include "clang/Lex/LexDiagnostic.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/Support/MemoryBuffer.h"
Go to the source code of this file.
Functions | |
static void | skipOverSpaces (const char *&First, const char *const End) |
static LLVM_NODISCARD 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 const char * | findLastNonSpace (const char *First, const char *Last) |
static const char * | findFirstTrailingSpace (const char *First, const char *Last) |
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 | skipLine (const char *&First, const char *const End) |
static void | skipDirective (StringRef Name, const char *&First, const char *const End) |
static void | skipWhitespace (const char *&First, const char *const End) |
static LLVM_NODISCARD const char * | lexRawIdentifier (const char *First, const char *const End) |
static LLVM_NODISCARD const char * | getIdentifierContinuation (const char *First, const char *const End) |
static bool | isStartOfRelevantLine (char First) |
static void | skipUTF8ByteOrderMark (const char *&First, const char *const End) |
This is the implementation for minimizing header and source files to the minimum necessary preprocessor directives for evaluating includes.
It reduces the source down to #define, #include, #import, , and any conditional preprocessor logic that contains one of those.
Definition in file DependencyDirectivesSourceMinimizer.cpp.
|
static |
Definition at line 272 of file DependencyDirectivesSourceMinimizer.cpp.
References findLastNonSpace(), and clang::isHorizontalWhitespace().
|
static |
Definition at line 265 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isHorizontalWhitespace().
Referenced by findFirstTrailingSpace().
|
static |
Definition at line 534 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isIdentifierBody(), clang::isVerticalWhitespace(), clang::Last, lexRawIdentifier(), and skipNewline().
|
static |
Definition at line 189 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isVerticalWhitespace().
Referenced by skipNewline(), skipString(), and skipToNewlineRaw().
|
static |
Definition at line 302 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isIdentifierBody(), and clang::isPreprocessingNumberBody().
Referenced by skipLine().
|
static |
Definition at line 121 of file DependencyDirectivesSourceMinimizer.cpp.
Referenced by skipLine().
|
static |
Definition at line 789 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isIdentifierHead(), clang::minimize_source_to_dependency_directives::pp___include_macros, clang::minimize_source_to_dependency_directives::pp_define, clang::minimize_source_to_dependency_directives::pp_elif, clang::minimize_source_to_dependency_directives::pp_else, clang::minimize_source_to_dependency_directives::pp_endif, clang::minimize_source_to_dependency_directives::pp_if, clang::minimize_source_to_dependency_directives::pp_ifdef, clang::minimize_source_to_dependency_directives::pp_ifndef, clang::minimize_source_to_dependency_directives::pp_import, clang::minimize_source_to_dependency_directives::pp_include, clang::minimize_source_to_dependency_directives::pp_include_next, clang::minimize_source_to_dependency_directives::pp_none, clang::minimize_source_to_dependency_directives::pp_pragma_import, clang::minimize_source_to_dependency_directives::pp_undef, skipDirective(), skipLine(), and skipWhitespace().
|
static |
Definition at line 524 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isIdentifierBody(), and clang::Last.
Referenced by getIdentifierContinuation().
|
static |
Definition at line 287 of file DependencyDirectivesSourceMinimizer.cpp.
References End.
Referenced by skipLine(), and skipWhitespace().
|
static |
Definition at line 376 of file DependencyDirectivesSourceMinimizer.cpp.
Referenced by isStartOfRelevantLine().
|
static |
Definition at line 324 of file DependencyDirectivesSourceMinimizer.cpp.
References isQuoteCppDigitSeparator(), isRawStringLiteral(), clang::isVerticalWhitespace(), skipBlockComment(), skipLineComment(), skipNewline(), skipRawString(), skipString(), and wasLineContinuation().
Referenced by isStartOfRelevantLine().
|
static |
Definition at line 281 of file DependencyDirectivesSourceMinimizer.cpp.
References skipToNewlineRaw().
Referenced by skipLine(), and skipWhitespace().
|
static |
Definition at line 228 of file DependencyDirectivesSourceMinimizer.cpp.
References isEOL(), and clang::isVerticalWhitespace().
Referenced by getIdentifierContinuation(), skipLine(), and skipWhitespace().
|
static |
Definition at line 116 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isHorizontalWhitespace().
Referenced by skipString(), and skipWhitespace().
|
static |
Definition at line 146 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::Last.
Referenced by skipLine().
|
static |
Definition at line 198 of file DependencyDirectivesSourceMinimizer.cpp.
References isEOL(), clang::isVerticalWhitespace(), clang::isWhitespace(), and skipOverSpaces().
Referenced by skipLine().
|
static |
Definition at line 242 of file DependencyDirectivesSourceMinimizer.cpp.
References isEOL().
Referenced by skipLineComment().
|
static |
Definition at line 870 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::minimize_source_to_dependency_directives::pp_eof.
|
static |
Definition at line 448 of file DependencyDirectivesSourceMinimizer.cpp.
References clang::isIdentifierBody(), clang::isVerticalWhitespace(), clang::Last, skipBlockComment(), skipLineComment(), skipNewline(), and skipOverSpaces().
Referenced by isStartOfRelevantLine().
|
static |
Definition at line 238 of file DependencyDirectivesSourceMinimizer.cpp.
Referenced by skipLine().