
Run the `clang-format.bash` script to update all our C and C++ code to a new style defined by `.clang-format`, now with "east const" enforcement. Use `clang-format` version 18. * If you reached this commit for a line in `git blame`, re-run the blame operation starting at the parent of this commit to see older history for the content. * See the parent commit for instructions to rebase a change across this style transition commit. Issue: #26123
39 lines
806 B
C++
39 lines
806 B
C++
/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
|
file Copyright.txt or https://cmake.org/licensing for details. */
|
|
#pragma once
|
|
|
|
#include <utility>
|
|
|
|
#include <cmGccDepfileReaderTypes.h>
|
|
|
|
class cmGccDepfileLexerHelper
|
|
{
|
|
public:
|
|
cmGccDepfileLexerHelper() = default;
|
|
|
|
bool readFile(char const* filePath);
|
|
cmGccDepfileContent extractContent() && { return std::move(this->Content); }
|
|
|
|
// Functions called by the lexer
|
|
void newEntry();
|
|
void newRule();
|
|
void newDependency();
|
|
void newRuleOrDependency();
|
|
void addToCurrentPath(char const* s);
|
|
|
|
private:
|
|
void sanitizeContent();
|
|
|
|
cmGccDepfileContent Content;
|
|
|
|
enum class State
|
|
{
|
|
Rule,
|
|
Dependency,
|
|
Failed,
|
|
};
|
|
State HelperState = State::Rule;
|
|
};
|
|
|
|
#define YY_EXTRA_TYPE cmGccDepfileLexerHelper*
|