/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing for details. */ #pragma once #include #include 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*