cmGeneratorExpressionParser.h 919 B

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