| 1234567891011121314151617181920212223242526272829303132333435363738 |
- /* 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(const char* filePath);
- cmGccDepfileContent extractContent() && { return std::move(this->Content); }
- // Functions called by the lexer
- void newEntry();
- void newRule();
- void newDependency();
- void newRuleOrDependency();
- void addToCurrentPath(const char* s);
- private:
- void sanitizeContent();
- cmGccDepfileContent Content;
- enum class State
- {
- Rule,
- Dependency,
- Failed,
- };
- State HelperState = State::Rule;
- };
- #define YY_EXTRA_TYPE cmGccDepfileLexerHelper*
|