cmGeneratorExpressionParser.h 895 B

12345678910111213141516171819202122232425262728293031
  1. /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
  2. file Copyright.txt or https://cmake.org/licensing for details. */
  3. #ifndef cmGeneratorExpressionParser_h
  4. #define cmGeneratorExpressionParser_h
  5. #include "cmConfigure.h" // IWYU pragma: keep
  6. #include <vector>
  7. #include "cmGeneratorExpressionLexer.h"
  8. struct cmGeneratorExpressionEvaluator;
  9. struct cmGeneratorExpressionParser
  10. {
  11. cmGeneratorExpressionParser(
  12. const std::vector<cmGeneratorExpressionToken>& tokens);
  13. void Parse(std::vector<cmGeneratorExpressionEvaluator*>& result);
  14. private:
  15. void ParseContent(std::vector<cmGeneratorExpressionEvaluator*>&);
  16. void ParseGeneratorExpression(std::vector<cmGeneratorExpressionEvaluator*>&);
  17. private:
  18. std::vector<cmGeneratorExpressionToken>::const_iterator it;
  19. const std::vector<cmGeneratorExpressionToken> Tokens;
  20. unsigned int NestingLevel;
  21. };
  22. #endif