https://github.com/Kitware/CMake
Revision 2c4bb705e842db66904df5014a5755b57ac51b72 authored by Ben Boeckel on 02 April 2020, 12:49:21 UTC, committed by Ben Boeckel on 02 April 2020, 12:55:04 UTC
1 parent e3185e3
Raw File
Tip revision: 2c4bb705e842db66904df5014a5755b57ac51b72 authored by Ben Boeckel on 02 April 2020, 12:49:21 UTC
ExternalProject: allow `DOWNLOAD_NO_EXTRACT OFF`
Tip revision: 2c4bb70
cmGccDepfileLexerHelper.h
/* Distributed under the OSI-approved BSD 3-Clause License.  See accompanying
   file Copyright.txt or https://cmake.org/licensing for details.  */
#ifndef cmGccDepfileLexerHelper_h
#define cmGccDepfileLexerHelper_h

#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
  };
  State HelperState = State::Rule;
};

#define YY_EXTRA_TYPE cmGccDepfileLexerHelper*

#endif
back to top